Acquire, Repair, Preserve: A Diagnosis-Guided Post-Training Recipe for Small-Model Dialogue Game Agents
Nan Li
EMNLP 2026
cs.CL, cs.LG
2026-08-28
乌得勒支用2B模型走宽SFT、Wordle轮级DPO和LoRA缩放0.85,公开对话游戏分从10.67提到38.92,静态分几乎不动,域外仅7.88。
静态基准测的是单轮答题。对话游戏测的是另一件事:模型必须跨轮记住状态,读懂刚收到的反馈,再在收紧的约束下选出合法动作。猜一个词会排除字母,给一条线索会限制搭档下一步,走一步会改变下一句命令该从哪间房解释。
LM Playschool Challenge 把这件事做成正式赛。官方 Qwen3.5-2B 基线公开 clemscore 只有 10.67,同系列 27B 是 60.30。翻 2B 的 Wordle 记录会发现,失败经常不是「不会玩」:输出格式对,紧跟着却重复刚被拒的猜测、长度不对,或用上反馈标成红色的字母。错误频繁、能用规则检查,而且就钉在收到反馈后的那一次决策上。
问题因此收成一句:监督该落到轨迹的哪一段,而不是再争论对话游戏数据有没有用。
乌得勒支大学 Nan Li 的 playornotplay 提交,把后训练拆成 Acquire、Repair、Preserve 三步,全程 LoRA(r=16,α=32,all-linear,dropout 0.05)接在 Qwen3.5-2B 上,文本模式微调,单卡 A100-80GB 大约 5.3 小时。
对照实验把「整段剩余对话」当偏好对,未过滤的 whole-dialogue DPO 把 clemscore 打到 12.35,模型开始在动作前写自然语言前言,协议崩掉。按更强源模型过滤后只回到 25.76,主要 abort 模式还在。轮级对比钉在反馈后的那几个决策 token 上,整段对比会把协议一起改坏。
原稿写过六阶段。其中继续弱游戏 SFT 和 Wordle 上的 GRPO,后来核过:一个把 adapter 冻死,一个优化器参数集是空的,权重一个字节都没动。修 bug 重跑后两项合计还掉 0.30 分,所以提交只保留上面四步有效阶段。
官方终评(snapshot 2dd5a533)是主结果。开发集只有 14 款游戏、67 局,差几分要当噪声。
| 系统 | 公开 clem | 封闭域内 | 封闭域外 | 静态分 |
| Qwen3.5-2B 基线 | 10.67 | 13.41 | 3.72 | 44.24 |
| playornotplay(2B) | 38.92 | 41.17 | 7.88 | 44.14 |
| 官方 4B 基线 | 26.66 | 34.02 | 17.99 | 51.33 |
| 官方 9B 基线 | 31.91 | 41.12 | 24.91 | 53.90 |
| DAIR SFT-only(同 2B) | 46.01 | 46.57 | 15.62 | 44.35 |
公开 Played 从 27.22% 升到 78.63%,Quality 从 39.20 到 49.50。封闭域内两边都涨:Played 47.32→82.62,Quality 28.33→49.83。域外 Played 从 35.19 掉到 33.08,低于未训练基线;clemscore 从 3.72 到 7.88,全靠更少对局里的条件质量。
域外正向移动 84.86 里,三个留出的 Wordle-crazy 变体贡献 70.02,占 82.5%。封闭域内涨最多的反而是后期没碰过的游戏:TMW GraphReasoning +71、ImageGame +60、AdventureGame +58。被盯着修的 Wordle 家族在隐藏域内几乎还是 0(3.3、10.0、3.3)。
开发轨迹上宽 SFT 是最大单步(+30.80)。turn-DPO 第一轮在提交轨和受控单机实验里都为正(+2.98 和 +1.49);第二轮和 branch-DPO 两条评测轨符号相反。静态分表面保住了,底下在挪:BBH Quality 0.00→30.47,IFEval 68.52→51.85,EQ-Bench 64.78→56.43。
给小模型做互动后训练,这篇把监督该放哪讲清楚了。大头是「先学会把这局打完」的宽模仿;能用规则抓住的局部失败,适合钉住同一历史做短偏好对;整段对话当 DPO 样本,在这个协议极严的环境里会把格式一起改坏。LoRA 增量缩放不新增数据、不走梯度,是把静态分从专化税里捞回来的便宜旋钮。
它不是排行榜第一。同底座的 DAIR SFT-only 公开 46.01、隐藏域内 46.57、域外 15.62,三项都更高。官方 2B 拉到 9B、零训练,公开分已经从 10.67 到 31.91。这篇的价值更接近一份路径依赖的实验记录:参与缺失时宽模仿有用,失败可机械定位时轮级偏好有用,策略已经换过再继续纠错,五条续训臂都没超过缩放后的 50.43 开发端点。
4B 上做过对照:700 条 off-policy 成功对局的低剂量 SFT,把 clemscore 从 40.75 砸到 24.36。同样的「成功模仿」,底座已经会玩时会把已有能力改坏。
论文自己写了四条。轮级修复只在 Wordle 家族上构造过偏好数据,没测过需要语义或策略判断的失败。域外覆盖就是近亲变体迁移。修复阶段挂在一份封顶 700 条/游戏的宽 SFT 父模型后面,没扫过更强或更弱的获取阶段,所以补不上「轮级 DPO 到底是互补还是在给这份弱父模型擦屁股」。官方分只验证提交端点,相邻阶段差把训练、顺序依赖、反复选型和 67 局噪声搅在一起,不能当因果分解。静态分保住的是合计,不是每一项。
公开三局 plain-Wordle 上还有更扎眼的细节。条件质量在有对局被打完的检查点上始终是 0:修的是协议级错误,没把猜词任务做对。s=0.85 缩放之后,三局全部 abort,第一轮 DPO 专门打过的 bad-length 猜测又回来了。提交产物在隐藏域内 Wordle 家族几乎没分,和「盯着 Wordle 修了两阶段」对不上。
公开 clemscore 和隐藏域内高度相关(r=0.93),和域外几乎无关(r=0.30)。在公开开发集上做的每一个决定,最后都长成了「域内大涨、域外 Played 低于未训练基线」。