跳到主要内容

107 篇博文 含有标签「evaluation」

查看所有标签

评估悖论:古德哈特定律如何破坏 AI 基准测试

· 阅读需 12 分钟
Tian Pan
Software Engineer

在 2024 年底,OpenAI 的 o3 系统在 ARC-AGI 基准测试中获得了 75.7% 的分数——这是一个专门为抵抗优化而设计的测试。AI 研究界欢欣鼓舞。但从业者仔细观察后发现:o3 使用了该基准测试 75% 的公开训练集进行训练,且最高算力配置使用的资源是基准线的 172 倍。这并不是伪装成分数的能力突破,而是伪装成能力突破的分数。

这就是评估悖论(Evaluation Paradox)。一旦某个基准测试成为团队优化的目标,它就不再能衡量其最初设计的目的。古德哈特定律(Goodhart's Law)——“当一个衡量指标变成目标时,它就不再是一个好的指标了”——虽然是在 20 世纪 70 年代的经济政策中提出的,但它却极其精准地描述了 AI 基准测试的现状。

为什么幻觉率不是衡量生产级 LLM 系统的核心指标

· 阅读需 9 分钟
Tian Pan
Software Engineer

你的 LLM 幻觉率是 3%。但你的用户仍然讨厌它。这并不矛盾 —— 而是衡量标准错误的症状。

幻觉率已成为 LLM 质量的默认头条指标,因为它很容易向利益相关者解释,且在基准测试(benchmark)中计算起来非常简单。但在生产环境中,它与用户真正关心的东西相关性很低:任务是否完成、结果是否值得信赖并足以据此行动、以及系统是否为他们节省了时间?

长尾覆盖问题:为什么你的AI系统在最关键的地方失败

· 阅读需 12 分钟
Tian Pan
Software Engineer

某医院部署的医疗AI在测试中达到了97%的准确率。它通过了所有内部审查,顺利上线,然后悄然失败——当寄生虫密度低于1%的细胞时,它无法检测出寄生虫感染,而这恰恰是早期干预最为关键的场景。直到一位医生注意到特定患者群体中异常高的漏诊率,问题才得以浮出水面。

这就是长尾覆盖问题。你的聚合指标看起来很好,但系统在最重要的输入上已经损坏。

区分优秀AI工程师与普通工程师的思维模型转变

· 阅读需 11 分钟
Tian Pan
Software Engineer

在AI工作中遇到困难的工程师,最常见的问题不是缺乏技术知识,而是他们一直在问错误的问题。他们想知道的是:"这能用吗?"但他们真正应该问的是:"这个系统的失败率是多少,这个失败率对于这个使用场景来说是否可以接受?"

这一转变——从二元正确性转向可接受的失败率——是有经验的AI工程师思考问题的核心差异。听起来简单,其实不然。由此延伸的一切都是不同的:你如何调试、如何测试、如何部署、监控什么、以什么为信心基础。没有完成这一转变的工程师会一直在与工具对抗并且不断失败。

提示词本地化技术债:隐藏在多语言 AI 产品中的无声质量梯度

· 阅读需 11 分钟
Tian Pan
Software Engineer

你的 AI 功能上线时,任务成功率达到了 91%。你运行了评估,迭代了提示词,并不断调优,直到达到质量标准。然后你面向全球发布了——三个月后,一名东京的用户提交了一个支持工单,称你的 AI “不太理解”他们的输入。你的日本用户一直都在默默忍受一个比英语用户体验差 15–20 个百分点的功能。你的团队中没有人注意到这一点,因为没有人去衡量它。

这就是提示词本地化债务(Prompt Localization Debt):你为之构建 AI 的语言与用户所使用的其他每种语言之间不断累积的性能差距。它不会在仪表盘上显现,也不会导致服务中断。它只是静悄悄地制造出二等公民用户。

AI 系统的影子流量:在上线前验证模型变更的最安全方式

· 阅读需 11 分钟
Tian Pan
Software Engineer

大多数团队上线 LLM 变更的方式,与 2005 年上线 Web 变更如出一辙——跑几个离线评估,说服自己数字看起来不错,然后直接推上去。意外总在周一早上到来:一个通过了所有基准测试的系统提示词调整,悄无声息地破坏了评估集之外 40% 的用户查询。

影子流量就是解决方案。思路很简单:将候选模型或提示词与生产系统并行运行,向其输入每一个真实请求,对比输出结果,同时只让用户接触当前版本。零用户暴露、真实生产数据、上线前的统计置信度。但将这一方法应用于 LLM,需要重新思考几乎所有实现细节——因为语言模型是非确定性的、推理成本高昂,且其输出无法通过简单 diff 进行比较。

在写第一个提示词之前,如何选对 LLM

· 阅读需 10 分钟
Tian Pan
Software Engineer

大多数团队选择 LLM 的方式,和十年前选数据库一样:看一张对比表,挑出最关心那一列得分最高的,然后开始构建。六个月后,他们要么在迁移,要么疑惑为什么评估结果和用户实际体验截然不同。基准没有错——只是模型选错了。

错误不在于选了错误的模型,而在于还没搞清楚自己的生产任务分布就急着选模型。基准测试的是别人认为重要的东西;你的生产系统有完全不同的分布。这两件事根本不是一回事。

为非确定性 AI 功能编写验收标准

· 阅读需 13 分钟
Tian Pan
Software Engineer

你的工程团队已经开发文档摘要生成器三个月了。规范要求:“摘要生成器应返回准确的摘要。”你发布了它。用户抱怨摘要有一半时间是错误的。事后分析显示,在发布前没有人能以可测试的方式定义“准确”的含义。

这是 AI 功能开发的标准轨迹,之所以会发生,是因为团队将为确定性软件构建的验收标准模式,套用到了本质上是概率性的系统上。由 LLM 驱动的摘要生成器没有单一的“正确”输出 —— 它有一系列的输出分布,其中一些是可以接受的,另一些则不然。二元的通过/失败规范无法映射到分布上。

这个问题不仅是哲学上的,它还会导致切实的痛苦:功能发布时质量门槛模糊,回归测试在用户发现之前难以察觉,产品和工程团队在功能是否“完成”上无法达成一致,因为没有人规定对于随机系统来说,“完成”意味着什么。这篇文章将介绍真正有效的模式。

AI 驱动功能的“完工”定义:工程化永恒的 Beta 测试

· 阅读需 12 分钟
Tian Pan
Software Engineer

在传统软件中,发布功能以合并代码(merge)告终。单元测试通过。集成测试通过。QA 签字认可。你切换标志(flag),除非在生产环境中出现 bug,否则你就可以继续接下来的工作。这个功能就“完成”了。对于 AI 驱动的功能,那个时刻并不存在 —— 如果你假装它存在,你就是在累积稳定性债务,这最终会演变成用户信任问题。

原因很简单,但很少有人围绕它进行设计:确定性软件对于相同的输入每次都会产生相同的输出。AI 功能则不然。这并非因为 bug,而是因为其行为由一个存在于代码库之外的模型定义,该模型基于反映不断变化的世界的数据进行训练,并由那些随着看到更多可能性而不断提高期望的用户使用。

评估基准真相中的标注者偏差:当你的标签系统性地将你引向歧途

· 阅读需 13 分钟
Tian Pan
Software Engineer

一个团队花了六个月时间训练一个情感分类器。留出集(holdout set)上的准确率看起来很稳健。他们发布了它。三个月后,一项审计显示,该模型一致地将非英语母语者的产品投诉评价为比母语者的相同投诉更负面——即使文本表达的意思完全相同。根源不在于模型架构,不在于训练过程,而在于标注团队:十二名身处同一个时区的英语母语者,没有人注意到某些表述在翻译后的文本中承载着不同的情感权重。

模型学到的是标注者的盲点,而非真实的信号。

这就是实践中的标注者偏差(annotator bias)。它不会自我宣告,而是表现为你信任的评估分数、看起来合理的基准排名,以及在未经过仔细测试的子组上表现怪异的已部署系统。基准真相(Ground truth)的污染处于机器学习流水线中所有其他环节的上游——而这是大多数团队发现得太晚的问题。

将评估覆盖率作为生产指标:你的测试套件真的在测试用户实际行为吗?

· 阅读需 9 分钟
Tian Pan
Software Engineer

大多数 AI 团队把通过评估套件视为系统正常运行的信号。但事实并非如此——至少不全是。一个稳定得分 87% 的套件只做了一件事:告诉你系统在套件恰好覆盖的那 87% 的场景中表现良好。如果这套测试是六个月前手工整理的,基于团队能想到的示例,从未用真实流量更新过,那它正在以越来越高的置信度测量错误的东西。

这就是评估覆盖率问题。它与你的评估器是否准确无关——而是关于你测试集中的查询分布是否与用户实际发送的查询分布相匹配。当这两种分布出现偏差时,你会得到一个比评估失败更糟糕的结果:一个通过的评估,背后却是悄然劣化的产品。

参差不齐的边界:为什么 AI 在简单任务上会失败,以及这对你的产品意味着什么

· 阅读需 11 分钟
Tian Pan
Software Engineer

在 AI 产品开发中,有一个常见的假设:如果一个模型能处理难题,它就一定能处理附近的简单任务。这个假设是错误的,它导致了一类生产环境下的失败,而无论你读多少基准测试报告都无法为此做好准备。

这一潜在现象的研究术语是“破碎边界”(jagged frontier)——AI 的能力边界并不是一条平滑的线,并非难题在界外、简单任务在界内。它是一个参差不齐、不可预测的形状。AI 系统可以编写生产级别的数据库查询优化器,却仍然会算错图中两条线段是否相交。它们可以通过博士级别的科学考试,却在涉及空间关系的儿童谜题上失败。它们可以综合 50 页的文档,然后对自己刚刚读过的一段文字产生充满自信的幻觉。