大模型微调之 在亚马逊AWS上实战LlaMA案例(七)

大模型微调之 在亚马逊AWS上实战LlaMA案例(七)

微调SageMaker JumpStart上的LLaMA 2模型

这是在us-west-2的测试结果。 展示了如何使用SageMaker Python SDK部署预训练的Llama 2模型,并将其微调到你的数据集,用于领域适应或指令调整格式。

设置

首先安装并升级必要的包。在首次执行下面的单元格后,重新启动内核。

!pip install --upgrade sagemaker datasets

以下是您提供的Markdown内容的中文翻译:

部署预训练模型

将部署Llama-2模型作为SageMaker终端节点。要训练/部署13B和70B模型,请分别将model_id更改为"meta-textgeneration-llama-2-7b"和"meta-textgeneration-llama-2-70b"。


"B"在这里 代表模型的参数数量,其中"7B"表示70亿参数的模型。"meta-textgeneration-llama-2-7b"和"meta-textgeneration-llama-2-70b"是模型的标识符,用于指定要部署的具体模型版本。

model_id, model_version = "meta-textgeneration-llama-2-7b", "2.*"

# %%
from sagemaker.jumpstart.model import JumpStartModel

pretrained_model = JumpStartModel(model_id=model_id, model_version=model_version)
pretrained_predictor = pretrained_model.deploy()

以下是您提供的Markdown内容的中文翻译:

调用终端节点

接下来, 将使用一些示例查询调用终端节点。 将使用自定义数据集对模型进行微调,并使用微调后的模型进行推理。 还将展示通过预训练模型和微调模型获得的结果之间的比较。

def print_response(payload, response):
    print(payload["inputs"])
    print(f"> {response[0]['generation']}")
    print("\n==================================\n")

# %%
payload = {
    "inputs": "I believe the meaning of life is",
    "parameters": {
        "max_new_tokens": 64,
        "top_p": 0.9,
        "temperature": 0.6,
        "return_full_text": False,
    },
}
try:
    response = pretrained_predictor.predict(payload, custom_attributes="accept_eula=false")
    print_response(payload, response)
except Exception as e:
    print(e)

微调的数据集准备

可以使用领域适应格式或指令调整格式的数据集进行微调。详情请查看数据集指令部分。在这个演示中, 将使用Dolly数据集的一个子集,以指令调整格式进行微调。Dolly数据集包含了大约15,000条用于各种类别的指令遵循记录,如问答、摘要、信息提取等。它在Apache 2.0许可下可用。 将选择摘要示例进行微调。

训练数据以JSON行(.jsonl)格式格式化,其中每一行是一个字典,代表一个单独的数据样本。所有训练数据必须在同一个文件夹中,但可以保存在多个jsonl文件中。训练文件夹还可以包含一个template.json文件,描述输入和输出格式。

要在一组非结构化数据集(文本文件)上训练您的模型,请参阅附录中的使用领域适应数据集格式的示例微调部分。

from datasets import load_dataset

dolly_dataset = load_dataset("databricks/databricks-dolly-15k", split="train")

# To train for question answering/information extraction, you can replace the assertion in next line to example["category"] == "closed_qa"/"information_extraction".
summarization_dataset = dolly_dataset.filter(lambda example: example["category"] == "summarization")
summarization_dataset = summarization_dataset.remove_columns("category")

# We split the dataset into two where test data is used to evaluate at the end.
train_and_test_dataset = summarization_dataset.train_test_split(test_size=0.1)

# Dumping the training data to a local file to be used for training.
train_and_test_dataset["train"].to_json("train.jsonl")

# %%
train_and_test_dataset["train"][0]

接下来, 将创建一个提示模板,用于以指令/输入格式使用数据进行训练作业(因为 在这个例子中是对模型进行指令微调),以及用于推理已部署的终端节点。

import json

template = {
    "prompt": "Below is an instruction that describes a task, paired with an input that provides further context. "
    "Write a response that appropriately completes the request.\n\n"
    "### Instruction:\n{instruction}\n\n### Input:\n{context}\n\n",
    "completion": " {response}",
}
with open("template.json", "w") as f:
    json.dump(template, f)

