利用Final Token Preference Optimization减少Doom循环

Hacker News Top 论文

摘要

Liquid AI推出了Antidoom方法,该方法使用Final Token Preference Optimization来减少小型推理模型在推理过程中的重复性Doom循环,将循环率从10.2%降至1.4%,同时提升了评估分数。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/07/07 17:13

# 通过最终令牌偏好优化减少死循环 ## 来源 来源:https://www.liquid.ai/blog/antidoom 死循环是推理过程中的一种常见故障模式:模型会输出一段文本(通常是类似“等等,让我重新考虑...”的内容),然后一遍又一遍重复同一段文本,直到上下文窗口耗尽。小型推理模型更容易出现这种行为,尤其是在处理长思考轨迹和难题时 [1]。 常用的推理时修复方法是应用 `repetition_penalty` 来重新加权输出分布。然而,这只是权宜之计,可能会降低性能。强化学习可以针对重复循环问题,但它通常需要精心校准的奖励和成本高昂的在线采样。 我们的方法更具针对性。我们识别出循环开始的精确令牌,训练模型在该位置优先选择连贯的替代方案,而基本保持分布的其余部分不变。该方法改编自 Antislop [2],在选定的/被拒绝的配对(代表单个完成令牌)上进行训练,使用最终令牌偏好优化(FTPO)。我们将这种方法称为“Antidoom”。 在 LFM2.5-2.6B 的早期检查点上,10.2% 的困难数学和编程提示的完成结果产生了重复循环。经过 Antidoom 训练后,该比率降至 1.4%,并且由于循环减少,所有评估分数都得到了提升。 ## 死循环的解剖结构 推理过程中死循环的产生可能源于三种机制的共同作用: **机制1:过度训练的令牌 + 不确定性** 词汇表中的某些令牌更容易被普遍选中。众所周知的野外例子包括“delve”和“testament”。如果模型的训练集中使用了合成数据,这些词出现的概率分布就会高于人类写作中的正常水平。在推理模型中,高先验的连续令牌通常包括话语标记和自我反思令牌,如“Wait”或“Alternatively”。这些令牌本身不一定是坏事,它们可能标志着策略的有用改变、验证步骤或推理轨迹中的分支。然而,当模型不确定或陷入困境时,这些令牌可能成为有吸引力的后备连续选择,重新启动相同的局部推理模式,而不是帮助模型取得进展。 对于 LFM2.5-2.6B 的早期检查点,开始死循环最常见的令牌是: ``` count share token 2277 11.39% ' the' 902 4.51% ' So' 644 3.22% 'Alternatively' 511 2.56% 'Wait' 493 2.46% ' But' ``` 当模型不确定时,这些过度训练的令牌主导了下一个令牌的分布,这似乎解释了为什么循环在困难数学和编程问题的思考轨迹中最常出现。先前的工作 [4,5] 对退化给出了类似的解释:基于似然训练的模型可能会过度分配概率给重复和常见词汇,而推理模型在低温度解码下,当未能识别出有用的下一步并转而退回到重复时,可能会陷入循环。 **机制2:先前上下文强化了循环** 更早的序列使得相同的序列在之后更有可能出现。每次重复都会使循环片段中每个令牌的概率趋近于 1。 Duan 等人 [6] 在他们关于循环推理的工作中研究了这种循环。他们将其与“V形”注意力模式联系起来,并发现语义重复(模型被一个想法卡住)先于文本重复(输出中出现相同的词)。 **机制3:贪婪采样** 推理模型通常以低温度运行,以确保轨迹稳定且可复现。在温度为 0 时,总是选择最可能的令牌,局部强化的循环没有出口。理论上,更高的温度会有所帮助,但一旦机制 2 将循环令牌的概率推高到接近 1,剩余词汇表几乎被分配不到概率,因此即使在更高温度下采样仍可能陷入循环(我们的结果显示,即使在温度=0.67 时,循环也很显著)。温度越低,循环越严重。 ## 定位故障 为了构建目标训练集,我们以低温度在旨在引发循环的提示组合(LiquidAI/antidoom-mix-v1.0 (https://huggingface.co/datasets/LiquidAI/antidoom-mix-v1.0))上生成结果,然后挖掘失败案例。 如果样本中的某个片段至少重复四次,且长度至少 60 个字符,则检测为循环。在实践中,这些约束有助于避免误报和漏报。一旦识别出循环序列,我们就针对**第一次重复的第一个令牌**。 在该位置,我们获取基础模型的 top-k log-prob 替代令牌,过滤掉短的非字母数字噪音,并保留最多 20 个合理的替代项作为**选定**令牌。每个训练行由 [提示前缀,一个被拒绝的令牌,一个或多个选定的令牌] 元组组成。然后,在训练之前,我们对被拒绝和选定的分布进行正则化:否则少数罪魁祸首(*Wait*、*So*、*the*)会主导分布,而过度抑制它们会降低推理能力。 ## 最终令牌偏好优化 最终令牌偏好优化(FTPO)是一种偏好优化算法,类似于直接偏好优化(DPO)[3]。一个训练样本包含一个提示、一个选定的连续内容以及一个被拒绝的连续内容 [2]。它从一开始就被设计为只对分布中的少数几个令牌进行有针对性修改,而尽可能少地干扰模型的其余部分。 FTPO 与 DPO 的区别如下: 1. **最终令牌训练:** 只训练生成过程中某个中间序列的尾部令牌。 2. **每个样本多个选定完成令牌:** 这将概率分散到一组替代令牌上,从而避免只是用一个过度训练的令牌替换另一个。 3. **在 logit 空间中实现的类似 KL 的损失组件:** 通过省略 softmax,转而计算与参考模型在 logits 上的散度,避免了对不相关令牌的梯度压力。 4. **两部分正则化:** 我们打算训练的 logits(选定和被拒绝的令牌)相对于参考模型可以更自由地移动,而剩余词汇表则受到更严格的约束。这实现了更好的可学习性,同时保持与参考模型的接近。 在我们的 Antidoom 实现中,模型通常使用 LoRA 训练一个 epoch。我们发现高 LoRA 秩(rank=128-256)能产生最佳结果:更高的可学习性,更少的退化。我们在所有注意力层和 MLP 投影层以及 `lm_head` 上进行训练,发现最优学习率在 4e-6 到 2e-5 之间。 很容易过度训练。我们基于 `chosen_win`(选定令牌获胜相对于被拒绝令牌的样本比例)触发早停。在 `chosen_win=0.35` 处停止通常可以将死循环率从 20-30% 降低到 1-2%,且退化最小。训练时间过长往往会降低模型性能,常常会引发新的死循环问题。 对于我们的早期 LFM2.5-2.6B 检查点,训练集生成大约需要1小时(使用 8 张 MI325 GPU),后续训练大约需要1到2小时(使用 1 张 MI325 GPU)。训练集生成时间取决于模型的死循环率,因为它在收集到 20k 个配对后停止。 ## 结果 为了测量死循环率,我们生成对一系列推理密集型提示的响应,并统计出现退化性重复的样本数量。 训练后,我们早期 LFM2.5-2.6B 检查点的死循环率从 10.2% 下降到 1.4%。所有评估分数都得到了提升,这完全归功于循环的减少。训练集没有教给模型任何关于数学或代码的新知识;它只是移除了阻止模型得出它本已能够产生的答案的故障模式。 我们还在 Qwen3.5-4B 上应用了 Antidoom 管道,该模型已知会在推理过程中产生重复循环。在贪心采样下,其死循环率从 22.9% 下降到 1%,评估分数显著提高。 **LFM2.5-2.6B 早期检查点:** 对于基线检查点(LFM2.5-2.6B-early-ckpt),随着温度升高,评估分数的变化与死循环率呈反比。可以推断,死循环直接降低了基准分数,因为经过 antidoom 训练后,分数大幅提高。 经过 antidoom 训练后,还揭示了一个次要效应:检查点在 `temp=1.0` 时性能下降。这是意料之中的:普遍认为,更高温度的采样可能会损害性能,因为模型更有可能选择不那么受偏好的令牌。曾经有一种普遍看法认为,对于推理模型,更高温度可能更可取,允许它们探索解空间。然而,这种直觉可能被误导了,它与死循环的主导效应混为一谈。一旦死循环被消除,至少在测试的模型中,可以看到近贪心采样能带来更强的评估表现。 **Qwen3.5-4B:** Qwen-3.5-4B 在 antidoom 训练后显示出更大的性能提升。模式与 LFM2.5-2.6B 相同,在低采样温度下收益最大,并且在循环不再是因素后,在 `temp=1` 附近暴露出性能下降的模式。 在实践中,我们发现应用多轮 Antidoom 可能会有所帮助。第一轮后,死循环率下降,因为导致循环的令牌被拒绝,并且该位置的概率被重新加权到选定的替代项上。然而,这可能会暴露新的故障点,分布中其他令牌现在会在其他地方触发循环。应用额外一轮 Antidoom 可以针对这些新出现的循环,进一步降低死循环率。 ## 结论 Antidoom 修复了训练后常见的退化性重复行为,尤其是在思维模型中。它有选择性地针对开始循环的问题令牌,对剩余分布造成的附带损害最小。目前的结果表明,在内部 Liquid LFM 检查点以及 Qwen3.5-4B 上,重复循环几乎被完全消除。 仓库的 README 文件包含了使用训练管道和选择合适超参数的指南。 代码(生成、检测、FTPO 训练器)可在以下地址获取: https://github.com/Liquid4All/antidoom (http://github.com/Liquid4All/antidoom) ## 致谢 作者:Sam Paech,贡献者:Maxime Labonne、Justin Li、Leonie Monigatti、Nathan Ranchin、Tim Seyde、Sergei Tilga。 ## 引用 如需引用,请使用以下参考文献或 BibTeX: Liquid AI, "Reducing Doom Loops with Final Token Preference Optimization", Liquid AI Blog, July 2026. ## 参考文献 [1] Liquid AI, "LFM2.5-1.2B-Thinking: On-Device Reasoning Under 1GB", Liquid AI Blog, Jan 2026. [2] Samuel J. Paech, Allen G. Roush, Judah Goldfeder, and Ravid Shwartz-Ziv. (2026). Antislop: A Comprehensive Framework for Identifying and Eliminating Repetitive Patterns in Language Models. The Fourteenth International Conference on Learning Representations. https://openreview.net/forum?id=gLcyM1khyp [3] Rafael Rafailov, Archit Sharma, Eric Mitchell, Stefano Ermon, Christopher D. Manning, and Chelsea Finn. (2023). Direct Preference Optimization: Your Language Model is Secretly a Reward Model. https://arxiv.org/abs/2305.18290 [4] Sean Welleck, Ilia Kulikov, Stephen Roller, Emily Dinan, Kyunghyun Cho, and Jason Weston. (2020). Neural Text Generation with Unlikelihood Training. International Conference on Learning Representations. https://openreview.net/forum?id=SJeYe0NtvH [5] Charilaos Pipis, Shivam Garg, Vasilis Kontonis, Vaishnavi Shrivastava, Akshay Krishnamurthy, and Dimitris Papailiopoulos. (2025). Wait, Wait, Wait... Why Do Reasoning Models Loop? https://arxiv.org/abs/2512.12895 [6] Zenghao Duan, Liang Pang, Zihao Wei, Wenbin Duan, Yuxin Tian, Shicheng Xu, Jingcheng Deng, Zhiyi Yin, and Xueqi Cheng. (2026). Circular Reasoning: Understanding Self-Reinforcing Loops in Large Reasoning Models. https://arxiv.org/abs/2601.05693

相似文章

ThoughtFold: 通过内省偏好学习折叠推理链

arXiv cs.AI

ThoughtFold 提出了一种利用内省偏好学习的框架,旨在减少大型推理模型在思维链推理中的冗余探索,在 DeepSeek-R1-Distill-Qwen-7B 上实现了约 56% 的令牌减少,且准确率无损。