> 2026-07-07 · Liquid AI · AI coding 基础设施 > 原文链接:https://www.marktechpost.com/2026/07/07/liquid-ai-antidoom-doom-loops-ftpo > 技术细节:https://www.liquid.ai/blog/antidoom > 开源仓库:https://github.com/Liquid4All/antidoom
如果你用过任何推理模型做编码,大概率撞过一种让人血压升高的失败模式:模型写完一段代码,忽然开始重复同一个短语——「Wait」「So」「Alternatively」——然后一遍又一遍重复,直到上下文塞满、断在某个尴尬的位置、整个会话报废。
行业里把它叫做 doom loop(死循环)。
7 月 7 日,Liquid AI 开源了 Antidoom,一种针对这个问题的「外科手术级」修补。它没有改训练数据、没有重新预训练、也没有改采样策略。它只做一件事:找到那个让循环开始的第一个 token,教模型在那一个位置选别的。
数字非常硬:LFM2.5-2.6B 在硬数学和编程提示上的循环率,从 10.2% 降到 1.4%;Qwen3.5-4B 的循环率从 22.9% 直接砸到 1.0%。而且不是砍了一两个长尾——明确验证就是这一个修补带来的。整个评分上去了,因为循环挡掉的那些本来就能答对的题,现在能答对了。
这事的价值,远不止「修了点 bug」。
死循环是怎么发生的:三种机制合谋
Liquid AI 把 doom loop 拆成三个独立但叠加的机制,这点洞察本身就值得记下来。
第一,过度训练的 token 加不确定性。某些 token 在语言学上先验概率极高,典型例子是「Wait」「Alternatively」「So」「the」「But」这类。在训练数据的合成推理轨迹里,这些词经常充当策略切换的信号——「让我换个角度看」是好事。但当模型卡住、不知道下一步是什么,它们就成了最自然的「兜底」选择。LFM2.5-2.6B 的循环起点 token 分布里,「the」占了 11.39%,「So」占 4.51%,「Alternatively」占 3.22%——这不是模型「思考」,是它退回到了默认频道。
第二,上下文会强化循环。每个重复都让模型对这段 token 的局部概率更自信(论文里把它叫做 V 型注意力模式)。这意味着,只要循环一次没被截断,第二次更容易,第三次更难停。
第三,greedy 采样没有出口。推理模型普遍用低温度跑,目的是「稳定可复现」。但温度 0 等于「永远选最可能的 token」。一旦循环起点被局部强化,模型就再也出不来。Liquid AI 测了一下,在 0.67 温度下还是有显著循环,问题不是采样,而是分布被污染了。
这三个机制叠加的效果就是:模型其实知道答案,但在某个瞬间被打断了——然后它焦虑地回头说「Wait」,然后进入循环,死在那里。
Antidoom 怎么修:第一个循环 token 的偏好优化
Antidoom 的思路听起来简单得可疑。生成一批故意会触发循环的提示,跑低温度采样,定位循环的第一个 token 的位置,把那个位置上的「rejected token」(比如「Wait」)和一个「chosen token 集合」(比如「So」「Since」「The」「Therefore」其中任意一个)配成对,用偏好优化算法训练。
但具体做法里有几个细致的工程决定,让它跟「普通的 DPO」「普通的重复惩罚」「普通的 RL」都不一样。
它训练的是单一位置的 token,整个分布基本不动。这意味着它不会污染模型其他能力。普通 DPO 训一段话,有可能改变模型的「人格」;Antidoom 只改那一个位置的概率,影响范围最小。
每个样本可以配多个 chosen token。模型被教的是「选这些里的任意一个都行」,而不是「必须选这一个」。这就避免了把一个过度训练 token 换成另一个过度训练 token——这是普通「一个换一个」式修补的常见陷阱。
它跳过了 softmax,在 logit 空间做 KL 正则。这个细节听起来技术,但效果是:训练时不会无意中调整那些不该改的 token 的概率。
它有自己的偏好优化算法叫 Final Token Preference Optimization(FTPO),跟 DPO 类似但有四点不同:只训单一末尾 token、多个 chosen、logit 空间 KL、正则化更激进。
在 LFM2.5-2.6B 的早期 checkpoint 上,生成训练数据用了 8×MI325 GPU 大约 1 小时,训练只用了 1×MI325 大约 1-2 小时。整个 pipeline 几小时搞定。
仓库里还放了一个数据集 LiquidAI/antidoom-mix-v1.0,专门设计来触发循环的提示集合。开源的是检测、生成、训练全流程,不只是权重。
跟其他「修死循环」方法的对比
repetition_penalty 是最常见的临时修补,推理时重新加权输出分布。便宜,但作者明确指出是「创可贴」,会污染其他场景下的表现。
强化学习是更重的方案,需要 reward shaping 和在线 rollout,搭起来贵,调起来慢。
DPO 也有类似尝试,但只能「一个换一个」,粒度太粗;而且普通 DPO 训的是完整段落,β 值难调。
Antidoom 的胜出区间是:有循环问题、想尽量不动其他能力、预算只是「几小时而不是几天」。对每个模型,得自己生成一份循环数据集——这是它的局限,但也是它「不动其他能力」的代价。
简单算一下:这条修补值多少钱
我看了几天里几个 AI coding 工程师的吐槽:一个 1M context 的会话,常常会看到模型在某个长 Python 错误追踪后开始重复「Hmm」「Let me think again」「Actually wait」,然后整个 invocation 报废。
对一家靠 API 计费的 coding agent 公司,这种现象级故障意味着:每一个坏掉的会话都白烧了一次 context window 的 token。假设一个会话平均 80k token,坏掉的会话占比如果能压掉 5 个百分点,光是节省的 API 费用就足够一个三人团队的季度薪资。
而 Antidoom 不是改模型,而是一个「修补包」——发布模型之后还能再贴一层。这跟 Anthropic 之前 Reveal 那个推理 hack 思路有点像:不是替代模型,而是在模型外面挂一个「纠错带」。
限制和不确定性
作者没藏着掖着:多轮迭代可能需要,因为修了这一批循环起点,可能暴露下一批。LFM2.5-2.6B 和 Qwen3.5-4B 都是「小型推理模型」,在更大的 closed 模型比如 Fable 5、Opus 4.7 上效果如何没验证——这是必须诚实承认的不确定性。
温度接近 1.0 时,训练后的模型表现会下降,这是预料之中(高温度偏向未被偏好的 token)。但这意味着这套修补最适合「追求稳定可复现」的低温度推理场景,反而是 coding 主力使用场景。
每个模型都得自己生成一份循环数据集,意味着「通用 Antidoom 模型」不存在——它是 post-training 的工具,不是交付物。
值得关注的原因
AI coding 现在真正卡住工程师的是什么?不是 SWE-bench 上的 70% 分数,而是长尾失败:会话跑到一半忽然崩、然后人得自己接手。Antidoom 这类工具指向的是同一个问题:模型能力够了,但「不在错误时刻崩」这件事还没解。
如果 Liquid AI 这个开源路线被验证、再被 Anthropic/OpenAI/Google 这种大厂内部借鉴,接下来 6 个月的 AI coding 产品会少很多「打到一半重开」的现象。Long-running agent(7 月 7 日那天字节 EdgeBench 也在做这件事,见 Topic 5)和「循环不长」是同一问题的两面。
我个人的小判断:这是接下来一个季度里,「不靠模型升级就明显改善 AI coding 体验」的少数几条可走通的工程路径之一。今晚就开始在内部 coding agent 上贴一份试看看。