您提供的是一个用于机器学习模型微调的提示模板(prompt template),这个模板用于格式化输入数据,以便模型能够理解并执行给定的任务。以下是该模板的中文解释:

{
  "prompt": "以下是描述任务的指令,附带提供更多上下文的输入。\n\n"
           "### 指令:\n{instruction}\n\n"
           "### 输入:\n{context}\n\n",
  "completion": " {response}"
}

在这个模板中:

  • "prompt" 部分是提供给模型的提示文本,它包含了一个描述任务的指令和一个提供上下文的输入。
  • "### Instruction:" 后面跟着的 {instruction} 是一个占位符,代表具体的任务指令,它将被实际的任务指令文本替换。
  • "### Input:" 后面跟着的 {context} 是另一个占位符,代表提供额外信息的输入文本,它将被实际的输入文本替换。
  • "completion" 部分是模型生成的文本,它应该适当地完成请求。这里的 {response} 是一个占位符,代表模型生成的响应文本。

当使用这个模板时, 需要将 {instruction}{context} 替换成具体的任务指令和输入文本,模型将基于这些信息生成响应,即 {response}

这个模板适用于需要模型根据指令和上下文生成文本的任务,比如文本摘要、问题回答或者文本生成等。在微调过程中,模型会学习如何根据给定的指令和上下文产生合适的响应。

上传数据集到S3

将上传准备好的数据集到S3,这个数据集将用于微调。
这段内容描述了在微调模型之前,需要将数据集上传到Amazon S3存储服务的步骤。S3(Simple Storage Service)是Amazon Web Services(AWS)提供的一种对象存储服务,它可以存储任意数量的数据,并且通常用于机器学习项目中存储训练数据集。

上传数据集到S3后, 可以在SageMaker中设置训练作业,指定S3存储桶中的数据集位置,以便SageMaker可以访问并使用这些数据进行模型的训练和微调。

from sagemaker.s3 import S3Uploader
import sagemaker
import random

output_bucket = sagemaker.Session().default_bucket()
local_data_file = "train.jsonl"
train_data_location = f"s3://{output_bucket}/dolly_dataset"
S3Uploader.upload(local_data_file, train_data_location)
S3Uploader.upload("template.json", train_data_location)
print(f"Training data: {train_data_location}")

训练模型

接下来,将在Dolly的摘要数据集上微调LLaMA v2 7B模型。微调脚本基于这个仓库提供的脚本。要了解更多关于微调脚本的信息,请查看 关于微调方法的几点说明。有关支持的超参数及其默认值的列表,请参见 微调支持的超参数。

from sagemaker.jumpstart.estimator import JumpStartEstimator


estimator = JumpStartEstimator(
    model_id=model_id,
    model_version=model_version,
    environment={"accept_eula": "true"},
    disable_output_compression=True,  # For Llama-2-70b, add instance_type = "ml.g5.48xlarge"
)
# By default, instruction tuning is set to false. Thus, to use instruction tuning dataset you use
estimator.set_hyperparameters(instruction_tuned="True", epoch="5", max_input_length="1024")
estimator.fit({"training": train_data_location})

接下来, 将部署微调后的模型。 将比较微调模型和预训练模型的性能。

finetuned_predictor = estimator.deploy()

评估预训练和微调模型

接下来, 使用测试数据来评估微调模型的性能,并将其与预训练模型进行比较。

import pandas as pd
from IPython.display import display, HTML

test_dataset = train_and_test_dataset["test"]

inputs, ground_truth_responses, responses_before_finetuning, responses_after_finetuning = (
    [],
    [],
    [],
    [],
)


def predict_and_print(datapoint):
    # For instruction fine-tuning, we insert a special key between input and output
    input_output_demarkation_key = "\n\n### Response:\n"

    payload = {
        "inputs": template["prompt"].format(
            instruction=datapoint["instruction"], context=datapoint["context"]
        )
        + input_output_demarkation_key,
        "parameters": {"max_new_tokens": 100},
    }
    inputs.append(payload["inputs"])
    ground_truth_responses.append(datapoint["response"])
    # Please change the following line to "accept_eula=True"
    pretrained_response = pretrained_predictor.predict(
        payload, custom_attributes="accept_eula=false"
    )
    responses_before_finetuning.append(pretrained_response[0]["generation"])
    # Please change the following line to "accept_eula=True"
    finetuned_response = finetuned_predictor.predict(payload, custom_attributes="accept_eula=false")
    responses_after_finetuning.append(finetuned_response[0]["generation"])


