做到第二轮测量时,一定会遇到这个问题:数字动了,是我们做的,还是它自己动的。
答错这个问题的代价很具体。把波动当成成效,第三个月客户会发现数字涨了业务没动;把成效当成波动,有用的做法会被停掉。
干扰源有四个,逐个处理。
第一个干扰源:模型自己就不稳定
这一点必须先摆出来,因为它决定了整套方法的下限。
有研究把五个模型配置成确定性模式,在八项常见任务上各跑十轮,结果是准确率在自然发生的多轮之间最大波动达到 15%,最好与最差之间的差距最大到 70%,没有一个模型在所有任务上都能稳定复现,更不用说输出完全相同的字符串。研究者还提到,这种不确定性与计算资源的高效利用方式有关,短期内不会消失。
另一项研究从别的角度得到类似结论:在同一任务上,仅仅改变提示词的格式这类不改变语义的设计选择,准确率差距最大可达 76 个百分点,而且把模型做大、增加示例、做指令微调都没有消除这种敏感性。
结论是:单次提问的结果不构成任何证据。每题必须重复多次,看分布而不是看单值。这是归因的前提,不做这一步后面都是空的。
第二个干扰源:模型版本更新
平台更新模型时,所有品牌的表现可能一起变动。这种变动不属于任何一方的工作成果。
处理方式不是弃用数据,是把时间轴切段。更新发生在哪一轮,就在那一轮画一条线,段内做比较,跨段只看趋势方向。报告里要写明这条线的位置。
实务上有个识别技巧:如果某一轮里自己和所有竞品的数据同向大幅变动,大概率是平台侧的变化,而不是谁的工作突然生效了。
第三个干扰源:竞品动作
竞品发了一批内容、拿到几篇报道,自己的相对位置就会变,哪怕自己什么都没做。
这个干扰源没法排除,只能观测。办法是在每轮记录时把答案里出现的所有其他品牌名一起记下来,形成一份名单和各自的出现次数。自己的数字下降而某个竞品同步上升,归因方向就清楚了。
有一条纪律:统计口径要对称。统计自己时算正文标注的来源,统计竞品时也算正文标注的来源,不能一边宽一边严。
第四个干扰源:问法漂移
这个最隐蔽。问题集在使用过程中常常被人悄悄改动:有人觉得某个问法不自然顺手改了措辞,有人补了几道新题,有人把重复的删了。
改完之后数据还在同一张表里,看起来可比,实际上已经不可比。前面提到的格式敏感性研究说明,措辞的微小变化就足以改变结果。
处理方式是把问题集当成代码管理:原文冻结,任何改动记一次版本,旧版本继续并行测量至少两轮。复测之后那一页写了版本切换时的具体处理步骤。
| 干扰源 | 识别信号 | 处理方式 | 能否排除 |
|---|---|---|---|
| 输出随机性 | 同题多次结果不同 | 每题重复多次,看分布 | 不能,只能降低 |
| 模型版本更新 | 自己与竞品同向大幅变动 | 时间轴切段,段内比较 | 不能,但可标注 |
| 竞品动作 | 自己降而某竞品同步升 | 每轮记录全部出现的品牌名 | 不能,只能观测 |
| 问法漂移 | 问题集文本被改过 | 问题集冻结并做版本管理 | 能,靠纪律 |
| 抓取延迟 | 改动与测量间隔过短 | 改动后留三周再复测 | 能,靠排期 |
| 改动混批 | 一轮里上线多项改动 | 分批上线,间隔三周 | 能,靠排期 |
这张表里前三行是不能排除的,后三行是能排除的。实际项目里出问题最多的是后三行,因为它们靠的是流程纪律而不是技术难度,而纪律最容易在赶进度的时候被放弃。
一个具体的归因失败案例形态
这个形态常见到值得单独写出来。
第一个月做了技术修复,第二个月上了八篇内容,第三个月复测,被点名率从两成涨到三成五。报告写「内容生产带来 15 个百分点的提升」。
这句话至少有三处站不住。技术修复和内容上线之间没有分批,无法分辨是哪一项起的作用;期间平台更新过一次模型,而报告里没有标注;问题集在第二个月被补了五道新题,分母变了。
把这三处还原之后,可以说的只剩一句:原有的三十道题在未改动组和改动组之间出现了差异,改动组的被点名次数上升更多,方向与内容上线时间吻合,幅度待下一轮确认。
这句话听起来弱,但它是可以兑现的。前面那句听起来强,第四个月就得自己打自己。
对照组怎么设
没有真正的随机对照组,但有两种可用的近似。
一种是按问题分组。把问题集分成两组,这一轮只对其中一组对应的内容做改动,另一组不动。两组在同一时间、同一条件下测量,平台侧的变化会同时作用在两组上,组间差异更接近工作本身的效果。
另一种是按时间错开。同一批改动分两次上线,间隔三周以上,看两次是否出现相似的变化形态。形态相似说明不是偶然。
两种都不严格,但比没有对照好得多。
什么情况下不能归因
三种情况要明确说不能。
改动和测量之间没有间隔。内容刚上线就复测,抓取都未必完成,这时候的数据和改动无关。
同一轮里做了多项改动。技术修复、内容补写、第三方投放一起上,数字动了也不知道是哪一项起的作用。想知道就得分批上线。
样本量太小。三十道题、每题三次,总共九十条答案,这个量级能看出大的变化方向,看不出几个百分点的差异。拿它去论证小幅提升是过度解读。
报告上该怎么写
把能归因的和不能归因的分开写,不要合成一个结论。
能归因的部分写成「这一组问题上的变化与第三周上线的内容改动时间吻合,另一组未改动的问题同期无明显变化」。不能归因的部分写成「本轮数据整体上移,同期竞品同向变动,怀疑与平台侧更新有关,待下一轮确认」。
这样写出来的报告不漂亮,但它的每一句都站得住。持续测量的指标定义、报告周期与归因口径,效果监测那一页按交付物列了。
参考来源
- Atil, B., Aykent, S., Chittams, A., et al. (2024). Non-Determinism of "Deterministic" LLM Settings. arXiv.
- Sclar, M., Choi, Y., Tsvetkov, Y., & Suhr, A. (2024). Quantifying Language Models' Sensitivity to Spurious Features in Prompt Design. ICLR 2024.
- Liu, N. F., Zhang, T., & Liang, P. (2023). Evaluating Verifiability in Generative Search Engines. EMNLP 2023 Findings.
- Aggarwal, P., Murahari, V., Rajpurohit, T., Kalyan, A., Narasimhan, K., & Deshpande, A. (2024). GEO: Generative Engine Optimization. Proceedings of KDD 2024.