Liquid AI 用 Antidoom 把推理模型的 doom loop 压到 1%:一次训练只改 1 个 token

Liquid AI 这周开源了 Antidoom,专门修理推理模型的 doom loop(死循环)——当模型陷入"Wait…Alternatively…But…"的套话循环直到耗尽 context,本质是"Wait""So""the""But""Alternatively"等高先验 token 在不确定时被反复选中,前文循环又进一步抬升同段序列概率,而推理模型常用的低温采样(如 temperature=0)几乎切断了逃出循环的可能。常见的 inference-time 修法是加 repetition_penalty,但 Liquid 团队认为这是创可贴,会顺带损害其他能力。 Antidoom 的核心是 FTPO(Final Token Preference Optimization):先在低温度下生成一批"会循环"的样本,定位到"循环起点"那一个 token,用模型自己的 top-k 候选作为 chosen token,训练 rank=128~256、lr=4e-6~2e-5 的 LoRA 一个 epoch。目标函数只对那一个位置做偏好优化,参考分布用 logit 空间 KL 约束而非 softmax,避免对无关 token 造成连带损伤;early-stop 阈值 chosen_win=0.35 是关键,调过头会引发新的循环。 效果立竿见影:LFM2.5-2.6B 早 checkpoint 的 doom-loop 率从 10.2% 降到 1.4%,Qwen3.5-4B 从 22.9% 降到 1.0%,eval 分数在多个推理基准上全面上涨——训练集本身没教模型任何新知识,纯粹把"本来就会做、只是被自己卡住"的部分释放出来。代码、数据、FTPO 实现全部开源在 github.com/Liquid4All/antidoom,1-2 张 MI325 上 2-3 小时就能跑完一轮。 对做 RL 后训练或部署推理模型的团队来说,Antidoom 是一套非常实用的"循环修复"管线:在跑大规模 RL 之前先跑一遍,常见的失败模式就能压到 1% 量级。FTPO 这种"单 token 偏好优化 + logit 空间 KL"思路大概率会推广到 hallucination、格式漂移等其他局部失败模式的修补上。