try:
    for i, datapoint in enumerate(test_dataset.select(range(5))):
        predict_and_print(datapoint)

    df = pd.DataFrame(
        {
            "Inputs": inputs,
            "Ground Truth": ground_truth_responses,
            "Response from non-finetuned model": responses_before_finetuning,
            "Response from fine-tuned model": responses_after_finetuning,
        }
    )
    display(HTML(df.to_html()))
except Exception as e:
    print(e)
pretrained_predictor.delete_model()
pretrained_predictor.delete_endpoint()
finetuned_predictor.delete_model()
finetuned_predictor.delete_endpoint()

附录:

1. 支持的推理参数


此模型支持以下推理有效载荷参数:

  • max_new_tokens: 模型生成文本,直到输出长度(不包括输入上下文长度)达到max_new_tokens。如果指定,它必须是正整数。
  • temperature: 控制输出中的随机性。更高的温度会导致输出序列中有低概率的词,而较低的温度会导致输出序列中有高概率的词。如果temperature -> 0,它会导致贪婪解码。如果指定,它必须是正浮点数。
  • top_p: 在文本生成的每一步中,从累积概率为top_p的最小可能单词集中进行抽样。如果指定,它必须是介于0和1之间的浮点数。
  • return_full_text: 如果为True,输入文本将成为生成的输出文本的一部分。如果指定,它必须是布尔值。它的默认值为False。

您可以在调用终端节点时指定上述参数的任何子集。


  • 如果未定义max_new_tokens,模型可能会生成最大允许的总令牌数,这些模型为4K。这可能会导致终端节点查询超时错误,因此建议在可能的情况下设置max_new_tokens。对于7B、13B和70B模型,我们建议将max_new_tokens分别设置为不超过1500、1000和500,同时保持总令牌数少于4K。
  • 为了支持4k上下文长度,此模型已将查询负载限制为仅使用批量大小为1。具有较大批量大小的负载将在推理之前收到终端节点错误。

2. 训练的数据集格式化指令


微调新数据集上的模型

我们目前提供两种类型的微调:指令微调和领域适应微调。您可以通过指定参数instruction_tuned为’True’或’False’来轻松切换到其中一种训练方法。

2.1. 领域适应微调

文本生成模型也可以在任何特定领域的数据集上进行微调。在特定领域的数据集上微调后,模型预计将生成特定领域的文本,并使用少量示例提示解决该特定领域中的各种NLP任务。

以下是训练数据应该如何格式化以输入模型的说明。

  • 输入: 一个训练目录和一个可选的验证目录。每个目录包含一个CSV/JSON/TXT文件。
    • 对于CSV/JSON文件,训练或验证数据是从名为’text’的列中使用的,如果没有找到名为’text’的列,则使用第一列。
    • 训练和验证(如果提供)下的文件数量应该分别等于一个。
  • 输出: 一个可以部署用于推理的已训练模型。

下面是一个用于微调文本生成模型的TXT文件的示例。TXT文件是亚马逊从2021年到2022年的SEC文件。

