AB
AiBoss
Wiki

什么是卡尼曼-特沃斯基优化(Kahneman-Tversky Optimization)?一种只依赖二元好坏信号的对齐损失

卡尼曼-特沃斯基优化(KTO)是论文《KTO: Model Alignment as Prospect Theoretic Optimization》提出的一种大语言模型对齐目标。它借用前景理论中的人类效用模型,直接最大化生成结果的效用,而不去最大化偏好的对数似然;训练时只需要「这条输出对给定输入是否可取」的二元信号,不需要成对偏好数据。

卡尼曼-特沃斯基优化(Kahneman-Tversky Optimization,KTO)是一种用于大语言模型与人类反馈对齐的训练目标,由论文《KTO: Model Alignment as Prospect Theoretic Optimization》提出。按该论文的说法,它用卡尼曼与特沃斯基的前景理论(prospect theory)所描述的人类效用函数来构造损失,直接最大化生成结果的效用,而不是像此前的偏好类方法那样最大化偏好的对数似然。它要解决的问题是:偏好数据稀缺且昂贵,而 KTO 只需要一个二元信号——某条输出对某个输入是可取的还是不可取的。

为什么重要

在 KTO 出现之前,把语言模型对齐到人类反馈的主流做法依赖成对偏好数据:给定同一个输入,标注者或评审模型指出两条候选回答中哪一条更好,训练目标再据此提高被偏好回答的相对概率。论文把这类目标(例如 DPO)与交叉熵最小化作对比,指出它们之所以优于单纯的交叉熵,部分原因在于它们属于作者所称的「人类感知损失」(human-aware losses,HALOs)家族——这些损失函数隐含地嵌入了人类感知随机变量时的若干偏差。

但论文同时指出,这些方法所归属的人类效用函数,与前景理论文献中的效用函数仍有差别。另一方面,成对偏好数据的采集成本高、可得性有限,在很多真实场景里难以规模化。Hugging Face 的 TRL 文档在介绍 KTO 时也强调,KTO 不需要偏好,只需要一个二元信号来判断输出对给定输入是否可取,这使它在偏好数据稀缺、昂贵的现实环境中更易使用。换句话说,KTO 的动机有两层:一是让对齐目标更贴近前景理论所刻画的人类效用,二是把训练数据的门槛从「成对比较」降到「单条判断」。

工作机制

按论文与 TRL 文档的描述,KTO 的核心做法可以拆成以下几点:

  • 以人类感知损失为框架。论文把 DPO 一类对齐目标归入 HALOs 家族,认为它们的成功部分来自隐含的人类偏差建模。KTO 是在这一框架下提出的一个新成员,但它改用前景理论中的人类效用模型,而不是沿用既有方法所隐含的效用假设。
  • 最大化效用而非对数似然。论文明确写道,KTO 直接最大化生成结果的效用,而当前方法做的是最大化偏好的对数似然。这是它与偏好类目标在优化对象上的根本区别。
  • 只吃二元信号。训练数据不需要「A 比 B 好」这样的成对比较,只需要标注某条输出对某个输入是可取的(desirable)还是不可取的(undesirable)。TRL 文档把这一点列为 KTO 的关键特性。
  • 损失函数的选择取决于场景。论文在更广的层面上提出,不存在一个普遍更优的 HALO;最佳损失取决于对给定场景最合适的归纳偏置(inductive biases),而这一点常被忽视。因此 KTO 被定位为一种可选目标,而非对所有任务的统一替代。

在工程实现上,Hugging Face 的 TRL 库提供了 KTO 训练器(KTOTrainer)与配套配置(KTOConfig),文档给出的快速开始脚本从 Hub 加载基座模型与数据集,构造训练器后调用训练接口;文档示例使用 Qwen 0.5B 模型与 KTO Mix 14k 数据集,并说明在 8 张 H100 上分布式训练约需 30 分钟。文档还注明,该后训练方法由 Kashif Rasul、Younes Belkada、Lewis Tunstall、Pablo Vicente 贡献,后由 Albert Villanova del Moral 重构,官方代码位于 ContextualAI/HALOs。

典型例子

素材中出现的具体用法与系统包括:

  • 论文本身的实验范围。论文称,在 1B 到 30B 的规模上,KTO 的性能匹配或超过基于偏好的方法,尽管它只从「输出是否可取」的二元信号中学习。这是论文作者报告的结果,属于该论文的主张,而非独立复现的结论。
  • TRL 的 KTOTrainer。Hugging Face 官方文档给出了一段可直接运行的训练脚本:用 transformers 加载 Qwen/Qwen2-0.5B-Instruct 模型与分词器,用 datasets 加载 trl-lib/kto-mix-14k 数据集的 train 切分,以 KTOConfig 指定输出目录,再交给 KTOTrainer 训练,最后用 accelerate launch 启动。
  • KTO Mix 14k 数据集。文档示例所用的偏好数据来自该数据集,文档说明可在数据集页面查看其内容。
  • ContextualAI/HALOs 代码库。文档指出 KTO 的官方代码位于该仓库,供需要阅读原始实现的使用者参考。

边界与常见误解

首先,KTO 不等于「不需要反馈」。它降低的是反馈的形态要求——从成对偏好降为单条可取/不可取判断,但每条训练样本仍需被标注或判定为可取或不可取,标注质量依然直接影响结果。

其次,不应把 KTO 理解为普遍优于偏好类方法。论文自己的表述是「匹配或超过」基于偏好的方法,并进一步指出不存在普遍更优的 HALO,最佳损失取决于具体场景的归纳偏置。把 KTO 当成默认首选,与该论文的结论并不一致。

第三,KTO 的理论出发点是对人类效用的前景理论建模,这属于论文提出的建模选择;它是否在某个具体任务上带来更好的人类偏好一致性,需要按该任务的数据与评测来判断,不能由「借用了前景理论」这一事实直接推出。

第四,工程侧存在版本与依赖代价。TRL 文档说明当前查看的是 main 版本,需要从源码安装;若要常规 pip 安装,应查看对应的稳定版本。文档示例中的训练时长(8 张 H100 约 30 分钟)是在特定模型、特定数据集与特定硬件配置下给出的,不能外推到其他规模或数据。

最后,KTO 属于训练与对齐阶段的目标函数,它改变的是训练信号与损失形式,并不改变基座模型的能力边界,也不替代数据筛选、评测与安全审查等环节。

参考资料