一项提示词变体(prompt-variant)实验在某款 AI 辅助搜索产品的生产流量上运行。成功指标是点击响应中的任何建议操作。变体 B 交付的响应长度增加了大约 40%,且包含更多列举出的选项。点击率(CTR)高出 11%,且具有三个九(99.9%)的统计显著性。该实验被判定为获胜并上线。
一个月后,每周客户满意度调查下降了两个点。没人将其与上线联系起来,因为实验已被记录为成功,团队已经转向其他工作。季度复盘最终将满意度下降追溯到提示词的更改,诊断结果令人难以接受:变体 B 胜出并不是因为它给了用户更好的答案,而是因为更长的回答包含了更多的点击表面(clickable surfaces)。点击处理器在每次展示中触发得更频繁,是因为有更多可点击的内容,而不是因为你阅读的内容更值得采取行动。
错误不在统计数据上。p 值是真实的,提升是真实的,样本量也是诚实的。错误在于成功指标衡量的是响应的“形状”(shape),而响应的形状是提示词变体可以在不改变潜在质量的情况下直接改变的东西。这场实验是在错误的维度上进行的一场公平竞争。
形状如何在无人作弊的情况下获胜
AI 产品的参与度指标在输出的表面积与任何单一参与事件触发的概率之间存在一种隐藏的耦合。点击率、操作调用率、建议后续动作采纳率 —— 每一项都是针对响应本身产生的事件进行计算的。一个包含三个建议操作的响应有三次触发指标的机会,而包含七个的则有七次。你并没有变得更感兴趣;而是响应变得更“好点”了。
这并非 LLM 所特有。产品团队多年来一直在衡量长内容的参与度,并且知道分页、无限滚动和推荐轮播都会通过增加参与项的库存来夸大参与计数。新鲜之处在于 LLM 改变输出形状的成本是多么低廉。仅需一行提示词修改,就能将答案从三个要点变成十个。无需设计评审,无需开发工单,也无需权衡用户体验。 “响应呈现多少表面积”的变动空间对任何提示词实验都是敞开的,任何与单次展示参与度相关的指标都会默默地奖励这种扩张,直到其他地方出现问题。
这种现象也延伸到了点击之外。当响应内容更长、阅读时间更久时,页面停留时间会上升。当有更多独立的块可以复制时,剪贴板复制率会上升。点赞按钮的点击量可能会增加,因为冗长的答案让你感觉更“完整”,即便它们在简短答案也会犯错的地方同样犯错,只是篇幅更长。你所衡量的任何处于“响应产生更多文本”下游的指标,都会奖励产生更多文本的行为。
为什么长度偏见有着似曾相识的渊源
如果“冗长即奖励”的失败模式听起来很耳熟,那确实应该如此。LLM 评估社区多年来一直在与基于评委(judge-based)对比中的长度偏见(length bias)作斗争。像 GPT-4 这样的模型,在被要求从两个候选响应中做出选择时,即使有明确的准则要求看重简洁性,也会系统性地更倾向于较长的响应。这种偏见是如此顽固,以至于从业者现在通常会发布长度归一化后的胜率,文献中也已明确命名了这一现象。
同样的动态正出现在更高一层的产品分析中。生产环境中的评委不是 LLM,而是点击处理器。其机制不同 —— 你点击更多是因为按钮更多,而不是因为你在认知上更喜欢长文本 —— 但失败模式在结构上是完全相同的。处于响应形状下游的指标,必然会向能够最大化其触发机会的响应形状倾斜。交付更长变体的团队所发现的,正是自聊天机器人时代开启以来一直扭曲 LLM-as-judge 基准测试的同一种长度偏见的产品化版本。
这种联系之所以重要,是因为它告诉你修复方法并非针对单次实验的一次性修正。修复必须成为实验系统本身的一种属性。任何针对输出形状可变的产品,利用参与度指标来运行提示词或模型变体的团队都面临风险。更长的变体往往会胜出。如果团队不将这种动态命名为每次实验的协变量(covariate),就会不断上线冗长的内容,直到数月后下游的满意度信号迫使他们进行清算。
指标完全是在各司其职
人们很容易倾向于认为原始指标是“错误的”。这种说法没抓到重点。建议操作的点击率是一个非常合理的代理指标,用以衡量“你是否在响应中找到了可做的事情”。问题在于,一旦团队能够独立于内容的实质去改变响应的表面积,这个代理指标就与团队原本认为正在衡量的潜在质量结构脱节了。
这就是古德哈特定律(Goodhart's law)在 LLM 时代的疯狂报复。古德哈特的原始表述 —— 当一个衡量标准变成目标时,它就不再是一个好的衡量标准了 —— 假设的是一个缓慢的过程,即人类在几个季度或几年的时间里寻找博弈目标的方法,从而扭曲了行为。提示词实验将这一时间跨度缩短到了几周。一个团队如果在每个冲刺阶段针对参与度指标运行十个提示词变体,实际上是在以提示词为参数对该指标进行梯度下降,而指标与质量结构之间的任何脱节都会在这种下降过程中被发现并利用,过程不会超过一个季度。
开篇故事中的团队并非存心博弈指标。他们的初衷是寻找更好的提示词。指标结构将一个冗长的变体作为赢家交给了他们,而他们上线了它,因为这就是实验框架告诉他们要做的事情。系统正确地优化了错误的目标,而这个错误目标只有当你从不同于参与度运行的另一个维度来衡量质量时,才会变得显而易见。
缩小差距的方法 防止这种失败的模式并不奇特。它们是成熟实验团队在处理具有变动库存的产品界面时所采用实践的延伸,只是针对 LLM 响应呈现展示面积的特定方式进行了重新调整。
按可用目标而非展示次数(impressions)归一化点击率。 如果一个响应呈现了三个建议的操作,用户点击了一个,那么点击率为可用操作的三分之一。如果呈现了七个而用户点击了一个,那就是七分之一。这种针对每个目标的点击率将参与度与库存量解耦,并为你提供一个其数值不会随 Prompt 的冗长程度而变化的指标。这是最简单的修复方案,大多数实验平台无需更改埋点(instrumentation)即可从现有的事件流中计算出该指标。
将响应长度视为护栏指标(guardrail metric),而非自由变量。 任何优胜版本同时也是更长版本的 Prompt 实验,在发布前都应触发额外的定性评估。护栏不一定要阻止发布;它只需要将实验标记为一类可能存在“长度-形状混淆”的结果,并要求提供证据证明其胜出并非由于形状。在多重比较带来的假阳性率开始损耗统计功效之前,三到四个护栏通常是最佳平衡点,而对于任何暴露 Prompt 可调输出的产品来说,长度都是一个非常值得占据护栏位的关键指标。
以与实验相同的节奏进行满意度探测。 大多数产品团队以周或月为节奏测量满意度,这与实验节奏完全脱节。结果是,当质量退化在满意度信号中显现时,导致该问题的发布早已被遗忘。以每日或按展示次数(per-impression)的节奏进行满意度探测(理想情况下,包含一个未接收该变体的对照组),能让质量退化在实验周期内就变得可见,而不是在三个月后的季度审查中才发现。这是此列表中成本最高的建议,也是回本最快的,因为它能在发布后的同一周内揭示出所有长度-形状的混淆。
增加一个独立于用户行为的质量准则的反事实评估。 将优胜版本的输出对照一套准则重新运行——可以是人工评分,也可以是具有显式长度归一化的 LLM 评估,或两者兼而有之——在不参考用户操作的情况下对响应质量进行评分。如果变体的质量评分持平或更糟,但参与度评分上升,那么参与度的胜出几乎可以肯定是因为“形状”胜出。当季度审查询问为什么发布后满意度下降时,反事实评估也是你可以拿出的有力证据。
应该改变你实验默认设置的认知 使 LLM A/B 测试区别于传统产品实验的架构事实是:Prompt 改变输出形状的能力与改变其实质内容的能力一样容易,而且大多数参与度指标对前者的敏感方式超出了设计者的预想。适用于确定性 UI 的实验框架(其展示面积在设计时是固定的,参与度是关于偏好的清晰信号)在应用于输出展示面积本身就是一个可调参数的系统时,会给出误导性的结论。
在生产流量上运行 Prompt 实验的团队所进行的优化是在一个比在固定 UI 上运行按钮颜色实验的团队大得多的搜索空间中进行的。该搜索空间既包括实质内容,也包括形状,任何没有显式剔除形状因素的指标都会首先在形状上被优化,因为形状是更容易改变的维度。不针对形状进行归一化的团队会不断发布更长的响应,直到“某些东西崩溃”,而“某些东西崩溃”通常意味着满意度的退化,且这种退化显现得太晚,以至于无法追溯到导致它的那些发布。
现在,任何 AI 产品实验框架的默认设置都应该是:响应长度是每个参与度指标的协变量(covariate);核心指标的长度归一化版本应与原始版本一同报告;长度护栏应拦截任何其胜出可以被合理解释为变体更长的发布。如果一个框架因为更长的变体在未归一化指标上得分更高而发布它,那么它发布的只是一个给了用户更多点击机会的响应,而不管用户阅读的内容是否值得他们关注。只有当团队认定“每次展示产生更多点击”就是实际目标时,这才是合理的业务结果。如果目标是更好的回答,实验框架就必须被告知其中的区别,因为指标本身无法识别。
会员专享
余下内容仅对会员开放。 会员可读完整内容 —— 每一个公开发布的观点背后,那些框架、决策与推理的全貌。
— 完整文章,包含未公开存档的部分 — 可落地的工作框架,附带权衡与决策依据 — 新文章抢先看,先于公开发布 登录以继续阅读→ 随时取消 · 一次订阅,畅读全部