跳到主内容
快讯直播
AI智模界
AI 词典

KTO:只告诉模型这条好、这条坏

一句话定义:KTO(Kahneman-Tversky Optimization,卡尼曼-特沃斯基优化)是一种大模型对齐方法,它不需要"从两个回答里挑更好的那个",只要给每条回答贴一个"好"或"坏"的标签,就能把模型调得更符合人类偏好。

它是怎么想的

主流的对齐做法(RLHF、DPO)都依赖成对偏好数据:同一个问题下必须有两个回答,再由人评出谁更好。现实中这种数据很贵——标注员要同时写出 A、B 两份答案再比较。

KTO 换了个思路,把行为经济学里的前景理论(Prospect Theory)搬了进来。卡尼曼和特沃斯基发现,人对得失的感受是不对称的:丢掉 100 块钱的痛苦,通常大于捡到 100 块钱的快乐;而且感受是相对某个"参照点"的,不是看绝对数值。

映射到训练上有两点:

一是参照点。模型相对参考模型(通常是 SFT 之后的版本)偏离了多少,用 KL 散度衡量,偏离太远并不划算。

二是损失厌恶。一条好回答带来"收益",一条坏回答带来"损失",而损失的权重被刻意调高——有一个可调的损失厌恶系数,通常大于 1。

打个比方:驾校教练带学员。DPO 是让学员一次交两份卷子,教练说"A 比 B 好";KTO 是教练每次只看一份卷子,直接打勾或打叉。而且教练骂"闯红灯"的力度,远大于夸"礼让行人"——这就是损失厌恶在起作用。

和相邻概念的区别

方法每条样本的形态需要成对数据能直接学"不要这样"吗
SFT(输入,好回答)否基本不能
DPO(输入,好回答,差回答)是只能通过对比间接学到
KTO(输入,回答,好/坏标签)否能,而且权重更高

对从业者和普通人的意义

对做应用的团队,最大的好处是数据门槛降了。真实业务里的反馈本来就是非配对的:客服工单是"解决了"还是"升级成投诉",代码是"通过测试"还是"报错",用户点了赞还是踩——这些天然就是单条二元信号。KTO 让它们可以直接拿来用,不必先费劲凑成 A/B 配对。

第二,正负数据配比更灵活。坏样本本身携带信息,"别这么答"是明确的学习信号,不必为了凑对而浪费。反过来,只有好数据时它就退化得接近 SFT,收益有限。

需要注意的地方:标签质量是命门,把"好"标成"坏"会直接把模型带偏;损失厌恶系数这类超参没有万能值,要按任务试;正负样本严重失衡时也要额外小心。

对普通人来说,这意味着一件很实在的事:以后的产品更容易从你的差评里学习。你按下的每一次"踩",可能比"赞"更管用。

具体实现细节与超参默认值,以官方论文和开源实现页面为准。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。