当前位置: 首页 > news >正文

DPO 与 KTO 的区别

文章目录

DPO 和 KTO 都是基于人类偏好的大语言模型对齐方法,但它们在理论基础、优化目标和应用场景上有显著区别。以下是结构化对比:

1. 核心思想对比

维度DPOKTO
理论来源基于Bradley–Terry偏好模型基于行为经济学的前景理论(Prospect Theory)
优化目标直接最大化偏好数据似然建模人类对“收益/损失”的非对称心理反应
数据要求需要成对偏好数据(chosen/rejected)支持单样本反馈(无需严格配对)

2. 数学形式对比

DPO目标函数:

L D P O = − E [ log ⁡ σ ( β log ⁡ π θ ( y w ∣ x ) π r e f ( y w ∣ x ) − β log ⁡ π θ ( y l ∣ x ) π r e f ( y l ∣ x ) ) ] \mathcal{L}_{DPO} = -\mathbb{E} \left[ \log \sigma(\beta \log \frac{\pi_\theta(y_w|x)}{\pi_{ref}(y_w|x)} - \beta \log \frac{\pi_\theta(y_l|x)}{\pi_{ref}(y_l|x)}) \right] LDPO=E[logσ(βlogπref(ywx)πθ(ywx)βlogπref(ylx)πθ(ylx))]

  • 通过参考模型 π r e f \pi_{ref} πref 约束策略 π θ \pi_\theta πθ,隐式避免奖励函数显式建模

KTO 目标函数:

KTO 目标函数:
L K T O = E [ λ ⋅ ReLU ( V ( x , y ) − τ ) − ReLU ( τ − V ( x , y ) ) ] \mathcal{L}_{KTO} = \mathbb{E} \left[ \lambda \cdot \text{ReLU}(V(x, y) - \tau) - \text{ReLU}(\tau - V(x, y)) \right] LKTO=E[λReLU(V(x,y)τ)ReLU(τV(x,y))]

  • 引入价值函数 V ( x , y ) V(x,y) V(x,y) 和阈值 τ \tau τ,对“好于阈值”和“差于阈值”的样本非对称惩罚
  • 直接建模人类对损失的厌恶(loss aversion 系数 λ \lambda λ 通常>1)

价值函数 V 的构建方法

1. 价值函数 V ( x , y ) V(x, y) V(x,y) 的核心作用
  • 行为经济学基础:模拟人类决策中的非理性特征(如损失厌恶、风险偏好)
  • 技术目标:量化模型输出 ( y ) 相对于输入 ( x ) 的“主观价值”(非传统意义上的概率或奖励)
2. 典型构建方法
(1) 基于LLM隐含概率的构建
def compute_V(x, y, model, tokenizer):# 计算对数概率得分logits = model(x, labels=y).logitslog_probs = torch.log_softmax(logits, dim=-1)y_tokens = tokenizer(y, return_tensors="pt").input_idstoken_log_probs = log_probs.gather(-1, y_tokens.unsqueeze(-1)).squeeze()return token_log_probs.mean().item()  # 平均token概率作为价值
  • 原理:用语言模型本身对生成内容 y 的似然概率作为价值代理
  • 优点:无需额外训练,与模型能力强相关
  • 改进方向:加入长度归一化或对比样本校准
(2) 基于奖励模型的构建(更接近原始论文方案)

V ( x , y ) = R ϕ ( x , y ) − E y ′ ∼ π r e f [ R ϕ ( x , y ′ ) ] V(x, y) = R_\phi(x, y) - \mathbb{E}_{y' \sim \pi_{ref}}[R_\phi(x, y')] V(x,y)=Rϕ(x,y)Eyπref[Rϕ(x,y)]

  • 实现步骤

    1. 预训练奖励模型 R ϕ R_\phi Rϕ(如用Pairwise Ranking Loss)
    2. 计算相对于参考策略 π r e f \pi_{ref} πref 的偏移量(去偏置)
    3. 加入方差归一化项(可选): V ( x , y ) σ ( R ϕ ) \frac{V(x, y)}{\sigma(R_\phi)} σ(Rϕ)V(x,y)
  • 参考代码

# 在KTO实现中可能这样使用:
y_tokens = tokenizer("好的,我明白了", return_tensors="pt").input_ids
v_xy = token_log_probs.mean()  # 计算V(x,y)# 计算KTO loss
loss = lambda_ * torch.relu(v_xy - tau) - torch.relu(tau - v_xy)
(3) 混合构建方案

