大模型微调基本概念指北,零基础入门到精通,收藏这一篇就够了

大模型微调的常见方法总结(非常详细)零基础入门到精通,收藏这一篇就够了 阅读详情

本文主要分享一下大模型微调相关的基本概念,包括大模型(GPT)训练流程、微调(SFT)方法&分类&框架&最佳实践、强化学习(RLHF),最后则是分享了如何训练垂直领域大模型。


本文是参考网上博客、文章后进行总结而成,旨在让刚接触大模型的同学阅读后能对大模型训练的各个阶段有一个大致的概念。大佬可以直接跳过,或者也可以帮忙看下写错没有哈哈~

如果你在阅读过程中发现文中存在错误,请一定留言指正,感谢~

1. 大模型训练流程

ChatGPT 是如何炼成的

ChatGPT 是如何炼成的,或者说如何训练出一个大模型?

GPT 训练流程图如下:

gpt-train-pipeline.png

图源:medium.com[1]

图中的 Reward Modeling 和 Reinforcement Learning 可以看做一步,即 RLHF,因此训练一个大模型一般可以分为三步:

  • 1)预训练(Pre Training,PT):这一阶段是模型训练的基础,利用海量数据、大量算力通过无监督训练得到基座模型。

  • 海量数据:一般按 T 计算,最少也是几百 G,数据通常包括从互联网上收集的大规模文本语料库,模型通过学习如何预测下一个词或 token

  • 大量算力:一般是上万块 GPU、时间则是按月计算

  • Llama 2 是在 2 万亿个 token 上训练的,Llama 2 70B 需要 1720320 GPU 小时

  • Llama 3 在 24K GPU 集群上训练,使用了 15T 的数据

  • 预训练后的模型具备强大的语言生成能力,但由于它主要是无监督训练的结果,可能不会直接适应具体的任务(如问答、对话),需要进一步的微调。

  • 2)监督微调(Supervised Fine-Tuning, SFT):这一阶段则是对基座模型进行微调,让模型能够适用特定任务,最终得到一个 SFT 模型。

  • 微调的目的是让模型更好地理解特定任务的需求。例如,通过使用对话数据集对模型进行微调,可以让模型在遇到问题时生成更相关的答案,而不是简单地生成与问题相似的文本。

  • 这些问答对话由人类准备的,通常是有标签的,包含了问题和答案对,或者其他特定任务的数据。

  • 3)强化学习(Reinforcement Learning from Human Feedback, RLHF):这一阶段通过引入人类反馈(或者基于人类反馈训练的奖励模型)进一步优化模型的生成质量,使其生成的回答更符合用户的期望和人类的价值观。

  • Helpful:判断模型遵循用户指令以及推断指令的能力。

  • Honest:判断模型产生幻觉( 编造事实)的倾向。

  • Harmless:判断模型的输出是否适当、是否诋毁或包含贬义内容。

  • 一般根据 3H 原则进行打分:

  • 由于直接从人类获取反馈的成本较高,通常会先训练一个奖励模型(Reward Model,RM)来代替人类打分,这样可以在 RL 的框架下进行大规模的自动优化。

预训练由于对算力和数据需求都比较大,因此一般玩家不会涉及到预训练,更多的是基于开源的基础模型(LLama、Baichuan、Qwen、ChatGLM…)做微调、强化学习以满足自身需求。

模型名称各部分的含义

以 Qwen1.5-14B-Chat-GQPT-Int4 为例,可以分为 5 个部分,具体含义如下图:

model-name-means.png

5 个参数含义如下:

  • 模型系列:一般一个公司、组织的模型都会归属于同一个系列

  • 比如阿里的 Qwen 系列、Meta 的 Llama 系列,智普的 Chatglm 系列

  • 模型版本:一个系列的模型也会有多个版本,一般是有大更新时才会更新

  • 比如 Qwen 系列就存在 Qwen、Qwen1.5、Qwen2 三个系列

  • 参数量:一般为 xx B,B 为单位,表示 10 亿参数

  • 比如 7B 则是有 70 亿参数,72B 则是 720 亿参数

  • 这个只是一个大致范围,比如 68 亿、72 亿参数的模型一般也叫做 7B

  • 微调:开源模型为了能够直接使用,一般会提供经过问答任务微调的版本,即 Chat 模型

  • 量化:为了降低内存占用有的也会提供量化版本,比如大模型一般使用 FP32/FP16 精度,即一个参数占 4 或者 2 字节,而量化则是将权重参数使用更低精度的格式来存放,比如量化为 FP8 则是只需要 1 字节,Int4 则只需要 4 位。

