Liquid AI发布Antidoom开源工具 用FTPO显著削减推理模型循环错误

0 阅读4分钟前沿

背景

在长文本推理任务中,部分小规模模型会出现 doom loop——模型不断重复同一段落直至上下文窗口耗尽,导致答案停滞、算力浪费。Liquid AI 通过系统分析发现,这类循环主要源于三大机制:

  • 过度训练的高频 token(如 WaitSo)在不确定情况下被反复采纳;
  • 循环文本自身强化了这些 token 的概率;
  • 贪心采样(低 temperature)使循环难以自行跳出。

Antidoom 方法概述

Antidoom 采用 FTPO(Final Token Preference Optimization),定位循环的首个 token 并在该位置提供多达 20 条可替代的高质量候选。核心步骤包括:

  1. 使用专门的 antidoom‑mix‑v1.0 数据集生成可能循环的完成;
  2. 检测连续重复 ≥4 次且字符数 ≥60 的片段,返回首个循环 token 的索引;
  3. 对该 token 的 top‑k 替代进行过滤,只保留字母数字且语义连贯的候选;
  4. [prompt, rejected, chosen] 形式构建训练样本,使用 LoRA(rank 128‑256)进行 一轮 FTPO 微调。

FTPO 与传统 DPO 的区别在于:仅针对 最终 token 进行优化、支持 多候选、在 logits 空间直接计算 KL‑like 损失、以及对非目标词汇进行强约束,从而避免对整体分布的副作用。

实验结果

模型训练前循环率训练后循环率评价得分提升
LFM2.5‑2.6B10.2%1.4%全面提升
Qwen3.5‑4B22.9%1.0%全面提升
  • 生成阶段约 1 小时(8×MI325 GPU),微调约 1‑2 小时(单卡)。
  • 循环率下降后,近贪心(temp≈0.67)采样获得最高评测分数;高温采样的优势主要来源于循环掩盖的误差。

开源实现与使用指南

  • 代码仓库github.com/LiquidAI/antidoom(包含数据生成、循环检测脚本、FTPO 训练器)。
  • 核心文件find_loop.pyftpo_trainer.pyantidoom_mix_v1.0.json
  • 快速上手
    1. 下载模型 checkpoint(LFM2.5 或 Qwen3.5)。
    2. 运行 python generate_loops.py --model xxx --temp 0.67 生成循环样本。
    3. 使用 python ftpo_trainer.py --model xxx --data loops.json --lora-rank 128 完成微调。
  • 适用于 on‑device 推理模型小型编码助手 以及 Agent 流水线,显著降低 token 消耗和响应延迟。

影响与展望

Antidoom 展示了 针对性微调 在提升推理可靠性方面的潜力,尤其对 1‑2 GB 规模的本地模型尤为重要。未来工作可探索:

  • 多轮 Antidoom 循环检测与修复,以捕获二次出现的错误点;
  • 将 FTPO 扩展至 跨模型共享 的循环 token 库,实现更通用的防循环框架;
  • RL‑based 纠错方法结合,平衡生成质量与循环抑制。

Liquid AI 表示,随着社区对 doom loop 的关注提升,Antidoom 将成为小模型部署的标准修复工具,进一步推动本地推理模型在生产环境中的可用性。

本文是对第三方新闻源的主观解读。消息可能出现过时、不准确、歧义或错误的地方,仅供参考使用。点击此处查看消息源。