This report includes estimates, projections, statements relating to our
business plans, objectives, and expected operating results that are “forward-
looking statements” within the meaning of the Private Securities Litigation
Reform Act of 1995, Section 27A of the Securities Act of 1933, and Section 21E
of the Securities Exchange Act of 1934. Forward-looking statements may appear
throughout this report, including the following sections: “Business” (Part I,
Item 1 of this Form 10-K), “Risk Factors” (Part I, Item 1A of this Form 10-K),
and “Management’s Discussion and Analysis of Financial Condition and Results
of Operations” (Part II, Item 7 of this Form 10-K). These forward-looking
statements generally are identified by the words “believe,” “project,”
“expect,” “anticipate,” “estimate,” “intend,” “strategy,” “future,”
“opportunity,” “plan,” “may,” “should,” “will,” “would,” “will be,” “will
continue,” “will likely result,” and similar expressions. Forward-looking
statements are based on current expectations and assumptions that are subject
to risks and uncertainties that may cause actual results to differ materially.
We describe risks and uncertainties that could cause actual results and events
to differ materially in “Risk Factors,” “Management’s Discussion and Analysis
of Financial Condition and Results of Operations,” and “Quantitative and
Qualitative Disclosures about Market Risk” (Part II, Item 7A of this Form
10-K). Readers are cautioned not to place undue reliance on forward-looking
statements, which speak only as of the date they are made. We undertake no
obligation to update or revise publicly any forward-looking statements,
whether because of new information, future events, or otherwise.
GENERAL
Embracing Our Future ...
2.2. 指令微调

文本生成模型可以在任何文本数据上进行指令调整,前提是数据处于预期的格式。调整后的指令模型可以进一步部署用于推理。

以下是训练数据应该如何格式化以输入模型的说明。

  • 输入: 一个训练目录和一个可选的验证目录。训练和验证目录应包含一个或多个JSON行(.jsonl)格式的文件。特别是,训练目录还可以包含一个可选的*.json文件,描述输入和输出格式。
    • 根据每个epoch结束时计算的验证损失,选择最佳模型。
      如果没有给定验证集,训练数据会自动分割一定比例(可调整)用于验证。

    • 训练数据必须以JSON行(.jsonl)格式格式化,其中每一行是一个字典,代表一个单独的数据样本。所有训练数据必须在单个文件夹中,但可以保存在多个jsonl文件中。.jsonl文件扩展名是强制性的。训练文件夹还可以包含一个template.json文件,描述输入和输出格式。如果没有给出模板文件,将使用以下模板:

      {
        "prompt": "Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request.\n\n### Instruction:\n{instruction}\n\n### Input:\n{context}",
        "completion": "{response}"
      }
      

      在这种情况下,JSON行条目中的数据必须包括instructioncontextresponse字段。如果提供了自定义模板,它也必须使用promptcompletion键来定义输入和输出模板。
      以下是自定义模板的示例:

      {
        "prompt": "question: {question} context: {context}",
        "completion": "{answer}"
      }
      

      在这里,JSON行条目中的数据必须包括questioncontextanswer字段。

  • 输出: 一个可以部署用于推理的已训练模型。

2.3. 使用领域适应数据集格式的示例微调

我们提供了亚马逊SEC文件数据的一个子集,以领域适应数据集格式。它从公开可用的EDGAR下载。访问数据的说明显示在这里。

许可证:Creative Commons Attribution-ShareAlike License (CC BY-SA 4.0)。

请取消以下代码的注释,以在领域适应格式的数据集上微调模型。


import boto3
model_id = “meta-textgeneration-llama-2-7b”

estimator = JumpStartEstimator(model_id=model_id, environment={“accept_eula”: “true”}, instance_type=“ml.g5.24xlarge”)
estimator.set_hyperparameters(instruction_tuned=“False”, epoch=“5”)
estimator.fit({“training”: f"s3://jumpstart-cache-prod-{boto3.Session().region_name}/training-datasets/sec_amazon"})

3. 微调支持的超参数


  • epoch: 微调算法通过训练数据集的传递次数。必须是大于1的整数。默认值:5
  • learning_rate: 模型权重在处理每个训练示例批次后更新的速率。必须是大于0的正浮点数。默认值:1e-4。
  • instruction_tuned: 是否对模型进行指令训练。必须是’True’或’False’。默认值:‘False’
  • per_device_train_batch_size: 训练时每个GPU核心/CPU的批量大小。必须是正整数。默认值:4。
  • per_device_eval_batch_size: 评估时每个GPU核心/CPU的批量大小。必须是正整数。默认值:1
  • max_train_samples: 出于调试目的或更快的训练,将训练示例的数量截断到这个值。值-1表示使用所有训练样本。必须是正整数或-1。默认值:-1.
  • max_val_samples: 出于调试目的或更快的训练,将验证示例的数量截断到这个值。值-1表示使用所有验证样本。必须是正整数或-1。默认值:-1.
  • max_input_length: 令牌化后的最大总输入序列长度。比这更长的序列将被截断。如果为-1,max_input_length设置为1024和由分词器定义的最大模型长度的