我们需要注意的就是是否经过微调、量化:

  • 基座模型:不带任意后缀,或者 -Base 后缀,就是预训练后未经过微调的原始模型

  • 比如 Qwen1.5、Llama3

  • SFT 模型:带特定领域任务后缀,比如 xxx-chat,就是对基座模型做了问答任务微调。

  • 比如 Qwen1.5-Chat、Baichuan2-Chat

  • 量化模型:它通过将模型中的高精度浮点数参数转换为低精度的整数参数来减少模型的存储和计算需求。这样做可以显著降低模型的内存占用,加快推理速度,并减少能耗。量化可以带来显著的效率提升,但也可能引入一些精度损失

  • GGUF:GGUF(以前称为 GGML)是一种量化方法,允许用户使用 CPU 来运行 LLM,但也可以将其某些层加载到 GPU 以提高速度。

  • GQPT:GPTQ 是一种 4 位量化的训练后量化(PTQ)方法,主要关注 GPU 推理和性能。

  • AWQ:是一种新格式(激活感知权重量化),它是一种类似于 GPTQ 的 量化方法。AWQ 和 GPTQ 作为方法有几个不同之处,但最重要的是 AWQ 假设并非所有权重对 LLM 的性能都同等重要。也就是说在量化过程中会跳过一小部分权重,这有助于减轻量化损失。所以他们的论文提到了与 GPTQ 相比的可以有显著加速,同时保持了相似的,有时甚至更好的性能。

  • …

如何选择合适的模型?

  • 如果是直接部署推理,建议选择 Chat 模型,如果资源不够则选择量化版本。

  • 如果要做增量预训练、微调等操作则建议使用基座模型。

2. 微调(SFT)

什么是大模型微调

大模型微调,通常指有监督微调(Supervised Fine-Tuning, SFT),是在预训练模型(一般称为“基座模型”)的基础上进行的训练过程。

预训练模型通常已经掌握了广泛的语言知识和语义表示,但为了让模型在特定任务或领域上表现得更好,我们会在特定任务的数据集上对其进行微调。

为什么需要微调

微调是优化大模型在特定任务或领域表现的关键步骤。通过微调,模型不仅能在通用任务上表现出色,还能在特定应用场景中更好地满足用户的需求。它在任务性能、领域适应性、数据利用效率和计算成本等方面具有显著的优势。

具体为:

  • 任务特定性能提升:预训练模型虽然有广泛的语言理解能力,但在特定任务上(如情感分析、问答系统、机器翻译等)的表现可能不尽如人意。微调通过在任务特定的数据上进一步训练,使模型能够更好地理解和执行该任务。

  • 领域适应性:预训练模型可能在一些通用领域表现良好,但在特定领域(如医学、法律、金融等)中可能难以准确理解专业术语和内容结构。通过微调,可以让模型更好地适应这些领域的语言特点,提高在这些领域中的应用效果。

  • 数据稀缺性:对于一些数据稀缺的任务或领域,获取大量标签数据可能比较困难。微调允许在有限的数据集上进行有效训练,从而在数据稀缺的情况下也能取得较好的性能。

  • 防止过拟合:预训练过程中模型可能会过度拟合于无监督学习的任务(如下一个词预测),而在特定任务中表现不佳。通过微调,可以让模型专注于特定任务的数据,这有助于减少过拟合的风险,提高模型在该任务上的泛化能力。

  • 成本效益:与使用 prompt 来引导模型行为相比,微调通常可以更高效地优化模型的表现。微调后的模型通常可以更直接地执行任务,减少了对复杂提示的依赖。同时,微调可以在更小的模型上实现类似于大型模型的性能,从而降低推理的计算成本和延迟,比如与使用通用的 GPT-3.5 模型相比,经过微调的小型模型(如 LLaMA 7B)在成本效益上可能更具优势,尤其是在特定任务的执行上。

微调方法分类

微调根据更新参数量不同可以分为以下两种:

  • 全量参数更新 Full Fine-tuning(FFT):即对预训练模型的所有参数进行更新,训练速度较慢,消耗机器资源较多。

  • 参数高效微调 Parameter-Efficient Fine-Tuning(PEFT):只对部分参数做调整,训练速度快,消耗机器资源少。

理论上,预训练和微调都可以做全量参数更新和部分参数更新,但是一般实际训练时都是 预训练 + 全量,微调 + 部分参数更新 这样组合的。

FFT 的原理,就是用特定的数据,对大模型进行训练,将 W 变成_W_′,_W_′相比 W,最大的优点就是上述特定数据领域的表现会好很多。

但 FFT 也会带来一些问题,影响比较大的问题,主要有以下两个:

  • 一个是训练的成本会比较高,因为全量微调的参数量跟预训练的是一样多的;

  • 一个是叫**灾难性遗忘(Catastrophic Forgetting)**,用特定训练数据去微调可能会把这个领域的表现变好,但也可能会把原来表现好的别的领域的能力变差。

  • 可以理解为:修复一个 bug 的同时又在别的地方引入了一个新的 bug。

另外,随着模型规模变得越来越大,这使得在消费级硬件上进行全量微调变得不可行,这也给参数高效微调技术研究提供了空间。

PEFT 主要想解决的问题,就是 FFT 存在的上述两个问题,PEFT 也是目前比较主流的微调方案。

Scaling Down to Scale Up: A Guide to Parameter-Efficient Fine-Tuning[2] 论文里系统地概述和比较了参数高效微调方法,涵盖了 2019 年 2 月至 2023 年 2 月之间发表的 40 多篇论文,作者在文中将 PEFT 分为三类:

  • 添加额外参数的 Addition-based(A)

  • 类似适配器的方法(Adapter-like methods)

  • 软提示(Soft prompts)

  • 选取部分参数更新 Selection-based(S)

  • 引入重参数化 Reparametrization-based(R)

