LLM

⼴义的 LLM ⼀般覆盖了从⼗亿参数(如 Qwen-1.5B)到千亿参数(如 Grok-314B)的所有⼤
型语⾔模型。只要模型展现出涌现能⼒,即在⼀系列复杂任务上表现出远超传统预训练模型(如 BERT、T5)的能
⼒与潜⼒,都可以称之为 LLM。

预训练

微调

Q1 LLM微调和Pretrain Model微调有什么区别?
A: Pretrain Model微调是子任务微调,例如BERT模型,针对文本分类任务,需要专门微调,针对实体识别任务,需要专门微调。LLM微调是“指令微调”,而不是子任务微调,因为LLM在经过预训练阶段之后,能力已经非常强大,不需要对下游的各个子任务进行微调,只需要拟合用户的指令。SFT 的主要⽬标是让模型从多种类型、多种⻛格的指令中获得泛化的指令遵循能⼒,也就是能够理解并
回复⽤户的指令。

input:告诉我今天的天⽓预报?
output:根据天⽓预报,今天天⽓是晴转多云,最⾼温度26摄⽒度,最低温度9摄⽒度,昼夜温差⼤,请注意保暖哦

表现良好的开源 LLM SFT 数据量⼀
般在数 B token 左右。

SFT数据集

因为SFT的数据集属于有监督的数据集,需要标注,而且标注成本较高。所以也有利用已有LLM来生成SFT数据集的。

{
"instruction":"将下列⽂本翻译成英⽂:",
"input":"今天天⽓真好",
"output":"Today is a nice day!"
}

为了在SFT阶段学习到和预训练阶段不一样的知识,也会在SFT数据集中增加一些格式引导,例如。

Input:  ### Instruction:\n将下列⽂本翻译成英⽂:今天天⽓真好\n\n### Response:\n
Output: ### Instruction:\n将下列⽂本翻译成英⽂:今天天⽓真好\n\n### Response:\nToday is a nice day!

这里可以看到,模型的输出包含了原有的输入,这是因为,模型的Decoder部分,需要先输入已有的指令+输入。做CLM训练,模型预测的结果依然是Input+Output,只不过Input不参与Loss的计算。

在这里插入图片描述

多轮对话

模型的多轮对话能力完全来自于SFT,因此需要将数据构造为多轮对话的形式。

RLHF(Reinforcement Learning from Human Feedback)系统

RLHF,即人类反馈的强化学习。从功能层面来区分LLM的训练阶段,可以分为两阶段,分别是预训练和对齐。预训练是赋予模型海量的知识,和推理能力。对齐则分为指令对齐(SFT)和价值观对齐(RLHF)。
在强化学习中,分为两个组件,智能体和环境,智能体做出行动,环境给出反馈,智能体再根据反馈修改自己行动的策略。

RM(Reward Model)

奖励模型,在大模型针对问题做出回答后,奖励模型需要给出一个符合人类便好的打分。大模型会根据这个打分优化自身。
RM从本质上就是一个文本分类模型,架构上就是LLM架构(Bert架构)加上一层分类层。

OpenAI 使⽤了 175B 的 LLM 和 6B 的
RM。同时,RM 使⽤的模型可以是经过 SFT 之后的 LM,也可以是基于偏好数据从头训练的 RM。哪⼀种更好,⾄
今尚没有定论。
也有研究认为,需要使用与待对齐模型规模相同或更大规模的奖励模型,这是因为较大规模的奖励模型可以更好地理解对齐模型的知识和能力范围。例如,LLaMA-2使用相同的检查点初始化“待对齐模型”和奖励模型。

奖励模型的训练数据,使用LLM对任务指令生成一定数量的候选输出,然后人类进行对齐标注,一般有三种标注形式。

  • 打分式:针对特定Q-A问答对给出具体的分数
  • 对比式:对大模型的输出,两两对比,排名在前的为正例,最大化正例和负例的分数差异。
  • 排序式:对同一个问题的K个输出,进行排序,然后对两两分别进行计算差异,使差异最大。

