跳到主要内容

160 篇博文 含有标签「evaluation」

查看所有标签

Prompt 表面积问题:为什么增加一个工具绝不仅仅是增加一个工具

· 阅读需 12 分钟
Tian Pan
Software Engineer

每一个交付过 LLM 驱动的智能体(Agent)的工程师都曾被一个简单的思维模型所诱惑:工具就是一个函数。增加一个工具意味着智能体多了一项功能。其成本仅仅是系统提示词(System Prompt)中的几行文档,或许是一个 Schema 定义,又或者是工具注册表中的一个新条目。这给人的感觉是累加的——线性增长。

事实并非如此。每一个新工具并不只是孤立地扩展智能体的能力;它扩展的是该工具与已有所有工具组合后能产生的能力。这种区别是一类生产环境故障的根源,这类故障在事后无论如何调整提示词都无法修复,因为问题出在架构层面。“提示词表面积”(Prompt Surface Area)问题是真实存在的,它会迅速复合增长,而大多数团队直到深陷其中时才察觉。

RAG 评估失效悖论:为什么更新知识库会破坏你的基准测试

· 阅读需 12 分钟
Tian Pan
Software Engineer

你的 RAG 评估套件在忠实度(faithfulness)方面达到了 0.89。你向知识库添加了 5,000 个新的支持文档。你重新运行相同的评估,忠实度降到了 0.79。你的团队提交了一个模型退化(model regression)工单。

其实没有任何退化。你的评估只是变成了一个谎言。

这就是 RAG 评估失效悖论:在你更新知识库的那一刻,你针对旧索引构建的评估集就会悄无声息地停止衡量其设计的初衷。大多数团队在几个月后才会发现这一点——在为幻影般的退化消耗了大量的工程周期之后——如果他们真的能发现的话。

你的评测套件是一座博物馆:生产故障应当成为明天的测试用例

· 阅读需 10 分钟
Tian Pan
Software Engineer

大多数 AI 团队只会构建一次评测套件——在上线前的冲刺阶段,他们精心设计了边界场景用例,记录预期输出,经过评审后发布。六个月后,套件仍然通过。然而,模型在实际生产流量上已经悄然退步,而评测框架却是在那些流量出现之前编写的。它仍然在评判作者提出问题的答案,而非用户真正在问的问题。

这就是"博物馆问题":一个在某个时间点策划的评测套件会不断积累文物。它证明系统能处理某人预期的场景,却无法覆盖真正让它崩溃的场景。

A/B 测试陷阱:为什么标准实验设计在 AI 功能中会失效

· 阅读需 10 分钟
Tian Pan
Software Engineer

一个团队上线了一个改进的 LLM 提示词。A/B 测试运行了两周。指标上升了 1.2%,p=0.03。他们将其视为胜利并向所有人发布。六个月后,一次客户审计发现,新提示词一直产生细微的错误摘要——这种语义偏移是点击率和会话时长无法察觉的。A/B 测试并没有完全撒谎。它用一种从未针对 LLM 特性设计的评估方法测量了错误的东西。

标准的 A/B 测试是为确定性系统构建的:按钮更改颜色、页面加载变快、推荐算法调整排名。在给定相同输入的情况下,输出是稳定的,方差较小且易于理解,教科书中的样本量计算公式也适用。然而,对于由 LLM 驱动的功能,这些属性都不成立。如果团队不考虑这一点,他们就不是在进行实验——而是在产生带有统计显著性标签的噪声。

评估疲劳周期:为何AI质量度量在上线后走向崩溃

· 阅读需 10 分钟
Tian Pan
Software Engineer

AI评估的命运遵循着一条可以预测的弧线。冲刺零阶段:所有人都认同评估至关重要。上线周:套件运行顺畅,演示效果完美。第六周:CI任务开始被跳过。第十周:有人调高了失败阈值以消除告警。第四个月:绿色仪表盘已毫无意义,人人心知肚明,却无人点破。

这就是评估疲劳周期,它几乎普遍存在。尽管业界在自动化评估工具上持续投入多年,其市场渗透率仍仅有38%——这意味着大多数团队依然依赖人工审查作为主要的质量门控。当下一个模型版本升级,或本周Prompt已是第三次更改时,这些人工审查往往第一个被牺牲掉。

评估集拥挤问题:为什么更大的测试套件捕获的回归反而更少

· 阅读需 11 分钟
Tian Pan
Software Engineer

你的 AI 评估测试集(eval suite)有 800 个测试用例。你又增加了 200 个。现在你的模型在评估中得分 94%,你满怀信心地发布了。三天后,一名用户发现了一个回归(regression)问题,而你那 1000 个测试用例中没有一个捕获到它。

这不是运气不好 —— 而是结构性问题。回归问题的存在恰恰是因为你扩充测试集的方式,而不是尽管你扩充了测试集才存在。当出现故障时增加更多评估指标(evals)的本能在理论上是正确的,但在实践中却适得其反。更多的测试并不自动意味着对重要事项的覆盖率更高。它们意味着对那些易于测试的事项有了更好的覆盖,而这完全是两回事。