大模型技术分享

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

《企业级生成式人工智能LLM大模型技术、算法及案例实战》线上高级研修讲座

模块一:Generative AI 原理本质、技术内核及工程实践周期详解
模块二:工业级 Prompting 技术内幕及端到端的基于LLM 的会议助理实战
模块三:三大 Llama 2 模型详解及实战构建安全可靠的智能对话系统
模块四:生产环境下 GenAI/LLMs 的五大核心问题及构建健壮的应用实战
模块五:大模型应用开发技术:Agentic-based 应用技术及案例实战
模块六:LLM 大模型微调及模型 Quantization 技术及案例实战
模块七:大模型高效微调 PEFT 算法、技术、流程及代码实战进阶
模块八:LLM 模型对齐技术、流程及进行文本Toxicity 分析实战
模块九:构建安全的 GenAI/LLMs 核心技术Red Teaming 解密实战
模块十:构建可信赖的企业私有安全大模型Responsible AI 实战 

Llama3关键技术深度解析与构建Responsible AI、算法及开发落地实战

1、Llama开源模型家族大模型技术、工具和多模态详解:学员将深入了解Meta Llama 3的创新之处,比如其在语言模型技术上的突破,并学习到如何在Llama 3中构建trust and safety AI。他们将详细了解Llama 3的五大技术分支及工具,以及如何在AWS上实战Llama指令微调的案例。
2、解密Llama 3 Foundation Model模型结构特色技术及代码实现:深入了解Llama 3中的各种技术,比如Tiktokenizer、KV Cache、Grouped Multi-Query Attention等。通过项目二逐行剖析Llama 3的源码,加深对技术的理解。
3、解密Llama 3 Foundation Model模型结构核心技术及代码实现:SwiGLU Activation Function、FeedForward Block、Encoder Block等。通过项目三学习Llama 3的推理及Inferencing代码,加强对技术的实践理解。
4、基于LangGraph on Llama 3构建Responsible AI实战体验:通过项目四在Llama 3上实战基于LangGraph的Responsible AI项目。他们将了解到LangGraph的三大核心组件、运行机制和流程步骤,从而加强对Responsible AI的实践能力。
5、Llama模型家族构建技术构建安全可信赖企业级AI应用内幕详解:深入了解构建安全可靠的企业级AI应用所需的关键技术,比如Code Llama、Llama Guard等。项目五实战构建安全可靠的对话智能项目升级版,加强对安全性的实践理解。
6、Llama模型家族Fine-tuning技术与算法实战:学员将学习Fine-tuning技术与算法,比如Supervised Fine-Tuning(SFT)、Reward Model技术、PPO算法、DPO算法等。项目六动手实现PPO及DPO算法,加强对算法的理解和应用能力。
7、Llama模型家族基于AI反馈的强化学习技术解密:深入学习Llama模型家族基于AI反馈的强化学习技术,比如RLAIF和RLHF。项目七实战基于RLAIF的Constitutional AI。
8、Llama 3中的DPO原理、算法、组件及具体实现及算法进阶:学习Llama 3中结合使用PPO和DPO算法,剖析DPO的原理和工作机制,详细解析DPO中的关键算法组件,并通过综合项目八从零开始动手实现和测试DPO算法,同时课程将解密DPO进阶技术Iterative DPO及IPO算法。
9、Llama模型家族Safety设计与实现:在这个模块中,学员将学习Llama模型家族的Safety设计与实现,比如Safety in Pretraining、Safety Fine-Tuning等。构建安全可靠的GenAI/LLMs项目开发。
10、Llama 3构建可信赖的企业私有安全大模型Responsible AI系统:构建可信赖的企业私有安全大模型Responsible AI系统,掌握Llama 3的Constitutional AI、Red Teaming。

解码Sora架构、技术及应用

