文章目录


0 Post-Training 相关资料

探索垂类模型(如 qwen2.5-7b)在post-training时,哪种方案更合理?

近年来,LLM 在通用自然语言理解与生成任务上展现出强大的能力。然而,通用 LLM 往往基于大规模、多领域语料训练,缺乏对特定垂直领域知识与任务特性的适配。这导致模型在行业应用种常出现知识失配表达偏差任务对齐不足等问题,制约其在实际业务中的落地效果。

为提升 LLM 在垂类场景下的性能与可控性,后训练(Post-Training)已成为学界与业界的重要研究方向。

后训练通常会有监督微调(SFT)、直接偏好优化(如 DPO KTO)、强化学习式偏好优化(如 GRPO)等手段,使得模型在特定任务或价值观下实现性能提升与行为约束。

0.1 开源项目与实践指南

0.2 后训练快速入门框架

0.3 相关论文

  • A Survey of Post-Training Scaling in Large Language Models (ACL 2025)

    • http://arxiv.org/abs/2504.02181
    • 最全面的后训练综述,系统性地将后训练方法分为三大类:
      • SFT:指令生成、响应生成、数据合成
      • RL:合成奖励建模、环境反馈、自我反馈
      • TTC(测试时计算):采样、验证推理链、搜索、长上下文学习
  • A Comprehensive Survey of LLM Alignment Techniques (2024)

    • https://arxiv.org/abs/2407.16216
    • 核心价值:专注于对齐技术(RLHF、RLAIF、PPO、DPO),详细分类各类对齐方法
    • 适用场景:重点关注模型对齐和人类偏好学习

0.4 业界技术报告

  • 2024年大模型后训练总结:https://zhuanlan.zhihu.com/p/987052830
  • 核心价值:
    • 系统总结 9 个主流开源模型地后训练方案:Llama3, Qwen2, Nemotron, AFM, Yi, GLM-4, Gemma2, DeepSeek-V2, Baichuan2
    • 关键趋势识别:
      • 数据合成成为主流方案
      • 拒绝采样 + LLM-as-Judge 广泛应用
      • 重点能力需单独优化(代码、数学、推理、长上下文)
      • 模型合并技术提升性能均衡性
    • 强化学习技术对比:迭代式DPO,在线DPO,GRPO,PPO等

0.5 部分主流模型技术报告


1 LLM post-training 有哪些分类?

1.1 分类概述

A Survey of Post-Training Scaling in Large Language Models (ACL 2025) 中将后训练系统分为三大类:

  • 监督微调(SFT):根据参数更新范围
    • 全参微调(FFT):所有模型参数更新、现存消耗大、适合训练 base->instruct、或高质量闭源模型的内部训练
    • 参数高效微调(PEFT):只训练很少一部分参数、严格按照 pretrain 权重大部分冻结、包括 adapter、prefix-tuning 以及 LoRA 等
      • Adapter 类:Adapter tuning
      • Prefix Tuning 类:Prefix Tuning, Prompt Tuning, P-Tuning, P-Tuning V2
      • LoRA:LoRA, AdaLoRA, QLoRA
  • 强化学习/对齐(RL / alignment)
    • 直接偏好优化:不需要价值函数、不需要 rollout/env, 通常不依赖 ref_model, 训练稳定成本低易于扩展;优化目标直接从偏好数据推导(pairwise 或 pointwise)
      • DPO:通过对比 preferred v.s. rejected 的 log-ratio 直接拟合偏好
      • KTO:在 DP 框架上加入损失加权,让模型更关注严重错误(损失不对称)
      • SimPO:取消ref_model 和 log-ratio,训练更稳健,适合大规模自对齐
    • 强化学习式偏好优化:需要奖励/优势函数、有value baseline(但通常用 group-based 代替),训练更强但更昂贵,可进行 seq-level 优化,更适合复杂任务(推理、工具的调用)
      • GRPO:DeepSeek,用group-based baseline代替value model,训练更稳定,适合长序列,多步骤推理
      • DAPO:Decoupled Clip(解耦的裁剪策略),Dynamic-Sampling(动态采样)
      • GSPO:引入 seq-level 重要性采样,更适合长序列任务与 reasoning
  • 测试时计算/推理增强(TTC, test-time compute):训练不变、仅通过推理时间,花更多算力让模型更聪明
    • Sampling-based TTC(采样类):通过增加生成样本数量来提升输出质量
      • 多样采样(Multi-Sampling)
      • 例如Top-k, Top-p, temperature, beam-Search
      • 核心思想:多生产几个答案,再挑选最好的
      • 常用于:创意生成,开放式问答
    • Search-based TTC(搜索类):推理过程中使用搜索算法寻找更优解,让模型生成多个步骤路径,选择更优路径的解
      • Simple Search(简单树搜索):BFS/DFS 思想、小规模搜索路径
      • Monte-Carlo Tree Search(MCTS):用于数字推理、代码推理等任务;DeepMind AlphaCode 也用类似技术
      • Beam Search:同时保留多个候选序列进行扩展
    • Reasoning-based TTC(推理链类):利用思维链提升模型的可解释性推理能力,让模型多想一步,多写几个链条,再选更靠谱的
      • CoT:思维链
      • Self-Consistency:生成多条CoT,投票选择最佳答案
      • ToT:树思维链
      • GoT:图思维链
    • Self-Verfication(自校验类):推理完让模型reflect
      • Proof Verification:模型自己检查答案逻辑
      • Self-Critique:先反思再修改
      • Answer-Reranking:生成多个答案、然后自评打分、选择最优解
    • Context-based TTC(上下文增强类):通过扩展输出上下文,提高推理质量,输入更丰富,推理更准确
      • 长上下文推理:使用更长的上下文 100K-1M
      • RAG:检索增强生成
      • ICL:零射、少射
        该分类包含传统的指令微调与监督学习,也涵盖了近年兴起的基于偏好/奖励的对齐训练以及在推理/部署阶段通过计算策略提升能力的做法(验证性推理链、检索增强、长上下文学习等)。

