测试无法察觉却破坏了一切的模型升级
这次升级看起来就像是白捡的便宜。供应商发布了一个更新的模型,它在每一项公开基准测试中的得分都更高,每个 token 的成本更低,且生成 token 的速度更快。你在一个配置文件里修改了模型字符串,运行了评估套件,看着 340 个测试用例全部变绿,然后在周二下午发布上线。到了周四,客服工单不断增加,却没人能指出到底是哪一个测试失败了。
这是应用层 LLM 开发中最令人困惑的失效模式,因为它违反了其他所有软件与你达成的契约:如果测试通过,行为就保持一致。在这里,该契约失效了。模型升级不是对一个你可控接口的库进行版本更新。它是一次对概率函数的无声、大规模更替,而你的评估套件只检查了你想到要写下来的那一小部分行为。
真正带来伤害的退化往往存在于你从未编码定义过的行为中——语气、冗余度、格式习惯,以及模型如何处理请求中模糊的中间地带。这些恰恰是你的用户所依赖的东西,也恰恰是 pass/fail 断言无法察觉的东西。