一、为何Sora通往AGI道路的里程碑?
1,探索从大规模语言模型(LLM)到大规模视觉模型(LVM)的关键转变,揭示其在实现通用人工智能(AGI)中的作用。
2,展示Visual Data和Text Data结合的成功案例,解析Sora在此过程中扮演的关键角色。
3,详细介绍Sora如何依据文本指令生成具有三维一致性(3D consistency)的视频内容。 4,解析Sora如何根据图像或视频生成高保真内容的技术路径。
5,探讨Sora在不同应用场景中的实践价值及其面临的挑战和局限性。

二、解码Sora架构原理
1,DiT (Diffusion Transformer)架构详解
2,DiT是如何帮助Sora实现Consistent、Realistic、Imaginative视频内容的?
3,探讨为何选用Transformer作为Diffusion的核心网络,而非技术如U-Net。
4,DiT的Patchification原理及流程,揭示其在处理视频和图像数据中的重要性。
5,Conditional Diffusion过程详解,及其在内容生成过程中的作用。
三、解码Sora关键技术解密
1,Sora如何利用Transformer和Diffusion技术理解物体间的互动,及其对模拟复杂互动场景的重要性。
2,为何说Space-time patches是Sora技术的核心,及其对视频生成能力的提升作用。
3,Spacetime latent patches详解,探讨其在视频压缩和生成中的关键角色。
4,Sora Simulator如何利用Space-time patches构建digital和physical世界,及其对模拟真实世界变化的能力。
5,Sora如何实现faithfully按照用户输入文本而生成内容,探讨背后的技术与创新。
6,Sora为何依据abstract concept而不是依据具体的pixels进行内容生成,及其对模型生成质量与多样性的影响。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/610869.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

numpy1

注意:reshape函数的 - 1(是让电脑 自己计算的意思 import numpy as np n np.arange(0,25).reshape(5,5) m np.array([0,5,10,15,20])nn np.repeat(n,2,axis 1) m m.reshape(-1,1)nn[:,1:8:2] np.tile(m,(1,4)) nn[:,0:-1]

无人机+光电吊舱:四光(可见光+红外热成像+广角+激光测距)吊舱设计技术详解

无人机与光电吊舱的结合,特别是四光吊舱(包含可见光、红外热成像、广角和激光测距技术)的应用,为无人机提供了强大的侦察和测量能力。以下是对四光吊舱设计技术的详解: 1. 可见光技术:可见光相机是吊舱中最…

螺栓扭矩如何设计?——SunTorque智能扭矩系统

螺栓扭矩设计的大小是一个涉及工程实践的重要问题,它直接关系到螺栓连接的紧固质量和安全性。螺栓扭矩是工程领域中常用的一个概念,用来描述螺栓在连接过程中所需的旋转力矩。正确的螺栓扭矩可以确保螺栓和螺母之间的紧密连接,避免由于松动而…

Java入门基础学习笔记10——变量

变量的学习路径: 认识变量->为什么要用变量?->变量有啥特点?->变量有啥应用场景? 什么是变量? 变量是用来记住程序要处理的数据的。 变量的定义格式: 数据类型 变量名称 数据; 数…

C语言/数据结构——(用双链表实现数据的增删查改)

一.前言 嗨嗨嗨,大家好久不见!前面我们已经通过数组实现数据的增删查改、单链表实现数据的增删查改,现在让我们尝试一下使用双链表实现数据的增删查改吧! 二.正文 如同往常一样,对于稍微大点的项目来说,…

2024洗地机选购指南 | 怎么选洗地机不会被坑?

家里的地板总是需要打扫,但工作忙碌的我们往往没有足够的时间来打理。洗地机不仅能够帮助我们节省宝贵的时间,还能让我们的家变得一尘不染。今天,笔者将为大家讲讲挑选洗地机的技巧,告诉大家怎么挑选洗地机不会被坑,顺…

解锁楼宇自动化新维度西门子Insight+BACnet IP I/O控制器

数字城市的楼宇自动化已不再是一个遥不可及的概念,而是成为了现代建筑的标配。特别是在大型商业综合体、高端写字楼和公共设施中,高效的楼宇管理系统是确保环境舒适度与能源效率的关键。当提及楼宇自动化领域的佼佼者,西门子Insight楼宇自动化…

【洛谷】动态规划之最长公共子序列

前言: 本系列目的是记录日常所刷的题,有的是自己想出来的题,有的是看了大佬题解后想明白的题 题目 P1439 【模板】最长公共子序列 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 前提: 两个排列都是1到n的排列,说…

如何使用Vite快速构建vue项目

1、在自己定义的目录下打开cmd命令窗口:如文件夹目录上面输入cmd回车就可以打开 2、检查 node环境:通过node --version看版本号表示安装好了 3、 使用Vite 快速构建Vue项目 npm init vitelatest qiuqiu.admin 注意:如何你电脑没有装vite首…

《2024网络安全报告》中文版

Check Point发布了《2024 年网络安全报告》,Check Point Research 对网络攻击数据(包括所有地区和全球的统计数据)进行了全面分析,揭示了不断变化的网络威胁形势。 ● 去年,全球 1/10 的机构遭遇勒索软件攻击尝试&a…

QTday5

目录 网络聊天室服务器 网络聊天室客户端 学生管理系统 网络聊天室服务器 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);//实例化一个tcp服务器sernew QTcpSe…