1.2 总结

类别 优势 局限性 可扩展性
SFT 实现简单、数据可控 依赖数据质量、泛化能力有限 中等(受数据获取限制)
RLxF 能对齐复杂偏好、自适应优化 训练不稳定、可能奖励欺骗 高(尤其自我反馈)
TTC 无需重复训练、灵活高效 推理成本高、受模型上限约束 高(可动态调节)

2 监督微调(SFT):指令与数据合成为核心的路线

工作机制:

  • 有监督学习将预训练模型调整为可遵从指令/完成特定任务的模型,常见做法包括使用人工标注指令——响应对(instruction-response datasets)或合成数据集进行微调。
  • 参数高效方案(PEFT: LoRA/QLoRA等)常与全参微调结合,用于在资源受限下快速部署指令化模型。根据之前实验,PEFT中LoRA方式使用较多。
  • 更多内容参考之前的微调专题

优缺点:

  • 优点:工程成熟、数据驱动、易并行化、能针对单一垂类任务快速提升效果。
  • 缺点:对高质量标注/合成数据依赖强;纯 SFT 在复杂偏好/价值观约束场景下可能不够稳健。

2.1 数据讨论?质量、数量、多样性

  1. 质量>数量:精选的小规模高质量数据集(1K-10K)可超越大规模低质量数据
  2. 边际收益递减:数据量超越临界点后,性能提升停滞甚至下降
  3. 多样性权衡:需在质量和多样性间寻找平衡,纯质量或纯多样性都不是最优

论文:

  • What makes good data for alignment? (DEITA) (ICLR 2024), arxiv.2312.15685
    • 只需要 6K 高质量自动筛选样本即可达到甚至超越 300K 样本训练的效果,数据减少 100 倍,性能不降反增
    • 见原论文 Figure 2
  • LIMA: Less is More for Alignment (from: META AI) arxiv.2305.11206
    • 关注数据质量的同时,也要关注数据的多样性
    • 对齐的扩展定律并不一定只受数据的影响,从而更取决于在高质量回答的前提下存在多样性。
    • 见原论文 Figure 5
      • 数据说明:WIKI HOW 有高质量的回复,但所有提示都是“如何”的问题
      • Unfiltered Stack Exchange:未经过筛选,包含多样化的提示和高质量的回答

2.2 模型选择?Base模型 v.s. Instruct模型 v.s. Chat模型选择

三者关系示意图:

  • Base模型(文本续写)–(指令微调)–> Instruct模型(遵循指令)–(对话优化)–> Chat模型(多轮对话)

  • Base泛化性能好,Instrcut执行能力强且精确,Chat交互自然且安全性高

  • Base不懂指令,输出混乱,Instruct不善于对话,Chat精确执行能力若

实际例子对比:

  • 输入:写一首关于春天的诗
    • Base模型(仅预训练):的方法有很多种…
    • Instruct模型(Base+SFT):直接开始写诗…
    • Chat模型(Instruct基础上,SFT+偏好对齐,如DPO/GRPO):您想要写什么诗?

选择建议:

  • 研究和定制化微调:Base模型
  • 明确的任务完成:Instruct模型
  • 交互式应用和住手:Chat模型

2.3 总结

LLM 的监督微调是一个技术选择资源约束的权衡过程:

  • 全参微调:资源充足、追求极致效果
  • PEFT方法:主流,Lora和Qlora性价比最高
  • 数据质量 > 数据数量
  • 模型选择:Base 研发,Instruct 做任务,Chat 做产品

2.4 快问快答

