评估债务棘轮:靠感觉发布 AI 功能的团队如何被技术欠账所困
一个中型公司的团队在发布文档摘要功能三个月后,对提示词进行了优化。新提示词在他们手动测试的 5 个示例上表现更好。他们在周五下午部署了它。周一上午,Slack 里堆满了用户反馈:摘要现在会截断一半文档,却将截断后的内容呈现为完整版本。功能看起来没问题,变更通过了代码审查,没有人发现,因为根本没有评估机制——没有黄金测试集,没有回归基线,没有自动检查。棘轮已经悄悄转动了数月。
这就是评估债务最典型的表现形式。团队跳过评估并非因为粗心大意,而是因为为 AI 功能编写评估比听起来难得多,功能发布快且看起来运行良好,没有人想拖慢一个高速运转的团队。现在,他们正在偿还复利。
评估债务不只是技术债
技术债的说法很宽泛——你快速写出 的代码,打算之后再清理。评估债务在性质上有所不同,不只是程度上的差异。在传统软件工程中,你通常可以直接观察正确性:函数要么返回正确值,要么不返回;API 要么响应正确的状态码,要么不响应。这些是确定性的、可验证的事实。
AI 功能产生概率性输出。摘要的好坏不是非此即彼的——它在忠实度、完整性和有用性上各有高低。定义"正确"需要人类判断、领域知识或精心构建的评分标准。这种困难是真实存在的,也正是团队拖延的原因。当你无法写出简单的断言语句时,评估就会感觉像是一个研究问题,而非工程任务。
但陷阱在于:推迟评估并不能消除行为问题,只是意味着你无法对其进行测量、检测或推理。针对 ML 软件项目的实证研究发现,它们积累自我承认技术债的速度大约是非 ML 项目的两倍——而这一差距恰好集中在团队在时间压力下最容易忽视的验证和测试领域。
当你在没有评估的情况下发布 AI 功能时,你不只是在跳过测试。你正在签署一份自己看不到的隐性合同:功能以某种分布方式运行,而你同意通过用户投诉来发现这个分布是什么样的。
为什么团队持续跳过评估
四股力量推动团队走向"凭感觉发布",理解它们很重要,因为每种情况的解决方案各不相同。
指标模糊性。 对于分类模型,准确率是显而易见的。但对于客服机器人,质量是什么样的?如果用户没有追问,是说明简短的回复更好,还是他们只是放弃了?高任务 完成率是良好体验的标志,还是说明你没有发现需要升级处理的用户?无法就衡量什么达成共识的团队,往往会决定什么都不衡量,因为局部测量可能比不测量更具误导性。
演示充分性偏见。 在你测试的 10 个示例上能运行的功能,感觉就像是能正常运行的功能。这对生成式 AI 来说尤为严重,因为即使输出有误,看起来也很精美。一个幻觉引用、一个缺失从句、一个自信却错误的实体——如果审查者没有核对原始材料,这些都不像是出了问题。功能在向利益相关者展示的所有演示中似乎都运行良好。它不起作用的情况在用户发现之前是不可见的。
评估基础设施成本。 编写有用的评估不仅仅是收集测试用例。它需要决定测量什么、标注基准真值(这通常需要领域专家)、构建可重复运行测试的框架,以及将该框架集成到部署流水线中。对于一个试图在两周内发布的三人团队来说,这是一个需要数周的项目。成本是真实的,当你的功能进度已经落后时,预先支付这笔费用显得不合理。
速度文化。 AI 产品格局奖励快速迭代。快速行动的团队能进入市场、获得反馈、持续改进。隐含的假设是,生产环境中的用户反馈是一种评估形式——市场就是评判者。这对某些类型的信息是正确的。但对于用户无法清楚表达的质量退化("感觉就是变差了")、用户没有发现的细微事实错误,或者影响用户很少触发但一旦触发就高度依赖的边缘案例的回归,这种方式是行不通的。