peft.png

常见的 PEFT 方法:BitFit、Prompt Tuning、Prefix Tuning、P-Tuning、P-Tuning V2、Adapter Tuning、LoRA、QLoRA、MAM Adapter、UniPELT、 Freeze tuning 等等。

sft-method.png

大致介绍:

  • 1)**《BitFit: BitFit: Simple Parameter-efficient Fine-tuning or Transformer-based Masked Language-models》**训练时只更新 bias 的参数或者部分 bias 参数

  • 2)**《Prefix Tuning: Prefix-Tuning: Optimizing Continuous Prompts for Generation》**在输入 token 之前构造一段任务相关的 virtual tokens 作为 Prefix,然后训练的时候只更新 Prefix 部分的参数,而 PLM 中的其他部分参数固定。

  • 3)《Prompt Tuning: The Power of Scale for Parameter-Efficient Prompt Tuning》 该方法可以看作是 Prefix Tuning 的简化版本,它给每个任务定义了自己的 Prompt,然后拼接到数据上作为输入,但只在输入层加入 prompt tokens,并且不需要加入 MLP 进行调整来解决难训练的问题。

  • 4)《P-Tuning: GPT **Understands, Too 》**该方法将 Prompt 转换为可以学习的 Embedding 层,并用 MLP+LSTM 的方式来对 Prompt Embedding 进行一层处理。相比 Prefix Tuning,P-Tuning 加入的可微的 virtual token,但仅限于输入层,没有在每一层都加;另外,virtual token 的位置也不一定是前缀,插入的位置是可选的。这里的出发点实际是把传统人工设计模版中的真实 token 替换成可微的 virtual token

  • 5)**《P-Tuning v2: P-Tuning v2: Prompt Tuning Can Be Comparable to Fine-tuning Universally Across Scales and Tasks》**该方法在每一层都加入了 Prompts tokens 作为输入,而不是仅仅加在输入层

  • 6)《Adapter Tuning :Parameter-Efficient Transfer Learning fo NLP》,该方法设计了 Adapter 结构,并将其嵌入 Transformer 的结构里面,针对每一个 Transformer 层,增加了两个 Adapter 结构(分别是多头注意力的投影之后和第二个 feed-forward 层之后),在训练时,固定住原来预训练模型的参数不变,只对新增的 Adapter 结构和 Layer Norm 层进行微调,从而保证了训练的高效性。

  • 7)《LoRA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS》,该方法的核心思想就是通过低秩分解来模拟参数的改变量,从而以极小的参数量来实现大模型的间接训练.

  • …

各自的特点:

  • BitFit: 只更新模型中的 bias 参数或部分 bias 参数。

  • Prefix Tuning: 在模型输入前添加可训练的前缀向量。

  • Prompt Tuning: 在输入层加入提示词(prompt tokens)进行微调。

  • P-Tuning: 在模型的每层都加入可学习的提示词。

  • Adapter Tuning: 在 Transformer 的每一层插入小型的适配器网络。

  • LoRA (Low-Rank Adaptation): 通过在模型的权重矩阵中引入低秩结构来进行微调。

  • QLoRA(Quantized LoRA**)**:提出了 NormalFloat 数据类型,通过量化降低基座模型的显存占用,使得 65B 模型在单 GPU 上可以完成训练。

这部分微调技术也可以按照 PEFT 进行分类:

  • 1)增加额外参数的 A,如:Prefix Tuning、Prompt Tuning、Adapter Tuning 及其变体。

  • 2)选取一部分参数更新的 S,如:BitFit。

  • 3)引入重参数化的 R,如:LoRA、AdaLoRA、QLoRA。

  • 4)混合高效微调(混合多种微调方法),如:MAM Adapter、UniPELT

现在比较主流的几种 PEFT:Prompt Tuning、Prefix Tuning、LoRA、QLoRA。

训练框架选择

比较主流的几个微调工具:

  • huggingface/transformers[3]:最基础的一个库,提供了丰富的预训练模型和微调工具,支持大多数主流的 NLP 任务(如文本分类、序列标注、生成任务等)。适合进行快速实验和生产部署,有着广泛的社区支持。

  • huggingface/peft[4]:Parameter-Efficient Fine-Tuning,huggingface 开源的微调基础工具

  • modelscope/ms-swift[5]:modelscope 开源的轻量级微调框架

  • 以中文大模型为主,支持各类微调方法

  • 可以通过执行脚本进行微调,也可以在代码环境中一键微调

  • 自带微调数据集和验证数据集,可以一键微调 + 模型验证

  • hiyouga/LLaMA-Factory[6]:全栈微调工具

  • 运行脚本微调

  • 基于 Web 端微调

  • 支持海量模型 + 各种主流微调方法

  • 自带基础训练数据集

  • 除微调外,支持增量预训练和全量微调

  • NVIDIA/Megatron-LM[7]:NVIDIA 开发的大模型训练框架,支持大规模的预训练和微调。适用于需要极高性能和规模的大模型训练和微调。

快速实验选择 Transformers 即可,超大规模的选择 NVIDIA/Megatron-LM,普通规模就选择使用较为简单的 hiyouga/LLaMA-Factory。