2.4.1 Q1:LoRA为什么推力时没有延迟

因为模型merge了,没有额外的矩阵运输

2.4.2 Q2:为什么PEFT不容易遗忘

因为 PEFT 冻结了大部分参数,而只微调了小部分参数,即使这些参数过拟合,原模型的通用能力也不受影响

2.4.3 PEFT何时不如全参微调

  • 任务与预训练差距过大:预训练完全没学过
  • 数据量非常充足(>50K):PEFT的参数量会形成瓶颈

2.4.4 如何评估微调效果?

见之前微调专题,三个维度:

  • 任务指标:F1 BLEU
  • 通用能力保留:如基于benchmark,MMLU这种,确保没有严重遗忘
  • 实际业务效果:A/B test, 用户反馈,badcase分析

建议建立完整体系,不能只看单一指标


3 简述对于直接偏好优化(DPO)的理解

在传统强化学习对齐方法(如 RLHF)中,我们需要一个显式的奖励模型(RM),它是一个独立训练的神经网络,用于给每个回答打分(例如0-1分),然后用这个分数作为强化学习的奖励信号。

而 DPO/KTO/SimPO 等方法的核心思想是——不训练奖励模型,直接利用语言模型自身的输出概率,通过数学变换“隐式地”构造出一个奖励函数。

  • DPO: Direct Preferenec Optimization
    • 用偏好对直接训练模型,不需要奖励模型,不需要 RL
  • KTO: Kahneman-Tversky Optimization
    • 在DPO框架上加入行为经济学地损失甲醛,让模型更关注错误、线性化损失
  • SIMPO: Simple Preference Optimization
    • 把 DPO 再简化,不再需要 reference model、不需要 log-ratio,让优化更稳健

4 DPO相关问题

4.1 DPO针对RLHF做了哪些改进

Direct Preference Optimization: Your Language Model is Secretly a Reward Model

DPO

  1. RLHF 算法包含奖励模型(reward model)和策略模型(Policy model,也称为演员模型,actor model),基于偏好数据以及强化学习不断迭代优化策略模型地过程

  2. DPO 算法不包含奖励模型和强化学习过程,直接通过偏好数据进行微调,将强化学习过程直接转化为 SFT 过程,因此整个训练过程简单、高效、主要的改进之处体现在于损失函数。

4.1.1 通过PPO进一步理解RLHF的过程

PPO

RLHF 常使用 PPO 作为基础算法,整体流程包含 4 个模型(Policy, Reference, Reward, Value, 具体图可以见 DeepseekMath那篇论文,之前的 PPO GRPO 笔记也有那张图),且通常训练过程中需要针对训练的 policy model 进行采样,因此训练起来,稳定性、效率、效果不易控制。

  • Policy Model(又称 Actor):输入一段上文,输出下一个 token 的概率分布,该模型需要训练,是我们最终得到的模型,输出下一个 token 即为 policy model 的行为

    • 演员模型,待训练的模型,通常是 SFT 训练后的模型作为初始化
  • Value Model(又称 Critic):用于预估当前模型回复的总收益。该总收益不仅局限于当前 token 的质量,还需要衡量当前 token 对后续文本生成的影响。该模型需要训练。

    • 作用是估计状态或状态动作对的长期价值,也称为状态值函数或动作值函数。
  • Reward Model:事先用偏好数据进行训练,用于对 Policy 模型的预测进行打分,评估模型对于当前输出的即时收益。

    • 用于提供每个状态或状态动作对的即时奖励信号。
  • Reference Model:与 Policy MOdel 相同,但在训练过程中不进行优化更新,用于维持模型在训练中的表现,防止在更新过程中出现过大偏差。

    • 参考模型,也是经 SFT 训练后的模型进行初始化,且通常与 actor 是一个模型,且模型冻结,不参与训练,其作用是在强化学习过程中,保障 actor 与 reference 的分布差异不宜过大。

DPO 算法仅包含 RLHF 中的两个模型,即 actor 和 reference,且训练过程中不需要进行数据采样

小结:DPO 的主要改进

  1. RLHF 算法包含奖励模型策略模型,基于偏好数据以及强化学习不断迭代优化策略模型的过程。

  2. DPO 算法不包含奖励模型和强化学习过程,直接通过偏好数据进行微调,将强化学习过程直接转换为 SFT 过程,因此整个训练过程简单、高效,主要的改进之处体现在于损失函数。

4.2 DPO中数据如何构造?

  • 偏好数据,可以表示为三元组(提示语 prompt,良好回答 chosen,一般回答 rejected)
  • https://huggingface.co/blog/pref-tunign
  • 数据内容:Intel/orca_dpo_pairs, HuggingFaceH4/ultrafeedback_binarized

4.3 DPO的损失函数是什么?

4.3.1 公式直观理解

