LLM training 知识点
LLM的训练流程
- 主要包括 预训练、监督微调、后训练
预训练
- 在大规模的未标注的数据集上训练模型,学习数据的潜在结构和通用表示,常采用自监督学习策略,得到一个具有强大建模能力的模型,此阶段需要大量的计算资源,模型相当庞大,以便能够更好地泛化到各种任务,数据一般是数百亿到数万亿的token,包括来自互联网Common
Crawl、wikipedia等数据。方法主要有:
- 自回归语言建模(Causal Language Modeling,CLM):这是GPT系列模型的核心方法,模型预测下一个词,Next Token Prediction.
- 掩码语言建模(Masked Language Modeling, MLM):这是BERT等模型使用的方法,模型被训练来预测随机被遮盖的词语 产物:得到一个基础模型(base model),拥有强大的语言理解和生成能力
指令微调(Instruction Tuning) or 监督微调(Supervised Fine-tuning)
- 使用高质量的、结构化的指令-响应对数据集,这些数据涵盖问答、摘要、翻译等多种任务,将预训练得到的通用模型适应特定任务,通过在特定领域的带标签数据集上进行微调,模型学习特定任务的输出模式。SFT的主要方法:
全参数微调:对所有权重进行调整,使其适应特定领域任务,适用于拥有大量与任务高度相关的高质量训练数据。
LoRA:基本概念:是冻结预训练好的模型的权重参数,在冻结原模型参数的情况下,通过往模型中加入额外的网络层,并只训练这些新增的网络层参数。降低了成本,还能获得和全模型参数微调类似的效果。基本原理:神经网络的每一层都包含矩阵的乘法,这些层中的权重矩阵通常具有满秩,大模型在微调过程中权重矩阵的增量/变化(\(\Delta(W)\)) 具有较低的内在维度,即它是低秩的(Low-Rank):
- 在全量微调中,直接更新模型的全部权重矩阵 $W ^{d k} $,需要训练 \(d \times k\) 个参数 LoRA的方法冻结了原始的预训练权重矩阵W,并在其旁边引入了两个小的、可训练的低秩矩阵 \(A \in \mathcal{R}^{d \times r}\) 和 $B ^{r k} $。模型的前向传播计算现在变为: \[ Output = W*x + \Delta W * x\]
可训练的增量权重 $W $ 被定义为: \(\Delta W = BA\) r << min(d,k), \(\Delta W\) 具有低秩特性
LoRA的优势:参数量大幅减少,矩阵A通常用随机高斯分布初始化,矩阵B通常初始化为0,这种初始化确保了在训练开始时,\(\Delta W = BA\) 约等于0,即微调过程从接近原始预训练模型的状态开始
对齐
- 收集模型行为符合人类的价值观和道德标准,使回答安全、有用且符合人类的偏好。主要方法:
RLHF
- 人类标注员对模型的同一指令生成的多个不同响应进行排序,以反映人类对不同回答的偏好,针对同一个输入x,生成两个回答y_w(较优) 和 y_l(较劣)。
- 训练奖励模型(Reward Model):使用步骤1收集的排序数据,来训练一个独立的奖励模型,这个RM的作用是量化任何模型输出的好坏程度
- 基于PPO的强化学习:利用奖励模型提供的反馈,通过PPO算法优化Actor模型以提升回答质量,为防止模型偏离监督微调后的模型,在优化过程中引入KL惩罚项,该阶段通常涉及一下4个模型:
- 经过SFT后待更新的模型(策略模型)
- 冻结的SFT模型,作为对齐基准(参考模型)
- 奖励模型,用于评估回答质量,参数固定(奖励模型)
- Critic 模型:用于估计未来奖励,辅助Actor模型更新(价值模型)
RLHF的局限性: - 多模型训练,除了Actor模型外,还需要训练奖励模型、Critic模型,整体训练过程复杂 - 高采样成本:LLM生成文本计算量大,强化学习过程中的大量在线采样进一步提高了计算开销 - 训练不稳定和超参数敏感:PPO设计众多超参数,调参复杂且训练过程易受不稳定因素影响
DPO(Direct Preference Optimization, DPO)
- 核心思路是将RLHF的目标直接转化为类似于监督微调的对比学习任务,从而实现:
- 省略奖励模型训练:直接利用人类偏好数据优化Actor模型,无需单独训练奖励模型
- 消除强化学习采样,采用对比损失函数代替PPO,降低采样和计算资源消耗
- 提升训练稳定性:(基于监督学习的方法对超参数不敏感,训练过程平稳 虽然DPO在LLM性能提升的上限不及RLHF,但在资源利用,实现复杂度和训练稳定性上具有优势
- 偏好数据采集:收集大量偏好数据,每个样本包含输入x及一对回答(y_w, y_l),即偏好回答(chosen)和质量较差的回答(rejected) 模型训练:最小化DPO损失直接优化Actor模型,使生成的回答更符合人类偏好
GRPO(Group Relative Proximaty Optimization)
不依赖于传统的价值网络来计算奖励值,而是通过比较同一组内不同策略的相对表现来计算奖励值,直接使用多个采样输出的平均奖励作为基线。不需要PPO中的价值模型(Critic Model),PPO的核心是又是函数,它需要一个奖励模型来提供奖励,还需要一个价值模型来提供基线,即在状态下的平均期望回报。
GRPO的思考:能不能找到一个更简单的方式来估计这个“平均水平”呢? 他们想到了利用群体智慧:对于同一个指令,不只生成一个回答,而是生成一组回答,然后,假设这组回答的平均奖励,可以近似地作为当前策略下的平均水平,也就是价值的一个估计。
GRPO的关键机制:组内优势估计,GRPO的核心是对PPO中优势函数的计算方式进行了修改,步骤如下:
- 组采样:对于一个给定的指令,使用当前的策略模型,生成一个包含多个回答的组
- 组评估:使用一个奖励函数为组内的每一个回答打分,得到奖励
- 组内优势计算:计算组内所有回答的平均奖励和标准差,对于组内的每一个回答,其优势被定义为其归一化后的奖励,这种方法被称为组内奖励归一化,它直接用组内的统计量来代替了PPO中需要专门训练的价值模型所扮演的角色
- 策略更新:一旦计算出了每个样本的优势,接下来和PPO相似,同样使用clipped surrogate objective来更新模型 GRPO的优势与特点:高效性:最显著的优势就是不需要价值模型,价值模型和策略模型通常一样大,去掉它可以节省内存和计算 灵活性:GRPO对奖励函数的定义非常灵活,不需要一个端到端的神经网络模型,在某些任务中,可以设计出可验证的奖励函数; 稳定性:通过组内归一化,使得优势函数的尺度保持在一个稳定的范围内,有助于稳定训练过程
Qwen2.5
预训练
- 预训练数据扩展到18T tokens,重点关注代码、知识,数学
- 后训练:SFT 100W+ 指令数据,还做了离线DPO和在线GRPO的多阶段强化学习,增强人类偏好,改进了长文生成
- 架构改进:分组查询注意力,GQA,用于非线性激活的SWiGLU激活函数,用于编码位置信息的旋转位置嵌入,(RoPE),注意力机制中的QKV偏置,带有预归一化的RMSNorm
- MoE模型:将FFN替换为专门的MoE层实现,每层包括多个FFN专家和一个路由,该机制将token分派给前K个专家
Qwen2.5-VL
核心思路
游湖啊视觉编码器,引入窗口注意力机制,提高推理效率,动态FPS采样,扩展动态分辨率到时间维度,绝对时间对齐的MRoPE,在时间域升级MRoPE,与绝对时间对齐,高质量数据;原生动态分辨率:模型可以直接处理不同分辨率的图片,增强Agent能力
动态分辨率:传统方法会强制将图象缩放到固定尺寸,Qwen2.5VL 保持宽高比,仅调整尺寸为28的倍数
训练方法:先训练ViT:ViT从0开始训,训练过程包括CLIP预训练、视觉-语言对齐、端到端的微调,训练所有参数,多模态预训练,增加序列长度并加入基于Agent的数据。
后训练:采用监督微调和DPO,双阶段优化,冻结ViT
Qwen 3
训练
- 预训练的三个阶段:在30万亿tokens的数据上预训练,使用4k上下文,帮助模型建立基本的技能,增强了STEM领域的训练,增加了5万亿tokens,进一步提升模型能力;加入高质量的长文本数据,将上下文长度扩展到32k,让Qwen3能够处理更长的输入
- 后训练:
- 长链推理冷启动,微调多样化的推理数据,让模型具备了处理复杂任务的基本能力
- 强化学习:利用强化学习进一步提升模型的推理能力,让模型能够在面对复杂任务时更加高效地寻找最佳答案
- 思考模式和非思考模式融合,面对不同任务时,灵活切换
- 通用任务强化学习,对20多个常见的任务进行强化学习微调