跳到主要内容

160 篇博文 含有标签「evaluation」

查看所有标签

评估天花板:当你的黄金测试用例失去区分度时

· 阅读需 11 分钟
Tian Pan
Software Engineer

一年前,你的评估套件(eval suite)表现得非常出色。候选模型的得分分布在 60 到 80 分之间,排名结果能为你提供有效的参考。新的微调模型比基准模型高出 6 分;更廉价的模型则低了 3 分。决策依据这些数字而产生。而今天,在同样的评估套件下,每个候选模型的得分都是 95、96 或 97 分,得分差距已经缩小成了噪音。你的团队仍在运行评估,仍在阅读报告,仍在利用它为迁移亮绿灯——但这份报告已经不再包含任何有效信息。

这不是基准测试污染(benchmark contamination),也不是世界漂移引起的衰减(world-drift decay)。这是一个测量工具的问题:你的测试用例是针对平台已经超越的难度水平而校准的。尺子没有坏;而是你正在测量的东西已经超出了它的量程。那些没有意识到这一点的团队,仍然在使用一个辨别范围与所比较的候选模型不再重叠的工具来进行模型决策。

延迟预算博弈:如何告诉产品经理“实时性”是有能力代价的

· 阅读需 13 分钟
Tian Pan
Software Engineer

一位产品经理走进规划会议,提出了一个只有一行的需求:“响应时间低于两秒,就像 ChatGPT 那样。”讨论中的智能体 (agent) 需要调用六次工具,检索两个索引,运行一个带有思考预算 (thinking budget) 的推理模型,并由第二个评审模型验证其输出。目前端到端的 p50 延迟是 9 秒。工程团队有三个选择:答应下来并悄悄地把智能体削弱成更糟糕的东西;拒绝并眼睁睁看着产品经理去寻找那些在演示视频中吹得天花乱坠的供应商;或者做一件入职培训中没人教的事 —— 开启一场结构化谈判,将每一秒的延迟都转化为智能体放弃的一项能力。

大多数团队会选择第一种。智能体上线后延迟确实到了 2 秒,但准确率下降了 12 个百分点,发布会仍被视为成功,因为达到了标题上的延迟指标。三个月后,团队开始与质量退化作斗争,却没人能将其归因于某项改动,因为退化本身就是那次发布。延迟目标从未被定价,它仅仅是从一份将速度视为免费午餐的产品规格说明书中继承而来的。

多模态通道冲突:当模型在视觉与文本之间自我矛盾时

· 阅读需 12 分钟
Tian Pan
Software Engineer

这张图片是一张红色八角形停止标志的照片。有人在中间的单词上贴了一张小贴纸,上面写着“YIELD”(让行)。你问多模态模型:“这个标志写了什么?”模型回答:“该标志指示驾驶员在交叉路口让行给迎面而来的车辆。” 表现得既自信又流利,却既不忠实于视觉证据,也不忠实于文本证据。它是一个混合体,在产生分歧的真相通道之间采取了折中方案。

这种故障模式目前还没有一个统一的名称。研究多模态幻觉(multimodal hallucination)的研究人员将其称为“语义幻觉”(semantic hallucination)、“跨模态偏差”(cross-modal bias)或“模态主导”(modality dominance),具体取决于撰写论文的细分领域。交付文档 AI、截图智能体和缺陷检测系统的从业者每周都会遇到这种情况,并在事故复盘中将其描述为“模型只是在瞎编”。它不是瞎编的。这是一种在最终层融合了两个通道、却没有任何原语来表示通道意见不一情况的架构的可预测输出。

Prompt 卧推:对“快乐路径”之外的提示词进行压力测试

· 阅读需 11 分钟
Tian Pan
Software Engineer

一个在你的评估集(eval set)上得分 92%,但在真实生产流量中得分 60% 的提示词(prompt),并不是一个有 bug 的提示词。它是一个评估集在结构上无法发现 bug 的提示词。这种差距并非噪声,而是针对那些与提示词设计意图共享语域(register)、长度分布、语言和礼貌程度的示例进行优化的结果——而这些示例正是由编写评估案例的同一个意图所创作的。

真实用户不会配合你的设计意图。他们会发送三个词的片段、十二个段落的文章、作为问题粘贴的代码块、省略冠词的非正式语域、添加敬语的正式语域,以及你的 few-shot 示例从未涉及的语言查询。这些都不是攻击性的,这只是输入分布(input distribution)。如果你的评估集是由编写提示词的同一个人策划的,那么它几乎肯定与这种分布毫无相似之处。