一般来说排序式效果更好,因为每个人的价值观也有差异,绝对的分数并不准确。这里还有一些研究使用AI来标注偏好数据,“RLAIF:Scaling Reinforcement Learning from Human Feedback with AI Feedbackl”。研究证明了该方法是产生积极效果的,虽然不一定比人类标注的效果更好,但研究证明了,在对齐过程中仅使用大模型生成数据比仅使用监督微调而不做强化学习对齐的效果更好

对齐标准

因为存在多种对齐标准,例如有用性、诚实性和无害性,因此,单一奖励模型很难同时反映所有优化目标。可以针对不同的对齐标准,训练多个特定的奖励模型,然后使用特定的组合策略(平均或者加权)计算最终得分。

奖励模型的目标函数

这里将奖励模型看作二元分类任务,因为可能出现过拟合,所以可以加入一个对最佳输出的语言建模损失作为正则项。即模型不光能正确判断正例,也能加强正例的预测输出。
核心原因是:奖励模型的训练目标(学习偏好排序)过于聚焦于有限的标注数据,缺乏对文本 “基础合理性”(如语言流畅度、语义连贯性)的约束。

强化学习

强化学习旨在训练一个智能体,该智能体与外部环境进行多轮交互,通过学习最佳策略以最大化从外部环境获得的奖励。在这一过程中,智能体是根据外部环境决定下一步行动的决策者,因此也被称为策略模型(也被称为演员模型 actor model)
在智能体与外部环境的第t轮交互中,智能体根据外部环境的状态sts_tst选择合适的策略,决定下一步要做的行动ata_tat。做出行动后,外部环境的状态变为st+1s_{t+1}st+1。同时,会给智能体一个奖励分数rtr_trt

在与外部环境的交互中,智能体的最大目标是最大化所有决策轨迹(Trajectory)τ=[a1,o1,a2,o2...,aT,oT]\tau = [a_1,o_1,a_2,o_2...,a_T,o_T]τ=[a1,o1,a2,o2...,aT,oT] 所获得的奖励总和R(τ)=∑t=1TrtR(\tau)=\sum_{t=1}^{T}r_tR(τ)=t=1Trt
这里,a是每一步的动作,o是环境的观察。RL 的训练本质:让智能体多做 “试错”(生成大量轨迹),对 “能完成任务的好轨迹” 奖励,对 “完不成的坏轨迹” 惩罚,最终让智能体学会只走 “好轨迹” 的策略。

形式化地,假设参数为θ\thetaθ的策略模型做出决策轨迹τ\tauτ的概率为Pθ(τ)P_{\theta}(\tau)Pθ(τ),该决策轨迹在最终状态能累积获得的奖励为R(τ)R(\tau)R(τ)。强化学习的目标为最大化所有轨迹的奖励的期望。

J(θ)=arg⁡max⁡θEτ∼Pθ[R(τ)]=arg⁡max⁡θ∑τR(τ)Pθ(τ)\mathcal{J}(\theta)=\underset{\theta}{\arg \max } \mathbb{E}_{\tau \sim P_{\theta}}[R(\tau)]=\underset{\theta}{\arg \max } \sum_{\tau} R(\tau) P_{\theta}(\tau)J(θ)=θargmaxEτPθ[R(τ)]=θargmaxτR(τ)Pθ(τ)

策略梯度

有了目标函数后,可以对其计算梯度。
∇J(θ)=∑τR(τ)∇Pθ(τ)\nabla \mathcal{J}(\theta)=\sum_{\tau} R(\tau) \nabla P_{\theta}(\tau)J(θ)=τR(τ)Pθ(τ)
其中R(π)R(\pi)R(π)为外部环境根据决策轨迹给出的奖励,与模型无关,因此该项被看作常数项。因为我们的目标是使得奖励最大化,因此采用梯度上升的方法更新策略模型的参数。
θ=θ+η∇J(θ)\theta = \theta + \eta \nabla \mathcal{J}(\theta)θ=θ+ηJ(θ)