V ( x , y ) = α ⋅ P L M ( y ∣ x ) + ( 1 − α ) ⋅ R t a s k ( x , y ) V(x, y) = \alpha \cdot P_{LM}(y|x) + (1 - \alpha) \cdot R_{task}(x, y) V(x,y)=αPLM(yx)+(1α)Rtask(x,y)

  • 应用场景:需要平衡生成流畅度(第一项)和任务指标(第二项)时
  • 超参数 α \alpha α 通常通过验证集网格搜索确定

1. 符号含义

符号含义计算方式典型值范围
P L M ( y ∣ x ) P_{LM}(y \mid x) PLM(yx)语言模型生成概率对生成序列 y y y 的 token 概率乘积或平均[0,1]
R t a s k ( x , y ) R_{task}(x, y) Rtask(x,y)任务特定奖励根据业务需求定制(如BLEU/ROUGE/业务指标)可缩放至与 P L M P_{LM} PLM 同量纲
α \alpha α平衡系数网格搜索确定0.3~0.7

2. 物理意义

  • 第一项:语言模型对输出 y y y 的“自信程度”,保障生成流畅性

    • 示例:P(“天气真好”) > P(“天汽针好”) (后者可能为错别字)
  • 第二项:业务场景的专项优化目标

    • 示例:客服场景中“问题解决率”、文案生成中“点击率预测”
  • α \alpha α 作用:控制“保守派”与“改革派”的博弈

    • α → 1 \alpha \rightarrow 1 α1:倾向安全但平庸的输出
    • α → 0 \alpha \rightarrow 0 α0:追求业务指标但可能牺牲流畅度
3. 阈值 τ \tau τ 的设定方法
方法计算公式适用场景
数据分位数法 τ = quantile ( { V ( x , y ) } , q = 0.7 ) \tau = \text{quantile}(\{V(x, y)\}, q = 0.7) τ=quantile({V(x,y)},q=0.7)小规模数据
动态调整法 τ t = τ t − 1 + η ⋅ ( V ˉ − τ t − 1 ) \tau_t = \tau_{t-1} + \eta \cdot (\bar{V} - \tau_{t-1}) τt=τt1+η(Vˉτt1)在线学习环境
任务驱动法设定为任务指标阈值(如BLEU≥4)有明确质量标准的场景

3. 应用特性对比

特性DPOKTO
数据效率需要高质量成对数据支持非配对数据,适合弱监督场景
训练稳定性依赖参考模型质量对噪声数据更鲁棒
适用任务精细偏好对齐(如风格控制)风险敏感场景(如金融/医疗回复)
计算开销需维护参考模型无需参考模型,计算更轻量
http://www.xdnf.cn/news/215389.html

相关文章:

  • 【XR空间传送】深入理解Unity中 XR Interaction Toolkit 的 MatchOrientation 用法与使用场景(空间传送、视角切换)
  • Leetcode 3528. Unit Conversion I
  • AI艺术创作:Midjourney、Stable Diffusion与商业变现
  • 异步机制与 CPU 的关系解析
  • Sql刷题日志(day7)
  • Html1
  • 无人设备遥控器之移动手持定位系统篇
  • Chrome的插件扩展程序安装目录是什么?在哪个文件夹?
  • 40 python http介绍
  • LeetCode 2962.统计最大元素出现至少 K 次的子数组:滑动窗口
  • Leetcode 3534. Path Existence Queries in a Graph II
  • yum 安装 ncurses-devel 报错 baseurl 的解决方法
  • SpringCloud学习笔记
  • 焊接与热切割作业精选判断真题及答案
  • 模拟集成电路设计与仿真 : Feedback System
  • 甲骨文云2025深度解析:AI驱动的云原生生态与全球化突围
  • 端到端电力电子建模、仿真与控制及AI推理
  • AimRT 从零到一:官方示例精讲 —— 三、Executor示例.md
  • 爬虫学习笔记(四)---request入门
  • Keras模型保存、加载介绍
  • 技术驱动与模式创新:开源AI大模型与S2B2C商城重构零售生态
  • 在 MySQL 中建索引时需要注意哪些事项?
  • 使用Spring Boot实现WebSocket广播
  • 二叉树左叶子之和(后序遍历,递归求和)
  • VScode与远端服务器SSH链接
  • NS-SWIFT微调Qwen3
  • Electron Forge【实战】桌面应用 —— 将项目配置保存到本地
  • 【含文档+PPT+源码】基于微信小程序的乡村振兴民宿管理系统
  • BLE技术,如何高效赋能IoT短距无线通信?
  • 【展位预告】正也科技将携营销精细化管理解决方案出席中睿营销论坛