3. SFT 最佳实践

  • 数据集的质量对模型微调至关重要,毫不夸张的说,微调后的模型效果 80%取决于 SFT 训练数据,少量高质的数据要比大量低质或者普通的数据要好很多。

  • 超参数调整

  • Epochs:需要根据数据集多少动态调整

  • Learning Rate:根据不同微调方法 LR 也需要调整

  • Global BatchSize:调整 bs 可以加快训练速度,但是也会增加显存占用,需要根据 GPU 资源调整。

数据集准备

数据集的质量对模型微调至关重要,毫不夸张的说,微调后的模型效果 80%取决于 SFT 训练数据,少量高质的数据要比大量低质或者普通的数据要好很多。

  • 数据集格式:SFT 数据一般以问答形式呈现,参考开源数据集:BAAI/COIG[8]

  • Prompt 优化,适当构建 few-shot 及 COT(思维链,Chain-of-Thought)数据加入训练,可以有助于模型的指令理解以及多轮对话能力。

  • 数据规模、多样性:通常 1 万条左右的精标数据即可发挥良好的效果,在扩充数据规模时需要注意数据多样性,多样性的数据可以提高模型性能

  • 数据质量:挑选质量较高的数据,可以有效提高模型的性能。

1)数据集格式

问答格式可以处理成多种文件格式, 例如 JSONL, Excel File, CSV; 核心是要保持两个独立的字段, 即问题和答案。

例如:

[     {       "question": "特种珊瑚是一种海洋动物吗?",       "answer": "特种珊瑚虽然生活在海洋中,但它属于珊瑚软体类的石珊瑚目,是一种动物。而海洋动物是海洋中所有异养型生物的总称,包括鱼类、鲸类、浮游动物和游泳动物等,特种珊瑚只是其中的一种。"     }   ]   

2)Prompt 优化

  • prompt 优化主要在训练阶段,用于增强指令的多样性,让模型更好的理解指令

  • 预测阶段的 prompt 优化主要用于无法进行 finetune 的场景,例如 chatgpt/yiyan.baidu.com 等。

  • 对于特定下游任务,预测阶段建议与训练阶段保持一致或者接近的 prompt,可以暂时忽略预测阶段的 prompt 优化。

  • 适当构建 few shot 及 COT(Chain of Thought) 数据加入训练,可以有助于模型的指令理解以及多轮对话能力。

3)数据规模、数据多样性

在 SFT 上数据规模的重要性低于数据质量, 通常 1 万条左右的精标数据即可发挥良好的效果。

在扩充数据规模时需要注意数据多样性,多样性的数据可以提高模型性能。

在不扩大提示多样性的情况下扩大数据量时,收益会大大减少,而在优化数据质量时,收益会显著增加。

4)数据质量

挑选质量较高的数据,可以有效提高模型的性能。

数据质量用户需尽量自己把控,避免出现一些错误,或者无意义的内容。虽然平台也可以提供数据质量筛选的能力,但不可避免出现错筛的情况。

数据质量可以通过 ppl、reward model,文本质量分类模型等方式进行初步评估。经过人工进行后续筛选。

SFT 超参数调整

比如 10 万个样本 2-3 个 epoch 内为佳,2 ~ 5 万个样本 一般是 4-5 个 epoch 并且领域增强的 SFT 数据不需要太多,质量一定要把握好,一般的领域总结回复的任务几百条数据即可( 个人经验 ),视情况而定;小数据量可以适当增大 epoch,让模型充分收敛。

  • 例如:EPOCH:100 条数据时, Epoch 为 15,1000 条数据时, Epoch 为 10,10000 条数据时, Epoch 为 2。

一般只需要关注以下 三个超参数的调整

  • Epochs:需要根据数据集多少动态调整,比如 100 条数据时, Epoch 设置为 15,1000 条数据时, Epoch 为 10,10000 条数据时, Epoch 为 2。

  • Learning Rate:根据不同微调方法 LR 也需要调整,对于 LoRA 的 peft 训练方式,同时可以适当增大 LR

  • Global batch_size:调整 bs 可以加快训练速度,但是也会增加显存占用,需要根据 GPU 资源调整。如增加 accumulate step 32 64,当分布式节点增多时可以进一步增加 batch_size,提高吞吐。

4. 什么是强化学习(RLHF)

RLHF 是一种训练方式,并不是类似 Lora 这种的训练方法,RLHF 可以分为三阶段:

  • 1)Language Model,LM:一个预训练语言模型 LM,对基础模型微调得到一个微调后的模型

  • 使用人工标注的数据对预训练模型进行监督微调,以获得初始版本的生成模型。

  • 2)Reward Model,RM:训练一个奖励模型 RM:训练一个奖励模型(Reward Model),用于评估生成模型的输出质量。

  • 收集生成模型输出及其对应的人类反馈。这些反馈可以是评分、选择最佳输出、直接修改等形式。

  • 使用这些反馈数据训练奖励模型,使其能够对生成的输出进行评分。

  • 奖励模型通常是一个监督学习模型,通过最小化预测评分与人类反馈评分之间的差距进行训练。

  • 3)Reinforcement Learning,RL:用强化学习 RL 方式微调 LM :使用强化学习算法(如 PPO(Proximal Policy Optimization))进一步优化第一步中生成的模型,使其输出更符合人类反馈的期望。

  • PPO 是一种强化学习算法,旨在平衡探索和利用,通过限制每次更新的幅度,确保稳定性和效率。

  • 算法优化生成模型的策略,使其输出在奖励模型的评分下不断提升。

  • 使用初始生成模型产生输出,并通过奖励模型评估这些输出的质量

  • 使用 PPO 算法,根据奖励模型的评分更新生成模型的参数。

  • 反复进行生成、评估、优化的循环,逐步提高生成模型的性能。

