论文
算法发现
Discovering Preference Optimization Algorithms with and for Large Language Models (DiscoPOP)
让 LLM 发现训练 LLM 的偏好优化损失函数(DiscoPOP)
Chris Lu, Samuel Holt, Claudio Fanconi, Alex J. Chan, Jakob Foerster, Mihaela van der Schaar, Robert Tjarko Lange · Sakana AI / Oxford · NeurIPS 2024 · 2024-06 · 被引 39
一句话 Sakana AI 与 Oxford 让 GPT-4 迭代提出并实现新的 preference optimization 损失函数代码,每个候选实际训练一个 7B 模型并用 MT-Bench 打分作为反馈;评估约 100 个候选后发现的 LRML(DiscoPOP)损失在 Alpaca Eval 2.0 LC 上以 65.18% 胜率超过 DPO 的 63.34%,但各任务上的领先幅度普遍很小,且损失对 β 超参数很脆弱。
这是什么 DPO 把 RLHF 简化成了一个监督式的偏好优化问题:损失函数吃进 chosen/rejected 两个回答的 log 概率比之差 ρ,输出一个标量 loss。DPO 用 logistic 损失、SLiC 用 hinge 损失、IPO 用平方损失——这些都是人手工设计的凸函数,而可能的损失函数空间远没被探索完。这篇论文的想法是:让 LLM 来搜这个空间。
做法是把 objective discovery 变成一个 LLM 驱动的进化循环:给 GPT-4 看已有损失函数的 PyTorch 代码和对应性能,让它提出新的候选函数代码,通过单元测试后真的拿去 finetune 一个 gemma-7b 系的模型(复用 alignment-handbook 的 Zephyr 7B Gemma 配方,在 Argilla DPO Mix 7K 上训练),用 MT-Bench 分数作为 fitness 反馈给 GPT-4 进入下一轮。跑了约 100 个候选后,选出若干表现好的新损失,其中 LRML(Log Ratio Modulated Loss)被命名为 DiscoPOP。
这是'用 LLM 发现训练 LLM 的算法'这条 ai4ai 闭环路线的早期代表(与同期 Sakana 的 LLM² 系列一脉相承),发表于 NeurIPS 2024。价值不完全在 DiscoPOP 这个具体损失,更在于验证了 LLM 能以代码为载体、在真实昂贵评估的反馈下做有结构的算法搜索——论文的 CIFAR-10 小案例显示 GPT-4 不是随机撒网,而是在'探索新概念、微调参数、组合已有想法'之间交替。
论文主图。左:LLM 驱动的目标函数发现循环——system prompt 里给出已知损失代码和性能,GPT-4 以 JSON 返回新候选损失的 PyTorch 代码,通过单元测试后跑一次真实的 offline RLHF 训练,验证指标写回 context 进入下一轮。右:held-out 的 Alpaca Eval LC 胜率,发现的 LRML(DiscoPOP)65.18%、AQFL 64.41%、PADLL 64.14% 超过 DPO 的 63.34%——注意领先幅度只有 1-2 个百分点。 机制与做法 LLM 驱动的进化搜索循环
初始 context 里塞入若干已知损失(DPO、SLiC 等)的代码和它们的性能作为 burn-in,并要求 GPT-4 以 JSON 格式返回 thought/name/code 三个字段。每个候选函数签名固定:输入 {log πθ(y_w), log πref(y_w), log πθ(y_l), log πref(y_l)},返回标量 loss。先跑单元测试(形状、NaN、梯度有效性),失败就把报错回喂给 GPT-4 重采样;通过则完整走一遍 DPO 式训练(替换 Zephyr 7B Gemma 配方最后一步的损失函数,超参数不动),训完在 MT-Bench 上用 GPT-4 评分,分数写回 context 进入下一代。
这个循环没有显式的种群/交叉/变异算子,LLM 的 in-context learning 本身就是进化算子。成本很实在:每个有效候选都要 finetune 一次 7B 模型 + 一轮 GPT-4 judge 评估,全程评估了约 100 个目标函数。
发现的损失函数与基线的形状对比(横轴为 βρ)。DPO 是光滑凸的 logistic,SLiC 是 hinge;而 LRML(深红)在 ρ=0 右侧有一个明显的非凸鼓包(局部负梯度),PADLL(红)在 ρ=0 处直接跳变。这个非凸性是 DiscoPOP 最反常规的特征,也是它在极端 β 下训练不稳定的来源。 发现了什么:DiscoPOP = 自适应混合 logistic 与 exponential 损失
MT-Bench 上最好的几个发现:DBAQL 7.978、AQL 7.953、PADLL 7.941、LRML 7.916,对比 DPO 7.888、SLiC 7.881(满分 10)。注意 LRML 在发现任务上并不是第一,是在 held-out 任务上综合表现最稳才被选为 DiscoPOP。
LRML 的形式:f = (1-σ(βρ/τ))·f_dpo(βρ) + σ(βρ/τ)·f_exp(βρ),τ=0.05。ρ=0(训练起点)时 logistic 和 exponential 各占一半;ρ 越正(chosen 已被偏好)exponential 项主导,放大大差值;ρ 为负时回落到 logistic。反直觉的是这个函数非凸,在 ρ=0 附近甚至有一段负梯度——作者猜测这可能起到 curriculum 或注入随机性的作用,和'损失必须是凸的'这一常规设计假设直接冲突。
Held-out 验证:三个迁移任务
单轮对话(Alpaca Eval 2.0):LRML/PADLL/AQFL 都超过基线,LRML 对 SFT 模型的 length-controlled 胜率 65.18%(DPO 63.34%),是唯一显著领先的指标;其余指标上几个 top 损失之间差异不显著。摘要任务(Reddit TL;DR):PADLL 和 DPO 最好,LRML 略低于两者——DiscoPOP 在这里并没有赢。IMDb 正面情感生成(GPT-2 规模):在 β∈{0.05, 0.1} 时 LRML 的 reward-KL 前沿略优于 DPO/SLiC。
Limitations 一节相当坦诚:LRML 在 β≤0.01 时训练卡在局部极小(只会生成负面评论),β≥2.5 时 loss 突然尖峰后模型崩溃输出 NaN——因为发现过程只在 β=0.05 下评估过,β 被这个损失'重新用途化'了,既控制 KL 惩罚又改变函数形状。
关键结果 评估约 100 个 GPT-4 生成的候选损失函数,产出 7 个在 MT-Bench 上超过或接近 DPO(7.888)的新损失,最高 DBAQL 7.978。 被命名为 DiscoPOP 的 LRML 损失是 logistic 与 exponential 损失的 sigmoid 加权混合(τ=0.05),非凸且在 ρ=0 附近有负梯度段。 Alpaca Eval 2.0 上 LRML 对 SFT 基线的 LC 胜率 65.18% vs DPO 63.34%,是所有指标中唯一显著超基线的;对 GPT-4 胜率 13.21±1.02 vs DPO 11.23±0.97,与 PADLL(14.07)、AQFL(13.63)统计上打平。 TL;DR 摘要任务上 PADLL 和 DPO 最好,LRML 略逊——DiscoPOP 并非全任务领先。 LRML 对 β 敏感:β≤0.01 收敛失败,β≥2.5 训练崩溃出 NaN;发现过程只见过 β=0.05。 CIFAR-10 小案例显示 GPT-4 的搜索有结构:先提出 label smoothing,调参后探索平方误差变体,再把两者组合获得进一步提升,且发现的目标能迁移到不同架构和 100 epoch 长训练。 S2 引用 39 次(2026-08),后续工作(如 Oxford 的 Mirror Preference Optimization, arXiv:2411.06568)转向用 MuJoCo 诊断套件做更可控的 PO 算法搜索,理由正是 LLM 对齐评估'成本高、噪声大'。 实证核查
有水分 pipeline 真实、代码和模型都开源了,发现循环本身可信;但'state-of-the-art'的说法建立在 GPT-4-as-judge 基准上零点几分甚至 0.03 分的差距上,held-out 任务上 DPO 也常打平或反超,且损失函数对超参数很脆弱。作为'LLM 发现算法'的可行性验证成立,作为'发现了更好的偏好优化算法'则打折。
摘要声称 DiscoPOP 达到 state-of-the-art performance 并成功迁移到 held-out 任务。
论文自己的数字不太撑得起 SOTA:发现任务 MT-Bench 上 LRML 7.916 vs DPO 7.888,差 0.028 分且无误差棒,LRML 甚至不是发现的候选中最高的(DBAQL 7.978);Alpaca Eval 2.0 正文承认 top 几个损失之间'差异不显著',唯一显著的是 vs SFT 的 LC 胜率(65.18 vs 63.34);TL;DR 任务上最好的是 PADLL 和 DPO,LRML 排在其后(论文 Table 3 / Sec 4.2)。
DiscoPOP 是一个可直接替换 DPO 使用的新损失函数。
论文 Limitations(Sec 5.2)自述:β≤0.01 时训练卡死在负面输出(reward ~0.15),β∈{2.5, 5.0} 时 loss 尖峰后模型崩溃输出 NaN;温度 τ=0.05 和 β=0.05 都是发现过程中的隐式默认值,离开这个设定行为无保证。想拿去用必须自己重新扫超参。
代码开源可复现(GitHub luchris429/DiscoPOP)。
仓库结构完整:launch_evo.py(发现循环)、run_gpo.py/run_dpo.py(训练)、run_evaluations 及 TL;DR/IMDb 脚本都在,HF 上也发布了 SakanaAI/DiscoPOP-zephyr-7b-gemma 模型,MIT license。但仓库自 2024-06-13(发布后两天)起零提交,65 stars,全部 issues 只有 2 个(一个改模型命名、一个开放式讨论),没有任何第三方复现报告。复现发现循环需要 GPT-4 API + 每个候选一次 7B 全量 finetune,约 100 次,门槛不低;'发现的损失更好'这一层没有独立验证。
MT-Bench 分数作为进化的 fitness 信号是可靠的。
同一批作者圈的后续工作 Meta-Learning Objectives for Preference Optimization(arXiv:2411.06568,Foerster 是共同作者)开篇即指出用 LLM 对齐任务评估 PO 算法'成本高、噪声大、变量多',并因此改用 MuJoCo 诊断套件做搜索——等于侧面承认 DiscoPOP 这种以 0.0x 分 MT-Bench 差距驱动的搜索,信号信噪比是个真问题。
与我们方向的关系 对做 ai4ai / 算法自动发现的同学,这篇的核心可借鉴点是工程范式而非那个损失函数:把搜索空间定义成'固定签名的 PyTorch 函数代码',用单元测试 + 报错回喂做合法性过滤,用真实下游训练做 fitness——这个三件套后来在 Sakana 的 AI Scientist、各类 LLM-driven AutoML 工作里反复出现。CIFAR-10 案例说明即使不跑昂贵的 LLM finetune,也可以在小代理任务上先验证搜索循环。
同样值得吸取的是它的教训:fitness 信号噪声(GPT-4 judge 的 0.0x 分差)会让搜索选出过拟合评估器的候选;发现过程中固定的超参(β=0.05)会被 LLM '悄悄利用',产出对该设定过拟合、迁移时脆弱的解。做算法发现时应在 fitness 里显式加入多超参/多任务的鲁棒性检验,或像后续 MPO 工作那样先换到便宜可控的代理基准上把信噪比做上去。
阅读笔记 论文正文 Alpaca Eval 表格里 SLiC 的 LC 胜率写成 '13;16'(分号),camera-ready 都没改,侧面说明表格是手工整理的。复现时注意 README 强调 PyTorch 必须是 v2.1.2、flash-attn 2.5.7,且 alpaca_eval 与 mt-bench 的 openai 包版本冲突需要两个 conda 环境。GPO(generalized preference optimization)的训练入口是 run_gpo.py,自定义损失写在 src 里。
材料清单 TeX 源码 已存档:Raw/discovering-preference-optimization-with-and/source/
后续工作 arxiv.org/abs/2411.06568 Meta-Learning Objectives for Preference Optimization(Oxford):指出 LLM 对齐评估噪声大,改用 MuJoCo 诊断套件搜索 PO 算法
同类条目