L DPO ( π θ ; π ref ) = − E ( x , y w , y l ) ∼ D [ log ⁡ σ ( β log ⁡ π θ ( y w ∣ x ) π ref ( y w ∣ x ) − β log ⁡ π θ ( y l ∣ x ) π ref ( y l ∣ x ) ) ] \mathcal{L}_{\text{DPO}}(\pi_{\theta};\pi_{\text{ref}}) = -\mathbb{E}_{(x,y_w,y_l)\sim\mathcal{D}}\left[\log\sigma\left(\beta\log\frac{\pi_{\theta}(y_w|x)}{\pi_{\text{ref}}(y_w|x)}-\beta\log\frac{\pi_{\theta}(y_l|x)}{\pi_{\text{ref}}(y_l|x)}\right)\right] LDPO(πθ;πref)=E(x,yw,yl)D[logσ(βlogπref(ywx)πθ(ywx)βlogπref(ylx)πθ(ylx))]

其中:(参考文献:Direct Preference Optimization: Your Language Model is Secretly a Reward Model, page 4)

  • π θ \pi_\theta πθ:需要被优化的参数化策略,即模型本身
  • π ref \pi_{\text{ref}} πref:参考策略,通常是 SFT 后的模型
  • E ( x , y w , y l ) ∼ D \mathbb{E}_{(x,y_w,y_l)\sim\mathcal{D}} E(x,yw,yl)D:偏好数据集, x x x 为输入提示词
  • σ \sigma σ:sigmoid 激活函数
  • β \beta β:超参数,用于控制策略偏离参考策略的成都,实质上是控制 KL 散度的约束的强度
  • 前一个 log ⁡ \log log:偏好回复的隐式奖励
  • 后一个 log ⁡ \log log:非偏好回复的隐式奖励

4.3.2 公式解释

  • DPO 采用的是负对数似然损失。最小化这个损失函数,等价于最大化人类偏好数据集 D \mathcal{D} D 中观察到 y w y_w yw 优于 y l y_l yl 的概率 P ( y w ≻ y l ∣ x ) P(y_{w}\succ y_l|x) P(ywylx)

  • 核心优化目标:最小化 L DPO \mathcal{L}_{\text{DPO}} LDPO 需要最大化 log ⁡ σ ( ⋅ ) \log\sigma(\cdot) logσ() 这一项。由于 σ ( ⋅ ) \sigma(\cdot) σ() 是 Sigmoid 函数,输出范围是 ( 0 , 1 ) (0,1) (0,1),因此 log ⁡ σ ( ⋅ ) \log\sigma(\cdot) logσ() 总是负值,要使损失最小,必须使 log ⁡ σ ( ⋅ ) \log\sigma(\cdot) logσ() 的绝对值最小,即让 σ ( ⋅ ) \sigma(\cdot) σ() 尽可能接近 1 1 1

4.3.2.1 Sigmoid 函数的输入:隐式奖励差

Sigmoid 函数 σ \sigma σ 的输入项 S S S 是关键:

S = β log ⁡ π θ ( y w ∣ x ) π ref ( y w ∣ x ) − β log ⁡ π θ ( y l ∣ x ) π ref ( y l ∣ x ) S = \beta\log\frac{\pi_{\theta}(y_w|x)}{\pi_{\text{ref}}(y_w|x)}-\beta\log\frac{\pi_{\theta}(y_l|x)}{\pi_{\text{ref}}(y_l|x)} S=βlogπref(ywx)πθ(ywx)βlogπref(ylx)πθ(ylx)

这个输入 S S S 实际上代表了偏好回答 y w y_w yw 和 非偏好回答 y l y_l yl 之间隐式奖励差。

等价地,可写为:

S = r ^ θ ( x , y w ) − r ^ θ ( x , y l ) S = \hat r_\theta(x, y_w) - \hat r_{\theta}(x, y_l) S=r^θ(x,yw)r^θ(x,yl)

其中, r ^ θ ( x , y ) = β log ⁡ π θ π ref \hat r_{\theta}(x, y)=\beta\log\frac{\pi_\theta}{\pi_{\text{ref}}} r^θ(x,y)=βlogπrefπθ 就是 DPO 中隐式定义的奖励函数。

4.3.2.2 最小化过程