相比于 RLHF 现在好像 DPO 比较火

5. 如何训练垂直领域大模型?

1)选择 Base 模型还是 Chat 模型?

对模型进行微调,都有可能触发灾难性遗忘。

在进行领域任务的 SFT 时,模型会重新调整对话任务相关的参数,而这些调整可能会干扰或破坏模型原先在通用对话任务上所学到的知识。这种现象就是灾难性遗忘。

即:灾难性遗忘 会导致模型通用能力降低。

因为 Chat 模型就是在 Base 模型基础上做了微调以适应对话任务,掌握了生成对话内容的能力的 SFT 模型,因此再对 Chat 模型做 SFT 触发 灾难性遗忘 风险就比较高,相比之下 Base 因为没经过微调,因为触发 灾难性遗忘 的风险会比较低。

因此选择哪种模型取决于我们的场景:

  • 选 Base 模型:当您希望领域任务效果提升,同时不希望牺牲通用能力时,选择 Base 模型作为基座模型更为合适。

  • 选 Chat 模型:如果您的领域任务与通用任务相关性不大,并且只追求领域任务的效果,可以选择 Chat 模型。

2)是否需要继续预训练(Continue PreTraining)?

  • 必要性:如果领域任务的数据集与预训练时的数据集差异较大,例如您的数据源自公司内部,而预训练数据无法覆盖这些领域,建议进行继续预训练。这样可以让模型更好地适应领域特定任务。

  • 数据量考虑:当领域任务的数据量较大(例如 1B 以上的 token),增量预训练是必要的。

因此,一般有两种选择:

  • 1)青春版:Chat 模型 + SFT

  • 资源消耗少、模型通用能力有所降低

  • 2)完整版:Base 模型 + 增量预训练(Continue PreTraining) + SFT

  • 资源消耗大、模型通用能力完整保留

在此基础上,还可以通过强化学习进一步提升模型效果。

那么,最终一个完整的训练垂直领域大模型可以分为以下三步:

  • 1)Continue PreTraining(增量预训练): 一般垂直大模型是基于通用基座大模型进行二次的训练,为了给模型注入领域知识,就需要用领域内的语料进行继续预训练。

  • 2)SFT( Supervised Finetuning,有监督微调): 通过 SFT 可以激发大模型理解领域内的各种问题并进行回答的能力(在有召回知识的基础上)

  • 3)强化学习:一般是二选一

  • RLHF(奖励建模、强化学习训练): 通过 RLHF 可以让大模型的回答对齐人们的偏好,比如行文的风格。

  • DPO(直接偏好优化)

6. 小结

1)大模型训练流程

  • 1)预训练(Pre Training,PT)

  • 2)监督微调(Supervised Fine-Tuning, SFT)

  • 3)强化学习(Reinforcement Learning from Human Feedback, RLHF)

2)微调

  • 微调根据参数分类:

  • 全量参数更新 Full Fine-tuning(FFT):,即对预训练模型的所有参数进行更新,训练速度较慢,消耗机器资源较多。

  • 参数高效微调 Parameter-Efficient Fine-Tuning(PEFT) :只对部分参数做调整,一般指的就是 PEFT。

  • 主流的微调方法:Prompt Tuning、Prefix Tuning、LoRA、QLoRA。

  • 微调框架:peft、ms-swift、LLaMAFactory

3)SFT 最佳实践

  • 数据集准备:10000 条左右高质量数据集

  • 超参调整

  • Epochs

  • Learning Rate

  • Global batch_size

4)强化学习 RLHF

  • Reward Model,RM:训练一个奖励模型 RM:训练一个奖励模型(Reward Model),用于评估生成模型的输出质量。

  • Reinforcement Learning,RL:用强化学习 RL 方式微调 LM :使用强化学习算法(如 PPO(Proximal Policy Optimization))进一步优化第一步中生成的模型,使其输出更符合人类反馈的期望。

5)如何训练垂直领域大模型

  • 1)Continue PreTraining(增量预训练): 一般垂直大模型是基于通用基座大模型进行二次的训练,为了给模型注入领域知识,就需要用领域内的语料进行继续预训练。

  • 2)SFT( Supervised Finetuning,有监督微调): 通过 SFT 可以激发大模型理解领域内的各种问题并进行回答的能力(在有召回知识的基础上)

  • 3)强化学习:一般是二选一

  • RLHF(奖励建模、强化学习训练): 通过 RLHF 可以让大模型的回答对齐人们的偏好,比如行文的风格。

  • DPO(直接偏好优化)

