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

news2024/11/24 11:56:19

大模型微调之 在亚马逊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.coloradmin.cn/o/1660666.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python注意事项【自我维护版】

各位大佬好 ,这里是阿川的博客 , 祝您变得更强 个人主页:在线OJ的阿川 大佬的支持和鼓励,将是我成长路上最大的动力 阿川水平有限,如有错误,欢迎大佬指正 本篇博客在之前的博客上进行的维护 创建Python…

Java转Kotlin调用JNI方法异常

一、背景 Java调用JNI方法时没有任何问题,但是使用Java转Kotlin以后出现了崩溃异常:A java_vm_ext.cc:597] JNI DETECTED ERROR IN APPLICATION: jclass has wrong type: 校验参数后没有任何变化,经过分析验证找到解决方案 二、原因…

Python中的多进程、多线程、协程

Python中的多线程、多进程、协程 一、概述 1. 多线程Thread (threading): 优点:同一个进程中可以启动多个线程,充分利用IO时,cpu进行等待的时间缺点:相对于进程,多线程只能并发执…

Windows:管理用户账户,密码策略和安全配置

在Windows操作系统中,管理用户账户和密码策略是确保系统安全的关键步骤。本文将探讨如何通过PowerShell和其他Windows工具管理用户账户,包括查看和设置密码策略、检查用户状态,以及导出和导入安全策略。这些管理任务对于系统管理员尤其重要&a…

STM32学习和实践笔记(25):USART(通用同步、异步收发器)

一,STM32的USART简介 USART即通用同步、异步收发器,它能够灵活地与外部设备进行全双工数据交换,满足外部设备对工业标准 NRZ 异步串行数据格式的要求。 UART即通用异步收发器,它是在USART基础上裁剪掉了同步通信功能。 开发板上…

Star-CCM+分配零部件至区域2-根据零部件的特性分组分配零部件至区域

前言 前文已经讲解了将零部件分配至区域的方法。其中有一种方法是"将所有部件分配到一个区域"。在工程应用中,有时会把同一种类型的部件分配到一个区域,因此在一个项目中有可能需要多次进行"将所有部件分配到一个区域"。如在电机温…

主机通过带光发端和ops接收端控制屏串口调试记录

场景就是主机电脑使用cutecom通过光纤口再到ops接收端从而控制屏过程 光纤口有个发送端波特率,Ops有接收端波特率,屏有自己的波特率,主机电脑可以通过发串口指令去设置发送端波特率和ops接收端波特率。因为主机只有一个,屏有多种…

【机器学习300问】82、RMSprop梯度下降优化算法的原理是什么?

RMSprop,全称Root Mean Square Propagation,中文名称“均方根传播”算法。让我来举个例子给大家介绍一下它的原理! 一、通过举例来感性认识 建议你第一次看下面的例子时忽略小括号里的内容,在看完本文当你对RMSprop有了一定理解时…

智能助手上线,大模型提供云服务专属顾问

业务背景 在使用云服务的时候,当您遇到复杂问题,如配置、关联或计费方式不明确时,可能需要向客服提交工单进行技术沟通。在漫长的工作过程中,耗费了宝贵的时间和精力。 2024 年 4 月,百度智能云正式推出了融合文心大…

嵌入式学习<1>:建立工程、GPIO和keil仿真

嵌入式学习_part1 本部分笔记用于学习记录,笔记源头 >>b站江科大_STM32入门教程_新建工程 建立工程、GPIO 开发环境:keil MDK、STM32F103C8T6 1 )建立工程 (1)基于寄存器开发、基于标准库 或者 基于HAL库开…

学习网络需要认识的各种设备

网桥(bridge) 网桥工作在数据链路层,可以把多个局域网连接起来,组成一个更大的局域网 以太网中,数据链路层地址就是mac地址,网桥与集线器的区别就是,网桥会过滤mac,只有目的mac地址…

财务管理|基于SprinBoot+vue的财务管理系统(源码+数据库+文档)

财务管理系统 目录 基于SprinBootvue的财务管理系统 一、前言 二、系统设计 三、系统功能设计 系统功能实现 1管理员功能模块 2员工功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍&#xff1…

Word设置代码块格式

前言 Word中无法像Markdown和LaTeX一样插入代码块,若要在Word中插入代码块可以手动设置代码块格式或自动粘贴代码块格式。若不追求完美高亮效果,可使用前者方案;若追求完美的高亮效果,可使用后者方案。下文介绍这2种方案。 手动…

同时安装多个nodejs版本可切换使用,或者用nvm管理、切换nodejs版本(两个详细方法)

目录 一.使用nvm的方法: 1.卸载nodejs 2.前往官网下载nvm 3.安装nvm 4.查看安装是否完成 5.配置路径和淘宝镜像 6.查看和安装各个版本的nodejs 7.nvm的常用命令 二.不使用nvm,安装多个版本: 1.安装不同版本的nodejs 2.解压到你想放…

生信技能45 - 基于docker容器运行生信软件

1. 获取docker镜像 以运行xhmm CNV分析软件为例。 # 搜索仓库镜像 sudo docker search xhmm# 拉取镜像 sudo docker pull ksarathbabu/xhmm_v1.0# 启动镜像,非后台 sudo docker run -it ksarathbabu/xhmm_v1.0 /bin/bash # -i: 交互式操作。 # -t: 终端。 # ksarathbabu/xhmm…

鲁棒控制:鲁棒性能

鲁棒控制(Robust Control)是一种控制系统设计方法,其目标是使控制系统在面临参数摄动、外部干扰、建模误差等不确定性因素时,仍能够保持其期望的性能特性。鲁棒性是指控制系统在一定(结构,大小)…

分布式光伏管理平台功能介绍

一、项目管理系统 1、关键信息:板块化展现项目关键信息,包含所在区域、屋面类型、未来25年发电量、累计收益等信息。 (1) 可迅速获取项目核心要点 (2) 及时跟进修改,凸显项目信息 (3) 项目信息清晰展现,了解整体项目流程 2、项…

QQ超大文件共享(别用,传进去后,压缩都显示不出来,LJ qq!)(共享文件)

文章目录 需要共享双方同时在线开启方法第一次会提示设置默认共享目录&#xff0c;默认是E:\QQFileShare\<qq号>\&#xff1a;然后新建共享会在其后创建共享目录&#xff0c;共享目录中只能共享文件。需要点击添加文件&#xff0c;直接把文件拷贝到目录里好像还不行&…

激光雷达在智能自动装车系统中的关键技术

智能自动装车系统是现代物流领域的重要发展方向之一&#xff0c;而激光雷达作为其中的关键技术之一&#xff0c;发挥着至关重要的作用。 一、激光雷达在智能自动装车系统中的关键技术 三维点云处理&#xff1a;激光雷达通过获取目标车辆的三维点云数据&#xff0c;可以构建出…

从零入门激光SLAM(十三)——LeGo-LOAM源码超详细解析4

大家好呀&#xff0c;我是一个SLAM方向的在读博士&#xff0c;深知SLAM学习过程一路走来的坎坷&#xff0c;也十分感谢各位大佬的优质文章和源码。随着知识的越来越多&#xff0c;越来越细&#xff0c;我准备整理一个自己的激光SLAM学习笔记专栏&#xff0c;从0带大家快速上手激…