要将损失 L DPO \mathcal{L}_{\text{DPO}} LDPO 最小化(即让 σ ( S ) \sigma(S) σ(S) 趋近于 1),模型 π θ \pi_\theta πθ 必须被调整,使得奖励差 S S S 趋近于一个足够大的正值。

  • S S S 是较大的正数时:表示 y w y_w yw 的隐式奖励远高于 y l y_l yl,此时:
    • σ ( S ) ≈ 1 , log ⁡ σ ( S ) ≈ 0 \sigma(S)\approx 1, \log\sigma(S)\approx 0 σ(S)1,logσ(S)0
    • 损失 L DPO \mathcal{L}_{\text{DPO}} LDPO 接近 0,模型对当前的偏好对预测已正确,无需大幅更新
  • S S S 是负数或接近 0 时,表示模型错误地认为 y l y_l yl 地奖励更高,或两者奖励接近,此时:
    • σ ( S ) \sigma(S) σ(S) 较小, log ⁡ σ ( S ) \log\sigma(S) logσ(S) 是较大的负数
    • 导致 L DPO \mathcal{L}_{\text{DPO}} LDPO 变大,产生较大的梯度,驱使模型更新参数
    • 提升 y w y_{w} yw 的相对概率,降低 y l y_l yl 的相对概率。

直观理解:就是使得偏好对的奖励差异尽可能地大

4.3.3 公式中超参数 β \beta β 的作用?

β \beta β 控制 KL 散度约束的强度

  • β \beta β 大:强约束,模型不能偏离 π ref \pi_{\text{ref}} πref 太远
    • 优点:训练稳定,保持原有能力
    • 缺点:可能学不到足够的偏好信息
  • β \beta β 小:弱约束,允许更大的变化
    • 优点:能更好地满足人类偏好
    • 缺点:可能以往原有知识,模式崩溃
  • 论文实际使用 β = 0.1 \beta=0.1 β=0.1 (默认) 和 0.5 0.5 0.5 (TL;DR摘要任务)

4.3.4 总结

DPO 损失函数地精妙之处在于:

  1. 隐式奖励建模:通过策略比值编码奖励
  2. 二元分类形式:简单的交叉熵损失
  3. 无需采样:直接计算,不需要 RL 采样

4.4 DPO 的微调流程是怎么样的?

4.4.1 微调流程

  • 上图展示了 DPO 微调的大致流程,其中 Trained LM 即为策略模型,Frozen LM 即为参考模型,二者均是先进行 SFT 微调得到的模型进行初始化,其中 Trained LM 需要进行训练,Frozen LM 不参与训练。

  • 两个模型分别针对 chosen 和 rejected 进行预测获取对应的得分,再通过 DPO 的损失函数进行损失计算,进而不断的迭代优化。

4.4.2 DPO 的缺点

  • 由 loss 函数可知,其知识增加了 chosen 和 rejected 之间的差值,但是并未对其本身打分做 loss,可能会导致 chosen 和 rejected 都很小甚至是负数,但是他们的差距很大

  • 由于 chosen 的结果一般都比 rejected 的结果更长,所以经过 DPO 之后,可能会导致输出某些情况下的结果更长,不准确和重复的问题。

4.4.3 DPO 总结

  1. 将经过 SFT 后的模型本身作为奖励模型,但是参数不更新;

  2. policy 模型也是本身,但是参数更新;

  3. 然后经过下面的 loss 函数去更新 policy 模型:

L DPO ( π θ ; π ref ) = − E ( x , y w , y l ) ∼ D [ log ⁡ σ ( β log ⁡ π θ ( y w ∣ x ) π ref ( y w ∣ x ) − β log ⁡ π θ ( y l ∣ x ) π ref ( y l ∣ x ) ) ] \mathcal{L}_{\text{DPO}}(\pi_\theta;\pi_{\text{ref}}) = -\mathbb{E}_{(x,y_w,y_l)\sim\mathcal{D}}\left[\log\sigma\left(\beta\log\frac{\pi_{\theta}(y_w|x)}{\pi_{\text{ref}}(y_w|x)}-\beta\log\frac{\pi_{\theta}(y_l|x)}{\pi_{\text{ref}}(y_l|x)}\right)\right] LDPO(πθ;πref)=E(x,yw,yl)D[logσ(βlogπref(ywx)πθ(ywx)βlogπref(ylx)πθ(ylx))]


5 KTO 相关问题

5.1 什么是 KTO

KTO 全称为Kahneman-Tversky Optimization(卡尼曼——特沃斯基优化),是一种基于行为经济学前景理论的 LLM 对齐技术。由斯坦福大学等机构的研究人员在 2024 年提出,论文已被 ICML 2024 接收。

KTO 的命名源自诺贝尔经济学奖得主丹尼尔·卡尼曼阿莫斯·特沃斯基的前景理论,该理论揭示了人类在面对不确定事件时的决策偏差,尤其是损失厌恶(Loss Aversion)的心理特征。

5.1.2 KTO 训练的基本流程

KTO

  1. 起点:SFT

    • 从基础神经网络开始,通过 SFT 得到参考模型 π ref \pi_{\text{ref}} πref
  2. 传统路径的挑战:

    • RLHF:一般需要多个模型;且需要hard-to-get(难以获取的)数据, A → B , C → B A\rightarrow B,C\rightarrow B AB,CB这种成对比较数据;
    • DPO:简化模型;同样需要成对的偏好数据;