AI大模型学习福利

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2024最新版优快云大礼包:《AGI大模型学习资源包》免费分享

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2024最新版优快云大礼包:《AGI大模型学习资源包》免费分享

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2024最新版优快云大礼包:《AGI大模型学习资源包》免费分享

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2024最新版优快云大礼包:《AGI大模型学习资源包》免费分享

四、AI大模型商业化落地方案

img

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2024最新版优快云大礼包:《AGI大模型学习资源包》免费分享

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

AUTOSAR从入门到精通-诊断事件管理模块(DEM)(四) 在 Autosar 中,诊断事件是指在车辆电子系统中发生的特定事件,可以用于诊断和故障排除。DEM模块通过EventId和相关的EventName来表示每个诊断事件。诊断事件的状态代表了监控器的结果,DEM模块通过RTE或其他BSW模块从SW-C接收监控器的结果。DEM模块使用EventId来管理系统中每个诊断事件的状态,并对各个测试结果执行所需的操作,例如存储冻结帧/拓展帧。所有监控器和BSW模块使用EventId作为符号化的EventName来管理诊断事件。 阅读详情

相关推荐

解决VMWare ESXi PCIe直通显卡导致的DevicePowerOn启动故障

本文详细解析了VMWare ESXi中PCIe直通显卡导致的DevicePowerOn启动故障,重点分析了MMIO空间不足的根本原因,并提供了完整的解决方案。通过修改.vmx文件中的关键参数,如pciPassthru.64bitMMIOSizeGB,可以有效解决显存分配问题。文章还涵盖了硬件兼容性检查、性能调优技巧及大规模部署的实战案例,帮助用户彻底解决显卡直通难题。

weixin_42537919的博客 575

【2024最新】深入了解 大语言模型(LLM)微调方法(总结)

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。即更新模型所有权重的过程,被称为全微调。需要注意的是,与预训练一样,全微调需要足够的内存和计算预算来存储和处理训练过程中的所有梯度、优化器和其他更新组件。其中,大模型微调技术在此过程中起到了非常关键的作用,它提升了模型的生成效率和适应性,使其能够在多样化的应用场景中发挥更大的价值。

m0_48891301的博客 3860

别再用Excel硬算传热了!用MATLAB/Octave复现国赛数学建模A题(附完整代码与避坑指南)

本文详细介绍了如何利用MATLAB/Octave高效解决数学建模中的传热问题,替代传统的Excel计算方法。通过复现2018年国赛A题的高温作业服传热模型,从理论推导到代码实现,提供了完整的有限差分法解决方案和参数拟合技巧,帮助读者提升数学建模效率和准确性。

weixin_30512965的博客 379

llama-factory训练RLHF-PPO模型

除了ppo, dpo(Direct Preference Optimization:直接偏好优化)也是一种常见的调优手段, 不过多篇paper研究证明性能不如PPO, 在计算资源不足的情况下DPO也是个不过的选择,因为不需要训练奖励模型, 而且训练速度快,效果也比较稳定, 不像PPO那样很容易训崩.其他LLM偏好对齐训练技术还有ORPO,IPO,CPO以及效果看起来很棒的KTO.还有最新发表的RLOO,看起来比PPO更好更易训练.这个领域发展太快, 脑子快不够用了.

weixin_42479327的博客 1万+

Renesas:定时器输入捕获

一、PWM输入捕获 1、Smart Configurator配置 注意:在使用前,需要使能对应的定时器!否侧无法正常进行输入捕获! 2、脉冲宽度的获取 如何区分高低电平的脉冲宽度:最常用的方法就是在触发中断后,判断IO口的高低电平,来确认是上升沿触发的中断还是下降沿触发的中断。 若无法进入中断,可查看:Renesas:配置中断的常规流程 (1)中断方式(Smart Configurator生成的代码) #pragma interrupt r_Config_TAUB0_0_i...

不吃鱼的猫的博客 2481

零基础学写《扫雷》游戏(Qt扫雷源码)

扫雷游戏是在windows系统中自带的游戏,他的游戏玩法其实很简单,20世纪初期电脑上没有啥游戏可以玩,所以扫雷游戏也算是当时是最常火爆的一个电脑游戏。以下文章详细介绍扫雷游戏的实现。实现语言为C++。

啊渊的专栏 1万+

一文详解大模型微调全流程

节前,我们星球组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学.针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。

2201_75499313的博客 1971

QT实现MQTT服务端(附完整源码)