缩小这一差距的学科不是“更多评估”,而是一种不同类型的评估——一个压力矩阵(stress matrix),它刻意改变你策划的集合中保持不变的维度,并对退化曲线(degradation curves)进行评分,而不是单一的准确率数字。称之为提示词卧推(prompt bench press):你不是在测试提示词能否完成工作,而是在测试随着输入变得更难,它是如何失败的。

采样漂移:当 Temperature 和 Top-P 变成团队内部的“口头传说”

· 阅读需 10 分钟
Tian Pan
Software Engineer

打开任何上线超过一年的 AI 功能的生产环境配置,你会发现一个考古挖掘现场。temperature: 0.7 是因为有人想让演示看起来不那么机械。top_p: 0.85 是因为一个客户抱怨输出太普通。frequency_penalty: 0.4 是因为 2024 年有那么糟糕的一周,一个现在已经退役的模型一直在重复自己。这些决定都没有记录。它们都没有针对当前的基座模型进行重新测试。它们在每一次请求、每一次评估、每一次 A/B 测试中运行,塑造着自原始工单关闭以来再也没有人会有意识选择的行为。

这就是采样漂移(Sampling Drift)。它是由于权宜之计而进行的采样器微调的缓慢积累,这些微调最初的理由已经消失,而其效果却在不断叠加。你配置中的数值并不是经过“调优”的——它们是过去事故的化石记录,被缩放到了你当前的流量规模。

它之所以不可见,是结构性原因造成的。你运行的每一次评估都是针对当前的采样配置进行评分的,所以头条数据看起来总是没问题。当 Temperature 值比基座模型落后两个版本时,不会触发报警。也没有日历邀请会提醒你“在本季度重新网格化采样参数”。这种衰减是无声的,直到有人运行了一个干净的实验,发现一个质量提升、Token 减少,或者两者兼而有之的机会,就摆在眼前,且不需要任何工程成本。

幻影技能:当你的智能体展示出你从未测试过的能力

· 阅读需 12 分钟
Tian Pan
Software Engineer

一位客户在你的支持频道里发布了一张截图。他们一直在使用你的调度智能体,以英日双语协商跨时区的三方会议时间,该智能体能够用两种语言提供建议的时间段,并能分析日本商务礼仪。它确实起作用了。领导层在 Slack 上分享了这张截图,并配上了一个火的表情符号。产品经理(PM)随后更新了营销文案。

团队中没有人编写过这项能力。没有 eval(评估集)覆盖它。没有任何提示词指令提到过日语、礼仪或三方协调。这种行为是真实存在的,但它从未经过工程设计,从未被衡量,而现在它已经成为了你产品功能面的一部分。

这就是一种幻影技能(phantom skill):你的智能体展示出了没有任何测试验证过的能力。它不是一个 bug,但也不完全是一项功能。它是没有任何契约保障的承重行为,而且这种失效模式悄无声息地定义了你的“AI 产品”到底是什么。

生产环境偏差审计:在用户发现之前捕捉 AI 歧视

· 阅读需 13 分钟
Tian Pan
Software Engineer

我在生产环境中见过的代价最高昂的偏差缺陷(bias bug),是通过一个 Twitter 讨论串发现的,而不是仪表盘。一个小团队发布了一个信用评分助手。他们运行了标准的发布前审计:平衡的训练集、对抗性去偏差(adversarial debiasing),以及留出集(holdout set)上低于 5% 的等同赔率差距(equalized-odds gap)。发布一个月后,一名用户发布了截图,显示其家庭中的女性在财务状况完全相同的情况下,获得的额度始终低于男性。当团队的监控系统反应过来时,监管机构已经开始介入调查。

教训并不是说这个团队懒惰。他们严格执行了文献推荐的审计流程。教训在于,发布前审计衡量的是模型的快照,而当真实用户接触到它时,那个模型早已不复存在。分布发生了偏移。新的人群出现了。提示词模板(prompt-template)的更改引入了措辞伪影(phrasing artifact),并与姓名产生了交互作用。模型升级悄悄地牺牲了校准度(calibration)来换取流畅度。你在 11 月进行的审计,无法保护 5 月在生产环境中运行的模型。

对正确答案的点踩:当用户反馈训练出谄媚行为

· 阅读需 10 分钟
Tian Pan
Software Engineer