问题:需要人类标注者对两个回答进行比较,耗时耗力

  1. 创新突破:KTO
    • 只需要二元反馈:好 / 不好;
    • 数据需求革新:有 abundant(丰富的) 数据可以使用;A、B、C 等独立样本,不需要成对比较;
    • 理论基础:基于 Kahneman-Tversky 的前景理论(Prospect Theory),即考虑人类对损失和收益的不对称感知

5.1.3 KTO 的核心优势

与传统的对齐方法(PPO, DPO)相比,KTO 的最大创新在于:只需要二元标签数据(好/坏),而不需要成对的偏好数据(A 优于 B)

特别适合那些希望利用自然用户反馈(而非专业标注)来改进模型的应用场景。

特性 PPO DPO KTO
数据需求 prompt, response, reward 分数 prompt, chosen, rejected 回答 prompt, response, 好坏标签
训练复杂度 极高(需要多个模型) 中等(需要偏好对) 低(仅需二元标签)
数据收集成本 中等 极低
主要优点 理论成熟 简单稳定 数据门槛最低,可利用大量现有反馈数据

5.2 关于 KTO 中的数据问题

在 KTO 中,其数据格式的核心特点是不再依赖成对的偏好数据,而是使用二进制信号(desireable / undesirable)

5.2.1 核心数据格式:二进制反馈

与 DPO 等方法需要A比B好的偏好对 ( x , y w , y l ) (x,y_w,y_l) (x,yw,yl)不同,KTO 只需要一个输出是还是不好

数据集中,KTO_TAG 一般为 True / False

5.2.2 数据配比的灵活性

KTO 对数据格式的要求非常宽松,尤其体现在处理不平衡数据的能力上:

  • 无需 1:1 配比:DPO要求正负样本成对出现,严格为 1:1

  • 支持极度不平衡数据:即使数据中正负样本比例严重失调(例如期望样本和非期望样本的比例为 1:10),KTO 也能通过调整超参数 λ D \lambda_D λD λ U \lambda_U λU 来正常训练,且性能依然能匹配在平衡数据上训练的 DPO

    • λ D \lambda_D λD:对正样本的损失权重
    • λ U \lambda_U λU:对负样本的损失权重
  • 推荐的权重比例:
    λ D × n D λ U × n U ∈ [ 1 , 3 2 ] \frac{\lambda_D\times n_D}{\lambda_U\times n_U}\in[1,\frac32] λU×nUλD×nD[1,23]

其中 n ⋅ n_\cdot n 表示正负样本的数量

具体操作逻辑:

  • 固定一端,调整另一端:比如通常固定 λ U = 1 \lambda_U=1 λU=1,然后根据样本比例调整 λ D \lambda_D λD
  • 这种公式设计的直觉在于,让模型对于正负样本具有不同的敏感性,原论文指出这种设计是能够保证在不均衡数据集上的训练效果的。

具体 CODE 可以参考 TRL 源码

  • trl/experimental/kto/kto_trainer.py
  • trl/examples/scripts/kto.py

5.3 KTO 的损失函数是什么?

KTO 的默认损失函数定义为针对单个样本 ( x , y ) (x,y) (x,y)的期望值:

L KTO ( π θ , π ref ) = E x , y ∼ D [ λ y − v ( x , y ) ] L_{\text{KTO}}(\pi_\theta,\pi_{\text{ref}})=\mathbb{E}_{x,y\sim D}[\lambda_y-v(x,y)] LKTO(πθ,πref)=Ex,yD[λyv(x,y)]

其中:

  • λ y \lambda_y λy:当 y y y是期望输出时取 λ D \lambda_D λD,非期望输出时取 λ U \lambda_U λU
  • v ( x , y ) v(x,y) v(x,y)时价值函数,它根据样本是期望的还是非期望的分为两种情况:
    • y y y是期望输出时: v ( x , y ) = λ D σ ( β ( r θ ( x , y ) − z 0 ) ) v(x,y)=\lambda_D\sigma(\beta(r_\theta(x,y)-z_0)) v(x,y)=λDσ(β(rθ(x,y)z0))
    • y y y是非期望输出时: v ( x , y ) = λ U σ ( β ( z 0 − r θ ( x , y ) ) ) v(x,y)=\lambda_U\sigma(\beta(z_0-r_\theta(x,y))) v(x,y)=λUσ(β(z0rθ(x,y)))