QT实现MQTT服务端(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 1253

大模型入门(六)—— RLHF微调大模型

所以价值的计算如下:核心是下面的delta的计算,除了考虑到当前的时刻的奖励值,还考虑到了未来时刻的输出的奖励值nextvalues(只不过这里的奖励值是由critic网络直接输出的每个token对应的分数)。从上图可以看出,给定一个输入x,会生成两个文本y11和y22,一个来自于初始的模型,另一个来自于微调的模型,微调的模型生成的文本还会进入到奖励模型中打分输出rθ,而初始模型和微调的模型生成的结果会用KL散度约束它们的分布,确保模型不会太偏离原来的模型,并且能输出高质量的回复。

chaishen10000的专栏 6856

2026年OPPO嵌入式岗位面试题带详细答案

本文总结了OPPO嵌入式岗位面试的核心考点,涵盖硬件驱动、系统启动、Linux内核开发等7大模块共34道典型题目。重点解析了SPI通信协议、中断处理、U-Boot启动流程、Linux驱动开发等关键技术,突出硬件调试与工程实践能力考核。题目设置贴合实际岗位需求,适合校招与社招驱动开发岗位应聘者系统复习,帮助掌握嵌入式开发的核心知识与面试要点。

Open 489

YOLOv11-seg 改进系列 | 引入原创 RSCD 重参数共享卷积分割头,增强 Head 表达力并压低计算量

本文提出一种改进的YOLOv11-seg分割头Segment_RSCD,通过重参数共享卷积增强表达能力。该模块在LSCD共享检测头基础上引入DiverseBranchBlock重参数卷积,保留三尺度预测与Proto掩码原型接口不变。相比原始Segment头,Segment_RSCD参数增加4%但计算量降低1.3%,在共享卷积结构中通过多分支补偿表达能力损失,同时利用Scale层保持尺度差异校准。该方法不改动Backbone/Neck结构,仅重构检测/分割头,实现训练期多路径聚合与部署期等效单分支的平衡。

qq_44224801的博客 184

有浏览器就行,手把手带你从零微调大模型!

今天分享一篇技术文章,你可能听说过很多大模型的知识,但却从未亲自使用或微调过大模型。大模型微调本身是一件非常复杂且技术难度很高的任务,因此本篇文章仅从零开始,手把手带你走一遍微调大模型的过程,并不会涉及过多技术细节。希望通过本文,你可以了解微调大模型的流程。微调大模型需要非常高的电脑配置,比如GPU环境,相当于你在已经预训练好的基础上再对大模型进行一次小的训练。但是不用担心,本篇文章会使用阿里魔塔社区提供的集成环境来进行,无需使用你自己的电脑配置环境。

python12345_的博客 2940

2. Android_逆向的历史与发展

学完本节,希望你能够:了解 Android 逆向工程的发展历程,从早期 APK 破解到现代应用保护;入门先把这几类「在干啥」搞清楚,后面学脱壳、反反调试会顺很多。(反编译 APK 得到的类汇编代码,相当于程序的「菜谱」)就能绕过验证,到后来混淆、加固、反调试一起上,逆向难度越来越高。(第三节 什么是 CPU 指令集),帮你搞清楚「反汇编看到的那些指令」是从哪来的、和 Android 逆向有啥关系。有必要——先搞清「没加固时怎么玩」,再学脱壳和对抗,思路才顺。读起来费劲,但逻辑还在,耐心一点还能跟。

长沙火山 1390

2025版最新大模型微调基本概念指北,零基础入门到精通,收藏这篇就够了

大模型微调,通常指有监督微调(Supervised Fine-Tuning, SFT),是在预训练模型(一般称为“基座模型”)的基础上进行的训练过程。预训练模型通常已经掌握了广泛的语言知识和语义表示,但为了让模型在特定任务或领域上表现得更好,我们会在特定任务的数据集上对其进行微调。1)Language Model,LM:一个预训练语言模型 LM,对基础模型微调得到一个微调后的模型使用人工标注的数据对预训练模型进行监督微调,以获得初始版本的生成模型。2)

Libra1313的博客 2319

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

什么是大模型微调?如何对大模型进行微调?大模型入门到精通,收藏这篇就够了

从GPT-3到ChatGPT,再到GPT-4和GitHub Copilot,微调在这些过程中发挥了重要作用。什么是微调?微调能解决哪些问题?LoRA又是什么?如何进行微调?本文将解答上述问题,并通过代码示例展示如何使用LoRA进行微调。微调的技术门槛不高,对于规模不超过100亿参数的模型,所需的硬件成本也不高(100亿参数的模型并非玩具,许多实际应用中会使用这种规模的模型)。即使是非专业的算法人员,也可以尝试微调自己的模型。除了ChatGPT和GitHub Copilot,微调还可以应用于许多其他领域。

Python单行客的博客 1822

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

大模型微调方法总结(非常详细)零基础入门到精通,收藏这一篇就够了

本文介绍了大模型微调的一些高效方法,国内大部分公司都是走的微调的路子。预训练难度也很大,这两年应届生有预训练经验的人凤毛棱角。但微调门槛低很多,单张卡就能微调13B的模型。有微调的经验面试应该还是比较加分的,甚至可以自己尝试微调一个LLaMA2 7B。如果简历里项目经历不够,这都可以包装成一份项目经历了。Anyway,希望读完本文各位对大模型微调方法有所了解。

h1453586413的博客 2477

【大模型】初识大模型(非常详细)零基础入门到精通,收藏这一篇就够了

【大模型】初识大模型(非常详细)零基础入门到精通,收藏这一篇就够了

大模型教程的博客 6286

【大模型微调】一文掌握7种大模型微调的方法, 零基础入门到精通,收藏这一篇就够了

本篇文章深入分析了大型模型微调的基本理念和多样化技术,细致介绍了LoRA、适配器调整(Adapter Tuning)、前缀调整(Prefix Tuning)等多个微调方法。详细讨论了每一种策略的基本原则、主要优点以及适宜应用场景,使得读者可以依据特定的应用要求和计算资源限制,挑选最适合的微调方案。大型语言模型(LLM)的训练过程通常分为两大阶段:阶段一:预训练阶段在这个阶段,大型模型会在大规模的无标签数据集上接受训练,目标是使模型掌握语言的统计特征和基础知识。