这里,η\etaη是学习率。在自然语言场景下,生成候选Token的决策空间非常大,很难对所有决策轨迹计算期望,因此这里使用采样算法生成多条决策轨迹,对其计算平均奖励来近似全局的期望。

这个过程被称为Rollout,就是 智能体按照当前的策略,在环境中完整执行一次任务,生成一条从 “任务开始” 到 “任务结束” 的完整轨迹的过程。没有 Rollout 生成的轨迹,智能体就没有 “试错数据”,根本学不了策略

在这里插入图片描述

注意,这里在算法层面有两种不同的训练方式,因为需要强化学习需要不断Rollout,那么负责采用轨迹的模型和负责更新参数的“学习模型”是否是一个呢?因此产生了两种训练方式。

  • 同策略(on-policy):负责交互与负责学习的模型相同。为了保证采样得到的决策轨迹能够近似策略模型做出的决策期望,每次更新策略模型参数后,需要重新进行采样。因此数据利用率和鲁棒性较低
  • 异策略(off-policy):专门有一个负责与环境进行交互的模型来产生轨迹,且该模型是固定的。

同时,在工程实现上,模型训练中,一次不会只有一个样本,而是对一批batch个样本进行训练,也就是一次要Rollout一组轨迹。但是对于长视野(long horizon)任务,不同任务的Rollout时间差距可能很大。因此也产生了两种不同的策略。

  • 同步 Rollout(Synchronous Rollout):“等所有人做完,再一起交卷”:对一批任务(比如 32 个),同时启动 Rollout,必须等这一批中「耗时最久的那个任务」完成 Rollout 后,才停止采样、收集所有 32 个任务的轨迹数据,然后用这批数据去优化策略—— 简单说就是 “齐步走,不落下任何一个”
  • 异步 Rollout(Asynchronous Rollout):“做完一个交一个,凑够数就批改,不等慢的”:对一批任务(比如 32 个),同时启动 Rollout,不要求等所有任务完成:
  1. 当这批任务中大部分(比如 95%)的快任务完成 Rollout后,先收集这部分完成的轨迹数据;
  2. 直接用这部分数据立即开始优化策略,不用等剩下的慢任务;
  3. 剩下的慢任务,交给独立的后台进程继续做 Rollout,等下一轮训练时,再把这些慢任务的轨迹数据和下一批的快任务数据合并,一起用。

在这里,待对齐的大语言模型为策略模型,用户输入的问题和已经生成的内容为当前状态,生成下一个Token为动作,生成整个回复即决策轨迹。奖励模型会对回复进行打分。

PPO

Proximal Policy Optimization,近端策
略优化算法。是强化学习领域的一个重要的优化方法。也属于上面介绍的异策略训练方式。

之前介绍的策略梯度的方法有一些问题,例如在状态sts_tst,有三种决策,at,1,at,2,at,3a_{t,1},a_{t,2},a_{t,3}at,1,at,2,at,3,其对应的奖励一次递增。
0<Q(st,at,1)<Q(st,at,2)<Q(st,at,3)0 < Q(s_t,a_{t,1}) < Q(s_t,a_{t,2}) < Q(s_t,a_{t,3})0<Q(st,at,1)<Q(st,at,2)<Q(st,at,3)。那如果采样到决策at,1a_{t,1}at,1。获得的奖励依然大于0,是正向的,策略模型会提高产生at,1a_{t,1}at,1的概率。但是对三个决策来说,at,1a_{t,1}at,1是奖励最低的决策。 因此对与奖励分数的计算,重新引入了优势函数来估算。

At^=Q(st,at)−V(st)\hat{A_{t}} = Q(s_t,a_t) - V(s_t)At^=Q(st,at)V(st)
这里V(st)V(s_t)V(st)表示从当前状态开始,所有决策得到的奖励的期望值,V(st)V(s_t)V(st)由一个评价模型(Critic model)得到,评价模型可以使用奖励模型进行初始化,并且随着策略模型不断调整。优势函数的本质就是希望选择一个较高奖励的决策。