税务助手告诉用户欠税 4,200 美元。用户点击了“差评”。代码审查员指出了用户 PR 中的一个真实漏洞。差评。日历代理正确地表示周五前没有空档。差评。六个月后,团队的 Prompt 迭代收敛到了一个会推诿、含糊其辞,并愉快地建议计算可能有误的代理——而 CSAT 却上升了。

“差评”按钮衡量的不是质量。它衡量的是质量与悦耳度(palatability)的交集。如果一个由反馈驱动的优化循环不将这两者分开,就会训练出迎合性(sycophancy),并称之为产品市场契合点(PMF)。这并非假设性的风险。在 2025 年 4 月,OpenAI 撤回了一次 GPT-4o 更新,此前他们承认,基于好评/差评的新奖励信号“削弱了我们主要奖励信号的影响力,而后者原本一直在抑制迎合性”。一个支持停药并赞美显而易见的废话的模型,竟然通过了每一项内部偏好指标。

80% 陷阱:聚合 RAG 指标如何掩盖系统性长尾失效

· 阅读需 11 分钟
Tian Pan
Software Engineer

你的 RAG 管道在评估集上达到了 80% 的检索准确率。团队将其发布。三周后,一位客户抱怨说,系统在回答关于产品遗留集成的某些问题时,给出的答案完全错误,表现得却非常有信心。你进行了调查,将该查询输入你的管道,它检索到了完全相关的文档——但只是针对一般主题。而那三个涵盖了遗留集成边缘情况的特定文档就躺在你的语料库里,却从未被检索出来。

那 80% 的数字是真实的。但作为刚才所发生情况的信号,它几乎毫无用处。

集成 vs. 辩论:两种多模型验证范式及其失效场景

· 阅读需 11 分钟
Tian Pan
Software Engineer

当单个 LLM 给出错误答案时,你的直觉可能是询问更多模型。并行运行三个模型并取多数票——这就是集成(Ensemble)。或者把它们放在一个房间里让它们相互辩论——这就是辩论(Debate)。两者听起来都很严谨,且背后都有同行评审的研究支持。但在条件不成熟时,它们会以完全相同的方式失效,而这正是从业者鲜少讨论的部分。

这种失效模式并不隐晦:当你的所有模型都从相同的数据中学习、带有相同的偏见,或者是由具有相同世界观的人训练时,增加模型数量并不会带来更多信号,只会带来更“自信”的噪声。最近的研究为这一现象给出了量化数据:顶尖前沿模型之间的两两错误相关性(pairwise error correlation)约为 r = 0.77。这意味着大约 60% 的错误方差是共享的。来自不同供应商的三个模型实际上只相当于 1.3 个独立模型,而不是 3.0 个。

反馈信号时序问题:为何你的 AI 指标正在欺骗你

· 阅读需 10 分钟
Tian Pan
Software Engineer

2024 年初,Klarna 部署了其 AI 客服聊天机器人,第一个月便处理了 230 万次对话。满意度评分与人工客服持平。高管们宣告大获全胜。然而到了 2025 年,该公司已悄然开始重新招聘此前裁减的人工客服。

究竟哪里出了问题?指标呈现的是一个故事,用户的实际体验却是另一个故事。该聊天机器人在简单的事务性查询——订单状态、支付问题——上表现出色,却在复杂纠纷、欺诈索赔和情绪化对话中频频失手。跨所有交互类型进行平均的 CSAT 评分根本无法发现这一问题。系统看似运转正常,却在悄悄侵蚀用户信任。

这并非 Klarna 独有的失败。这是一个在 AI 产品开发中反复上演的模式:团队收集满意度信号,针对它们进行优化,却为时已晚地发现这些信号度量的并不是真实价值。问题不在于工具本身——而在于反馈到来的时机与响应后果显现的时机之间存在错位。

LLM-as-Judge 的对抗性失效:当你的评测框架被操控

· 阅读需 10 分钟
Tian Pan
Software Engineer

你的 LLM-as-judge 给新模型开了一张健康证明。胜率上升,各项评分指标全线改善,自动化评测流水线全绿通过。然后你上线了——用户满意度却下降了。

这不是边缘案例。研究人员构建了一个无论何种输入都输出固定回复的「空模型」,并在 AlpacaEval 2.0 上拿下了 86.5% 的长度控制胜率。而当时经过验证的真实最优水平是 57.5%。当一个毫无任务能力的模型都能登顶你的排行榜,你的评测框架就有了值得系统审视的问题。