heaven522的博客 4034

大模型入门教程:从零基础到精通,非常详细收藏我这一篇就够了

掌握大模型技术,可应对复杂的数据分析任务,提升研究与工作的解决能力。学习大模型具备处理复杂性、具有泛化能力与灵活性,对求职者有显著提升。本教程从基础概念出发,包括大模型的优势与应用、基础知识学习建议、入门基础教程,以及分布式训练、有监督微调与AGI学习包等内容。通过推荐的学习资源与实战项目资料,引导读者深入学习并实践大模型技术,开启AI大模型之旅。

m0_63171455的博客 3545

零基础入门大模型微调,非常详细收藏我这一篇就够了!

本文为零基础用户提供了大模型微调的入门指南,重点介绍了LoRA(低秩适配)微调技术。文章首先解释了全参数微调和参数高效微调(PEFT)的区别,并详细说明了LoRA的原理、优势及适用场景。接着,文章通过SecGPT大模型的实例,逐步展示了如何准备算力资源、配置微调环境、定制数据集、进行训练与推理,并评估微调效果。文章还提供了完整的LoRA微调代码,帮助读者在实战中理解微调技术。最后,文章总结了微调过程中可能遇到的问题及评估模型效果的方法,帮助读者更好地掌握大模型微调技术。

2401_84204207的博客 1525

这一篇带你入门大模型微调,大模型微调从入门到精通,收藏这篇就够了!

分解成两个低维度(矩阵运算 m * r * r * n =m* n),上图中数据 x 都要给原来的模型和分解后的模型(的 r 矩阵,也就是 Lora 矩阵) 训练,用的时候要合并。

h1453586413的博客 1401

2025版最新大模型微调基本概念指北,(非常详细)零基础入门到精通,收藏这篇就够了

大模型微调,通常指有监督微调(Supervised Fine-Tuning, SFT),是在预训练模型(一般称为“基座模型”)的基础上进行的训练过程。预训练模型通常已经掌握了广泛的语言知识和语义表示,但为了让模型在特定任务或领域上表现得更好,我们会在特定任务的数据集上对其进行微调。1)Language Model,LM:一个预训练语言模型 LM,对基础模型微调得到一个微调后的模型使用人工标注的数据对预训练模型进行监督微调,以获得初始版本的生成模型。2)

Python_0011的博客 1317

大模型微调技术实战讲解,零基础入门到精通,收藏这一篇就够了

大规模预训练模型已经在各种任务中表现出惊人的效果,但为了在特定的应用场景中最大化其效果,微调技术已成为一个必不可少的工具。微调允许我们在保持模型的大部分权重不变的同时,对模型进行细粒度的调整,以更好地适应特定的任务或数据集。然而,尽管微调在许多情况下都非常有效,但它也有一些挑战,如灾难性遗忘和稳定性问题。新兴的技术,如Prompt Tuning,P-Tuning,以及低秩自适应方法(LoRA)等,为这些挑战提供了有前景的解决方案。

Javachichi的博客 2364

大模型微调方法(非常详细),收藏这一篇就够了!

大模型微调方法(非常详细),收藏这一篇就够了!

Python单行客的博客 8276

【大模型】初识大模型(非常详细)零基础入门到精通,收藏这一篇就够了_大模型入门

大模型的定义大模型是指具有数千万甚至数亿参数的深度学习模型。近年来,随着计算机技术和大数据的快速发展,深度学习在各个领域取得了显著的成果,如自然语言处理,图片生成,工业数字化等。为了提高模型的性能,研究者们不断尝试增加模型的参数数量,从而诞生了大模型这一概念。本文讨论的大模型将以平时指向比较多的大语言模型为例来进行相关介绍。大模型的基本原理与特点大模型的原理是基于深度学习,它利用大量的数据和计算资源来训练具有大量参数的神经网络模型。通过不断地调整模型参数,使得模型能够在各种任务中取得最佳表现。

HUANGXIN9898的博客 4275

2025版最新大模型微调指南,零基础入门到精通,收藏这篇就够了

Prompt工程技术文章专栏系列已更新七章,涵盖了AI开发生态中的多种使用场景,并提供了足够实用的Prompt技巧。而现在,随着大模型调用变得越来越简单,tokens成本也大幅降低,AI开发者可以轻松进行API封装与二次开发。部分平台更是支持定制场景微调,推动着“AI+”模式在市场上蓬勃发展。本系列文章将开启“大模型微调”专栏,作为第一篇文章,我们将从基础概念入手,通俗易懂地讲解大模型微调技术的演变与发展,并通过简单的代码示例帮助大家理解微调的核心理念与方法。

m0_71745484的博客 1021
上一篇: 一款超实用的免费SNMP网管工具!零基础入门到精通,收藏这一篇就够了
下一篇: 从零手写大模型,零基础入门到精通,收藏这一篇就够了
网络安全大白
博客等级 码龄5年 7305粉丝 698原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值