@Raman_bansal_: 如果你训练过LLM,你可能见过doom loop——LLM无休止地重复同一个token或句子,……
摘要
一篇Substack文章解释了LLM中的doom loop问题——模型会无休止地重复token,并介绍了Liquid AI提出的Final Token Preference Optimization(FTPO)方法,用于在微调过程中检测并修复此类循环。
查看缓存全文
缓存时间: 2026/07/14 06:18
如果你训练过大语言模型(LLM),你可能见过死循环(doom loop),即 LLM 无休止地重复同一个 token 或句子,浪费算力并破坏推理过程,这也是人们不信任小型开源 AI 模型的原因。我写了一篇文章:https://open.substack.com/pub/cmdraman/p/why-your-llm-keeps-saying-the-same…
你的 LLM 为何反复说同一句话:死循环
来源:https://cmdraman.substack.com/p/why-your-llm-keeps-saying-the-same?triedRedirect=true 如果你训练过大语言模型(LLM),你可能见过死循环(doom loop),即 LLM 无休止地重复同一个 token 或句子,浪费算力并破坏推理过程,这也是人们不信任小型开源 AI 模型的原因。
什么是死循环(https://substackcdn.com/image/fetch/$s_!ilaV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10d3cd9d-7cd3-4e06-b7a1-a76f5fcc743e_1200x675.webp)来源:Liquid AI 领先的 AI 研究公司之一 Liquid AI 最近提出了最终 Token 偏好优化(Final Token Preference Optimization, FTPO),这是一种处理死循环的简单方法。
循环背后的三个主要原因:
- **第一,过度训练的 token。**在合成数据生成过程中,某些词或短语出现的频率远高于其他词。当模型不确定时,它会选择这些词,从而增加重复循环的概率。
- **第二,上下文先验强化。**一旦循环开始,每个重复的 token 都会成为模型上下文的一部分。由于语言模型依赖于之前的 token,这些重复的 token 会进一步提高自身的概率,形成一个难以逃脱的正反馈循环。
- **第三,贪心或低温解码。**推理模型使用非常低的温度来生成确定的推理轨迹。虽然这提高了一致性,但也使模型反复选择概率最高的 token。如果这个概率最高的 token 属于正在形成的循环,模型就可能被困住。
他们如何解决这个问题?
他们首先通过检测重复序列(超过四次重复或超过 60 个重复字符)来发现死循环。一旦检测到,他们识别出启动循环的第一个 token,并用一个或多个有效替代 token 替换它。这将创建一个偏好数据集,包含提示、生成的前缀、被拒绝的 token 和被选中的 token。然后他们使用FTPO 对模型进行微调,教会模型在循环开始的确切位置做出更好的下一个 token 决策。
1. 最终 token 训练:与 DPO 优化整个补全不同,FTPO 只针对死循环开始的决策点进行训练——即提示、生成的前缀、被拒绝的 token 和被选中的 token。
**2. 多个被选中的 token:**FTPO 不奖励单个替换 token,而是使用多个有效替代方案。这保持了多样性,避免了简单地用一个过度训练的 token 替换另一个。 3. Logit 空间正则化:FTPO 不在 softmax 之后应用 KL 散度,而是直接在logit 上计算类似 KL 的损失。这使更新局部化,防止改变无关 token。
**4. 两部分正则化:**被选中和被拒绝的 token 可以更自由地变化,而词汇表中的其余 token 则保持接近原始模型。这样既修复了死循环,又不会影响模型的整体行为。
死循环率(https://substackcdn.com/image/fetch/$s_!TUyO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99e908e6-6a72-4149-862a-9fcd98ffb0fc_2048x1152.png) 训练后,我们早期 LFM2.5-2.6B 检查点上的死循环率从 10.2% 下降到了 1.4%。评估分数全面改善,这完全归功于循环的减少。训练集并没有教会模型任何关于数学或代码的新知识;它只是移除了阻碍模型得到它本已能得出的答案的失败模式。
我们还在 Antidoom 流水线上训练了 Qwen3.5-4B(该模型在推理中已知会产生重复循环)。在贪心采样下,其死循环率从 22.9% 下降到了 1%,评估分数显著提高。
Antidoom 修复了训练后常见的退化重复行为,尤其是思考模型。它选择性地针对启动循环的问题 token,对剩余分布造成的附带损害极小。目前的结果表明,在内部 Liquid LFM 检查点以及 Qwen3.5-4B 上,重复循环几乎被完全消除。
关于本文的讨论
想了解更多?
相似文章
利用Final Token Preference Optimization减少Doom循环
Liquid AI推出了Antidoom方法,该方法使用Final Token Preference Optimization来减少小型推理模型在推理过程中的重复性Doom循环,将循环率从10.2%降至1.4%,同时提升了评估分数。
@helloiamleonie:与@liquidai团队一起编写这些工程博客真是太有趣了!这是我们一直在做的:Reas…
这篇文章解释了推理模型中的“末日循环”,即模型重复诸如“Wait”之类的令牌,直到上下文填满,并介绍了FTPO(最终令牌偏好优化)作为训练时的修复方法。相关的Antidoom工具显著降低了末日循环率(例如,在Qwen3.5-4B上从22.9%降至1%)。
大语言模型实际工作原理
深入剖析现代大语言模型的工作原理,涵盖从分词到下一个词预测的核心机制,无需复杂数学知识。
LoopUS:将预训练大语言模型重塑为循环隐层精炼模型
LoopUS 是一种后训练框架,通过隐层精炼和自适应早退机制,将预训练大语言模型转换为循环架构,从而提升推理性能。它解决了现有循环计算方法中存在的计算成本高和原有能力受损的问题。
不要让LLM说话,直接探测它(8分钟阅读)
本文介绍了一种技术,该技术从LLM的最后一个提示标记处提取隐藏状态,无需文本生成即可进行分类,使用一个小型MLP读取模型的内部决策,从而实现快速且廉价的零样本分类器。