为了方便理解,可以将公式拆解为以下几个关键概念:

  • 隐式奖励 r θ ( x , y ) r_\theta(x,y) rθ(x,y):计算方式为 log ⁡ π t h e t a ( y ∣ x ) π ref ( y ∣ x ) \log\frac{\pi_theta(y|x)}{\pi_{\text{ref}}(y|x)} logπref(yx)πtheta(yx),代表了当前模型 π θ \pi_\theta πθ相对于参考模型 π ref \pi_{\text{ref}} πref在该样本上的进步成都。
  • 参考点 z 0 z_0 z0:这是 KTO 的灵魂。前景理论认为人类是根据参考点来感知得失的,在 KTO 中, z 0 z_0 z0被定义为模型与参考模型之间的 KL 散度估计值。
    • 在minibatch通过错位匹配(mismatched pairs)来估算,这样可以获得更具代表性的参考点,避免使用样本本身带来的偏差。
  • 非对称权重 λ D , λ U \lambda_D,\lambda_U λD,λU:这两个参数用于控制模型对收益何损失的敏感度。通过调整这两个值,KTO可以处理数据不平衡问题。
  • 参数 β \beta β:用于控制风险厌恶(Rist aversion)程度。 β \beta β越大,价值函数越快达到饱和,意味着模型对偏离参考模型的行为更加谨慎。

5.3.1 什么是错位匹配?

  • 在KTO的实际训练中,程序会选取一个minibatch,假设大小为 m m m,包含样本对 { ( x 1 , y 1 ) , . . . , ( x m , y m ) } \{(x_1,y_1),...,(x_m,y_m)\} {(x1,y1),...,(xm,ym)}

  • 所谓的错位匹配,是指在计算参考点时,并不计算当前输入 x i x_i xi与其对应标签 y i y_i yi的奖励,而是将当前输入 x i x_i xi与minibatch中另一个样本的输出 y j y_j yj(例如 j = i + 1 j=i+1 j=i+1)强行配对

  • 计算公式为:

z ^ = max ⁡ ( 0 , 1 m ∑ i = 1 m log ⁡ π θ ( y j ∣ x i ) π ref ( y j ∣ x i ) ) \hat z=\max\left(0,\frac1m\sum_{i=1}^m\log\frac{\pi_\theta(y_j|x_i)}{\pi_{\text{ref}}(y_j|x_i)}\right) z^=max(0,m1i=1mlogπref(yjxi)πθ(yjxi))

5.3.1.1 为什么要避开样本本身?

根据KTO的论文指出,直接使用训练集中的原配对样本 ( x i , y i ) (x_i,y_i) (xi,yi)来计算 z 0 z_0 z0会带来巨大的统计偏差:

  • 标签的极端性:训练数据中的输出 y i y_i yi通常时经过人工或模型筛选的,它们要么时极其优秀的回答(期望的),要么时存在明显错误的回答(非期望的)
  • 不具有代表性的奖励值:由于这些 y i y_i yi具有典型的正负倾向,计算出的隐式奖励往往是极端的。
  • 偏差后果:如果用这些极端的奖励值去平均,得出的 z 0 z_0 z0参考点将不再代表模型的平均表现,而会向极端值偏移(其实就是方差太大了),从而导致模型无法正确判定什么是真正的收益或损失。
5.3.1.2 为什么错位匹配更具有代表性?
  • 摒弃暴露分布:通过将 x i x_i xi y j y_j yj错配,计算出的奖励值更能反映模型在处理随机、非针对性输入时的基础偏好水平,这更接近定义上的 KL 散度 K L ( π θ ∣ π r e f ) KL(\pi_\theta|\pi_{ref}) KL(πθπref),即整个模型的分布偏移量。

  • 模拟可用性启发法:KTO论文指出,这种做法在心理上是合理的,人类在判断一个事物的概率或价值时,往往会受到近期接触到的信息的影响,即使这些信息与当前任务并不直接相关。在minibatch内进行错位匹配,模拟人类近期记忆(整个批次的反馈)建立预期基准的过程

5.3.2 KTO中,通过损失函数优化的过程

损失总是越小越好。

训练过程通过调整损失值,相对于参考模型(ref_model),提高被标注为 desirable 的回答的概率,压低被标注为 undesirable 的概率。

整个调优过程中,loss 并不是衡量预测误差,而是一个基于对数概率比的偏好约束函数。它直接决定了梯度更新的而方向。

  • 好样本:梯度推动模型倾向于生成该回答
  • 坏样本:梯度推动模型倾向于远离该行为

同时通过参考点以及KL约束,比卖你模型偏离原始能力太远。

总结:KTO的loss本质上时一个带符号的对数概率比约束,它通过最小化损失,让模型在保持接近ref_model的前提下,系统性地增加人类偏好的行为,减少人类不偏好的行为。


5.4 KTO 算法的优缺点

5.4.1 KTO 的主要优点

  1. 标注成本低:只需要对单一输出进行二元标注,比需要配对偏好数据的数据量少得多,标注更快更便宜
  2. 数据效率高:无需严格配对,可用常规标注或弱监督数据直接训练
  3. 计算简单:相比DPO等配对方法,在训练时计算较轻(减少交叉对比概率计算),训练速度常更快。
  4. 对不平衡数据更鲁棒:对好样本稀少的场景,损失厌恶机制有助于模型减少不可取输出。
  5. 适用资源有限场景:特别适合预算紧张,数据稀缺,快速迭代调优的场景