重要性采样

之前介绍到,因为全局的决策轨迹的期望无法计算,因此采用了一些轨迹,来估算全局的期望。这里可以形式化为,通过在一个分布p上采用得到的样本来近似另一个分布q上样本的分布,主要用于分布q难于计算或采样的情况。
在这里插入图片描述

RLHF 流程

在这里插入图片描述

  1. 模型初始化​​
    ​​Actor Model(策略模型)​​:待对齐的语言模型,从经过监督微调(SFT)的大型语言模型(LLM)初始化,目标是生成符合目标分布的回复。
    ​​Reference Model(参考模型)​​:与Actor Model同步初始化(如共享SFT后的权重),作为策略优化的参考基准(约束当前策略输出与原始分布的偏差,避免差异较大)。
    ​​Reward Model(RM,奖励模型)​​:独立训练的模型,输入Prompt和回复,输出标量奖励值(量化人类偏好)。
    ​​Critic Model(评价模型)​​:​​独立训练​​的价值函数(非复用RM参数),输入状态(含Prompt和部分回复),用于修正奖励得分。

  2. 根据参考模型采样得到若干轨迹

  3. 回复生成​​
    给定输入Prompt,Actor Model和Ref Model分别生成候选回复 yactory_{actor}yactor 和参考回复 yrefy_{ref}yref。两者的输出将用于后续的策略约束和奖励计算。

  4. 强化学习评分模块​​,计算优势估计
    Actor Model生成的回复 yactory_{actor}yactor 分别输入Reward Model和Critic Model,获取两类评分:
    ​Reward Model输出​​:即时标量奖励 rtr_trt,直接反映人类对回复的偏好(如流畅度、信息量)。
    ​​Critic Model输出​​:状态价值 VtV_tVt,表示从当前状态开始所有决策能得到的奖励期望值。

  5. 目标函数:策略约束或梯度裁剪:
    KL散度计算。为了避免当前训练轮次的语言模型明显偏离初始的语言模型
    rKL=−θKL.DKL(πactor(y∣x)∣∣πref(y∣x))r_{KL} = - \theta_{KL}. D_{KL}(\pi_{actor}(y|x)||\pi_{ref}(y|x))rKL=θKL.DKL(πactor(yx)∣∣πref(yx))

  • πmodel\pi_{model}πmodel :模型model输出的概率分布
  • DKLD_{KL}DKL:KL散度,衡量两个分布的差异
  • θKL\theta_{KL}θKL :控制KL惩罚强度的超参数
    在这里插入图片描述
  1. 梯度上升优化策略模型(Actor Model)
  2. 更新参考模型(reference model)

在这里插入图片描述

RLVR(Reinforcement Learning with Verifiable Rewards)系统

传统的RLHF系统,需要大量的人类标注数据来训练奖励模型,这就存在一下几个问题。(1)可审计性:奖励黑箱(2)可扩展性差(3)存在偏见 (4)可重复性:奖励模型的输出不稳定。

RLVR的核心机制是:只有当模型输出通过预设的自动化校验时,才给予奖励。系统生成多个候选答案,通过验证器筛选出正确结果,并引导模型不断向“能通过校验的行为”进化。

例如:对于数学题、代码这类有确定答案的任务,直接用规则验证器(比如检查数学答案是否正确)给奖励。这种方法的核心算法是GRPO(组相对策略优化)

GRPO的工作原理是:给模型一道题,让它生成多个答案(比如8个),然后用这一组答案的奖励来计算"优势值",判断哪些答案应该被强化,哪些应该被抑制。目标函数大概长这样:

常见的验证器包括:

  • 数学与逻辑校验:验证答案是否精确匹配指定格式和数值
  • 代码单元测试:编译并运行代码,验证功能正确性
  • JSON模式验证:确保输出符合下游服务所需的机器可读结构
  • 引文解析校验:验证引用来源是否真实存在并能支撑论点
    在这里插入图片描述
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