【SpringBoot记录】自动配置原理(2):自动配置的案例说明

案例说明 通过前面案例可以很明显感受到,SpringBoot除了做了依赖管理,还帮我们做了一些常规的配置,下面举例详细说明。 tomcat 项目可以直接启动,不需要任何配置,通过上一节发现引入了启动器中引入了spring-boot-st…

Python之数据分析基础

导言: “21世纪的竞争是数据的竞争,谁掌握数据,谁就掌握未来”。如何将大量看似杂乱无章的数据进行聚合,并发现潜在的规律也变得越来越重要。本文将先说明数据分析的步骤,再通过python完成实例数据的处理、分析最终展…

【初阶数据结构】顺序表OJ题讲解

前言 📚作者简介:爱编程的小马,正在学习C/C,Linux及MySQL。 📚本文收录与初阶数据结构系列,本专栏主要是针对时间、空间复杂度,顺序表和链表、栈和队列、二叉树以及各类排序算法,持…

PyTorch 图像篇

计算机视觉技术是一门包括计算机科学与工程、神经生理学、物理学、信号处理、认知科学、应用数学与统计等多学科的综合性科学技术, 是人工智能的一个重要分支, 目前在智能安防、自动驾驶汽车、医疗保健、生成制造等领域具有重要的应用价值。 计算机视觉…

常用控件(一)

常用控件 一 按钮类控件QPushButtonQRadioButtonQCheckBox 按钮类控件 QPushButton 使用QPushButton表示一个按钮,这是我们当前最熟悉的一个控件了; QPushButton继承自QAbstractButton,这个类是个抽象类,是其他按钮类的父类; QAbstractButt…

anaconda虚拟环境pytorch安装

1.先创建conda的虚拟环境 conda create -n gputorch python3.102.激活刚刚创建好的虚拟环境 conda activate gputorch3.设置镜像源 这一步是后面安装pytorch相关包所需要的来源 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple4.查看电脑的显卡…

跨界内容营销:Kompas.ai如何帮助你的品牌打破行业边界

在当今多元化的市场环境中,跨界营销已成为品牌拓展影响力和用户基础的重要策略。通过跨界合作,品牌能够打破行业界限,创造独特的用户体验,从而提升品牌形象和市场竞争力。本文将深入分析跨界营销的作用,详细介绍Kompas…

SliderCaptcha滑块验证码功能

SliderCaptcha滑块验证码功能 资源文件及文档&#xff1a;https://gitee.com/LongbowEnterprise/SliderCaptcha <!DOCTYPE html> <html lang"en" xmlns:th"http://www.thymeleaf.org"> <head><meta charset"UTF-8"><…

mysql 其他类型转换为BIT

看官网说明,BIT没什么特殊之处。但实际操作却不能将任何其他类型字段转为BIT,下面两个都报语法错误 CAST(column AS BIT(1)) AS aa , CAST(column AS BIT) AS bb, BIT value则模式是VARBINARY b1 as cc, -- cc为VARBINARY类型 下面是《高性能MySQL(第四版)》中关于BIT类型的…
最新文章