泛化悬崖:微调如何导致隐性的能力退化

· 阅读需 10 分钟
Tian Pan
Software Engineer

一家企业软件公司的团队在客户支持工单上微调了一个 7B 模型。目标指标——解决准确率——提高了 12 个百分点。团队发布了它。三周后,产品出现了谁也没预料到的第二种失败模式:模型悄然失去了处理多步问题的能力。用户会问一些稍超出支持领域的问题,得到的是自信但逻辑混乱的回答。模型牺牲了它不知道自己需要的广度,换取了它能够衡量的深度。

这就是泛化悬崖(generalization cliff):紧随窄领域微调而来的隐性能力退化。与崩溃或超时不同,它不产生错误。模型仍然响应。它只是在与训练分布相邻的任务上表现变差——而这些任务从未出现在评估套件中。

乐于助人但却出错:生产环境 AI Agent 中的操作性幻觉问题

· 阅读需 11 分钟
Tian Pan
Software Engineer

你的 AI agent 刚刚完成了一项复杂的数据库迁移任务。它调用了正确的工具,使用了恰当的术语,引用了正确的库,并返回了看起来完全合理的输出。然后你的 DBA 在一个拥有 5000 万行的生产表上运行它 —— 结果备份标志(backup flag)写错了。这个标志存在于相邻的库版本中,语法上是有效的,但它在静默状态下没有执行备份步骤。

这个 agent 并不是在胡言乱语。它表现得自信、流畅且方向正确。但在操作上,它错得正是会导致数据丢失的那种方式。

这是该领域投入不足的一种幻觉类别,也是你的评估(evals)几乎肯定无法捕捉到的那种。

提示工程的职业陷阱:哪些 AI 技能会复利增长,哪些会逐渐退化

· 阅读需 11 分钟
Tian Pan
Software Engineer

在 2023 年,“提示词工程师”(prompt engineer)是科技领域搜索频率最高的职位名称之一。LinkedIn 上到处都是重新包装个人简介的工程师。招聘信息许诺给那些懂得如何诱导 GPT-4 表现的人六位数的薪水。但职位描述中没有提到的是,其中列出的许多技能已经处于“借来的时间”中——到 2026 年,那些能够分辨出持久技能与衰减技能区别的工程师,最终的境遇将大不相同。

提示词工程的职业陷阱并不在于这个领域消失了,而在于它变化太快,以至于在 12 个月内建立的技能到第 18 个月就变成了负资产。那些在错误的层面过度投入而忽视了正确层面的工程师发现,随着下一个模型版本的发布,他们所掌握的专业知识变得毫无意义。

共同演化陷阱:AI 功能的成功如何正在悄悄破坏其评估体系

· 阅读需 10 分钟
Tian Pan
Software Engineer

你的 AI 功能上线了。它运行良好。用户正在使用。满意度评分在上升。你回头运行了原始的评估套件——依然是绿灯。六个月后,某些事情悄然出了问题,但你的仪表盘还没有显示出来。

这就是协同演化陷阱(co-evolution trap)。在你的 AI 功能部署的那一刻,它就开始改变使用它的用户。他们调整工作流、措辞和预期。这种适应使得你的功能实际处理的输入分布与发布时测量的分布产生偏离。评估套件保持绿灯,是因为它停留在部署前的世界。现实世界的表现以评估套件从未捕捉到的方式发生了漂移。

持续生产环境评估:实时 LLM 流量的统计质量监控

· 阅读需 10 分钟
Tian Pan
Software Engineer

大多数团队将 LLM 质量评估视为部署前的关卡:运行评估套件,检查分数,然后发布。这种方法大约只能捕捉到用户实际会遇到的 40% 的故障。剩下的故障之所以会溜走,是因为生产环境的流量与你的评估集完全不同——不同的查询分布、不同的会话长度、不同的上游数据,以及并发负载下不同的模型行为。等到用户投诉出现时,问题往往已经发生了好几天。

解决办法不是在部署前增加更多评估,而是针对实时流量进行持续评估。这种评估是基于这样一个现实设计的:你在推理时没有标准答案(ground truth)标签,并且你需要在几分钟内(而不是几周后)获得可操作的信号。

评估与生产环境的差距:检测生产级 LLM 中的行为模式切换

· 阅读需 11 分钟
Tian Pan
Software Engineer

你的评测套件全绿。你的基准测试分数很高。你的预发布环境看起来很干净。然而 —— 你的用户正反馈一些隐蔽的错误答案、不一致的语气,以及一些难以捉摸的、感觉不对劲的输出。

这就是行为模式切换(behavioral mode switching)问题:一个在被评估时表现出色,但在非评估状态下明显偏离的生产环境 LLM。这并非假设。这是 LLM 部署中常见的“静默式”失败模式,许多团队在向利益相关者宣称模型行为已验证并发布之后,才发现这一问题。

问题不在于你的评测框架不够勤勉。而在于大多数评测框架在结构上无法检测到这类故障。