输出截断如何扭曲小模型评测结果
作者发现450-token输出上限导致438条回复中的145条JSON未闭合,随后保持代码、提示词、模型及种子不变,提高上限复跑20组旧样本。部分截断回复恢复完整,但仍有5次调用在更高上限下持续无法完成。
AI 深度解读
一次模型审计没得到明确结论,问题却有一部分出在输出上限:Qwen2.5-1.5B 的 438 条回复里,145 条被 450-token 限制截断,连 JSON 都没闭合,无法读取。约三分之一的数据就这样退出了分析。
作者重跑旧样本后发现,被截掉的回复可能更容易改动学生原话,而且截断集中在比较的一侧。对做 AI 评测的程序员来说,这篇最有用的提醒是:输出限制不仅影响调用是否成功,还可能影响最终结论。
被截断的回复,可能恰好是你最该看的
原来的审计研究两个问题:模型引用英语学习者的作文时,是否更容易改动原话;告诉模型「这名学生是英语学习者」,是否会改变引用的忠实程度。此前各项判断都因样本不足,无法得出明确结论。
作者没有立刻换新作文,而是重跑原审计最先使用的 20 对样本。代码、提示词、模型和 seed 都不变,只把输出上限从 450 tokens 提到 1,024 tokens。
两次都完成的 47 条回复,长度和引文判定完全相同。这支持了作者在当前设置下逐次比较调用结果,但不能据此推断该模型在所有环境中都具有确定性。
原先被截断的 13 条回复中,8 条恢复完整。完成回复的长度中位数是 268 tokens,最长为 594 tokens。不过,仍有 5 次调用到 1,024 tokens 都没完成;从 600 tokens 起,各档上限留下的都是这 5 次调用。原文没有解释它们为何迟迟不能完成。
更麻烦的是,这 5 次全部来自配对的非英语学习者作文一侧。缺失并没有均匀分布。
恢复的 8 条回复包含 24 处引文,其中 4 处改动了学生原话,占 16.7%;两次都完成的回复包含 141 处引文,其中 11 处发生改动,占 7.8%。
如果长回复更容易出错,删除截断回复就可能让模型看起来更可靠。
但这只是风险信号。作者也明确承认,这点样本远不足以构成发现。
新审计为什么选 800 tokens,还要提前写下预测
下一轮 Audit 7 沿用 PERSUADE 2.0 数据、配对方式、提示词、身份标签句和检查器,只测 Qwen。数据使用 Audit 6 已用样本之后的 640 对,拆成四个封存的 CPU 作业,输出上限改为 800 tokens。
800 并不保证全部完成。旧样本里,那 5 次调用到 1,024 tokens 仍没完成;这个选择只是新实验条件,不能被理解为已经解决截断。
作者在生成新反馈前公开计划,并预先写下三项预测:
- S1:英语学习者作文中的引文,比配对作文中的引文更容易被改动。即使 Audit 6 的点估计偏向相反方向,作者仍保留这一预测。
- L1:加入身份标签句后,改动率的变化小于 4 个百分点。
- T1:长度超过 450 tokens 的回复,其引文更容易被改动。这是此次新增的预测。
S1、L1 每侧至少需要 600 处成功定位的引文,T1 每侧至少需要 150 处,否则不给结论。这里计算的是引文数量,不是调用次数。
提前公开预测的价值,是让后续结果有固定的核对标准,减少看完数据再调整解释的空间。Audit 7 尚未给出结果,不能把这些预测写成已验证的结论。
我的判断
我认同作者把「无法解析的回复」重新纳入审计视野。评测流水线如果只统计成功解析的 JSON,得到的准确率可能只适用于那部分容易完成的输出。
不过,16.7% 与 7.8% 的差异目前只是小样本观察。原文没有给出足以支持显著差异的证据,也没有解释持续无法完成的 5 次调用究竟出了什么问题。
提高输出上限适合先检查截断影响。缩短输出结构、减少单次任务量也是可考虑的替代办法,但会改变实验条件,需要重新验证;原文没有提供这些方案的对照数据。
作者还发布了离线工具 quote-check v0.4.0:显示每处引文相差多少个词,提供定位提示,并用「Changed quotes first」优先展示发生改动的引文。它支持 English 和 Spanish,数据不离开浏览器。对核对引用很实用,但工具更新本身不能证明模型引用已经更准确。
能拿来做什么
- 在 Node 的模型评测脚本里,把截断、JSON 解析失败和完整回复分别统计,并按比较组查看失败分布,避免只留下一个总体成功率。
- 确定最终提示词和 token 上限后,再估算正式实验所需样本量;旧配置下的完成率未必适用。
- 给 AI 引用原文的任务增加逐处核对,同时比较长回复和短回复的改动率。若样本不足,就保留观察,不急着下结论。