减少交叉对比概率计算的说明:KTO不再像DPO那样在同一个prompt下对多个候选输出进行成对log-prob差分何reference的对比,而是将偏好信号直接作用在单个样本的对数概率上,从而显著减低forward次数,显存占用和训练复杂度

5.4.2 KTO 的潜在缺点

  1. 捕捉偏好粗糙:只能区分二元层次的好坏,无法捕捉细粒度偏好细节
  2. 依赖标签质量:标签噪声会显著影响优化小郭,因为模型学习的只是总体可取性,而非精细偏好
  3. 损失函数中的权重 λ \lambda λ,阈值等超参数设定对训练稳定性与效果敏感
  4. 对基础能力提升有限:如果训练数据本身事实准确性不高,模型可能会学习错误模式

5.4.3 什么情况下选择 KTO 而非 DPO?

优先使用 KTO 的场景:

  1. 数据格式限制:只有二元标注,无法获取配对偏好数据
  2. 数据质量问题:
    • 数据中存在高噪声数据
    • 标注者偏好有传递性违反(A>B, B>C, 但C>A)
    • 正负样本极不均衡(KTO可容忍90%正样本缺失)
  3. 训练流程简化:
    • 无法或不想先做SFT(KTO可单独使用)
    • 避免DPO不做SFT时的幻觉对话问题

优先使用DPO的场景:

  1. 数据噪声低且传递性好
  2. 已有高质量的配对偏好数据

经验规则:实际公开数据集多为噪声大,KTO通常匹配或超越DPO表现


6 SimPO 相关问题

6.1 介绍一下什么是 SimPO

6.1.1 SimPO 提出解决的问题

SimPO 是一种轻量化的人类偏好优化算法,由普林斯顿大学研究团队提出,它是对传统 DPO 算法的改进

传统 RLHF 流程存在以下问题:

  • 训练复杂:需要额外的 Reward Model
  • 超参敏感:PPO 调优难度大
  • 不稳定:训练可能出现 reward hacking 或 训练崩溃

尽管 DPO 极大简化了 RLHF 流程 但仍存在两个核心问题:

  • 参考模型依赖性:需维护一个冻结的参考模型(SFT Checkpoint),导致:
    • 存储开销增加(需要保留两个模型);
    • 若 SFT 模型质量较差,会限制 DPO 上限(garbage in, garbage out)
    • 多阶段训练耦合性强,不利于迭代
  • 缺乏显式质量控制,DPO 仅要求 log ⁡ π θ ( y w ) > log ⁡ π θ ( y l ) \log\pi_{\theta}(y_w)>\log\pi_{\theta}(y_l) logπθ(yw)>logπθ(yl),但不约束差距大小,可能导致模型勉强选对,而非显著更好

SimPO 的设计动机正是为了解决上述两点:

  • 通过消去 π r e f \pi_{ref} πref,实现单模型端到端优化
  • 引入 γ > 0 \gamma>0 γ>0,强制拉开正负样本的 log-prob 差距,提升生成结果的绝对质量

SimPO 旨在简化偏好优化流程,直接基于模型输出的概率进行偏好对齐,无需训练独立奖励模型

6.1.2 SimPO 的 loss 函数

DPO的损失:

L DPO ( π θ ; π ref ) = − E ( x , y w , y l ) ∼ D [ log ⁡ σ ( β log ⁡ π θ ( y w ∣ x ) π ref ( y w ∣ x ) − β log ⁡ π θ ( y l ∣ x ) π ref ( y l ∣ x ) ) ] \mathcal{L}_{\text{DPO}}(\pi_{\theta};\pi_{\text{ref}}) = -\mathbb{E}_{(x,y_w,y_l)\sim\mathcal{D}}\left[\log\sigma\left(\beta\log\frac{\pi_{\theta}(y_w|x)}{\pi_{\text{ref}}(y_w|x)}-\beta\log\frac{\pi_{\theta}(y_l|x)}{\pi_{\text{ref}}(y_l|x)}\right)\right] LDPO(πθ;πref)=E(x,yw,yl)D[logσ(βlogπref(ywx)πθ(ywx)βlogπref(ylx)πθ(ylx))]

SimPO 的损失(paper p.4):

KaTeX parse error: Expected '\right', got '}' at position 164: …{\theta}(y_w|x)}̲-\frac{\beta}{|…

注意这两个 β \beta β是不一样的,这个DPO各个参数的说明上面有写,SimPO中的 β \beta β用于控制经过长度归一化后的平均对数概率。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