跳到主要内容

578 篇博文 含有标签「insider」

查看所有标签

为什么 “准确率 92%” 几乎总是一个谎言

· 阅读需 10 分钟
Tian Pan
Software Engineer

你发布了一个 AI 功能。模型在你的留出集(holdout set)上达到了 92% 的准确率。你把这个结果展示给产品 VP、法务团队和客户成功主管。每个人都点头表示认可。功能上线了。

三个月后,一个你没有专门测试过的客户群体正面临 40% 的错误率。法务部门在提问。客户成功团队正在处理升级投诉。产品 VP 想知道为什么没有人预警。

92% 这个数字在技术上是正确的。但在作为决策输入时,它几乎是毫无用处的 —— 因为整体准确率恰恰掩盖了那些最重要的信息。

数据飞轮并非免费:构建真正提升 AI 产品的工程反馈闭环

· 阅读需 13 分钟
Tian Pan
Software Engineer

几乎在每一个 AI 产品团队中都会出现这样一种模式:团队发布了初始模型,用户开始与之交互,接着有人在回复底部添加了一个“点赞/点踩”小部件。他们称之为反馈闭环。三个月后,模型并没有任何改进。团队纳闷为什么飞轮没有转起来。

问题不在于执行,而在于显式评分并不是反馈闭环——它们只是调查问卷。只有不到 1% 的生产环境交互会产生显式用户反馈。而那 99% 从未点击任何按钮的用户正在向你发送远为丰富的信号;你只是没有收集它们。构建真正的反馈闭环意味着通过系统埋点来捕获行为轨迹,在大规模场景下高效地标注它们,并将其导回训练和评估流程中,从而实现随时间推移的复利增长。

隐性反馈陷阱:为什么参与度指标在 AI 质量上具有误导性

· 阅读需 9 分钟
Tian Pan
Software Engineer

一家加拿大航空公司的支持聊天机器人凭空捏造了一项根本不存在的丧亲票价政策。该机器人表现得非常自信、格式规范且彬彬有礼。乘客们相信了它。法院随后判定航空公司应对这一虚假政策负责。与此同时,该聊天机器人的满意度评分可能还相当不错。

这就是隐式反馈陷阱。大多数团队用来衡量 AI 质量的信号——点赞评级、点击率、满意度评分——不仅充满噪点。它们还在衡量错误目标方面存在系统性偏见。而针对这些信号进行优化,只会让你的 AI 变得更糟。

知识图谱 vs. 向量存储:选择你的检索原语

· 阅读需 10 分钟
Tian Pan
Software Engineer

大多数团队在起步时都会选择向量数据库 (Vector Store),因为它们上手简单,但随后会发现即使无论如何调整分块大小 (Chunk size) 或嵌入模型 (Embedding model),某些类型的查询也完全无法生效。这并非调优问题 —— 而是架构上的不匹配。向量相似度与图遍历是两种根本不同的检索机制,随着查询复杂度的增加,这种差异会变得愈发关键。

这不是一篇推荐“两者兼顾”的文章。在实际应用中需要进行真正的权衡,选择失误会耗费数月的工程时间。以下是这种选择在实践中的真实面貌。

LLM 本地开发循环:在不耗尽 API 预算的情况下实现快速迭代

· 阅读需 12 分钟
Tian Pan
Software Engineer

大多数构建 LLM 应用的团队在第三周左右都会发现同样的问题:每次有人运行测试套件时,它都会发起实时 API 调用,消耗真金白银,耗时 30 多秒,且每次运行返回的结果都不尽相同。在原型阶段感觉良好的“直接调用 API”方法,现在变成了迭代速度的沉重负担——而且是账单上的一项重要支出。一个工程团队审计了他们每月的 API 支出,发现 2,847 美元中有 1,240 美元(43%)是由于开发和测试流量不必要地访问实时端点而产生的纯粹浪费。

解决方案不是停止测试,而是从一开始就构建正确的开发循环——让快速路径既便宜又具有确定性,而将慢速路径(真实的 API 调用)留给真正需要的时刻。

模型弃用就绪:在 90 天倒计时之前审计你的行为依赖

· 阅读需 10 分钟
Tian Pan
Software Engineer

当 Anthropic 去年废弃一个 Claude 模型时,一家公司察觉到了——但这仅仅是因为下游解析器在生产环境中开始报错。罪魁祸首?新模型偶尔会将其 JSON 响应包裹在 Markdown 代码块中。旧模型从不这样做。没人记录过这一假设,也没人对此进行过测试。修复只花了一个下午;诊断却花了三天。

这种模式——无声的行为依赖在生产环境中“震耳欲聋”地崩盘——是模型迁移中典型的失败模式。你更新了模型 ID,跑了一个简单的冒烟测试(sanity check),然后发布。六周后,一些细微的问题出现了。你的 JSON 解析失败率提高了 0.6%。边缘情况下的拒绝率翻了一番。你的结构化提取漏掉了一个以前能可靠填充的字段。差异不在代码中——而在模型的行为中,而你从未为此编写过契约(contract)。

随着主要供应商现在的废弃周期缩短至 60–180 天,且模型发布的速度在加快,这已不再是一个理论上的担忧。这是一个周期性的运营挑战。以下是如何提前应对的方法。

生产环境中的模型路由:当路由器成本超过节省时

· 阅读需 11 分钟
Tian Pan
Software Engineer

某中型 SaaS 公司的团队六个月前部署了一套模型路由器,目标明确:不再为 70% 的简单查询和格式转换任务支付前沿模型的高昂费用。他们运行了三个月,直到有人做了一道算术题。总推理成本上涨了 12%。

路由器本身并不贵——一个轻量级分类器,每个请求增加约 2ms 的开销。但分类器的决策边界校准有误:它将 60% 的查询升级到了昂贵模型,而非预期的 30%。那 40% 在本地处理的请求质量较差,导致用户重试率上升,进而拉高了总请求量。路由器的遥测数据显示"路由运行正常",因为它确实在路由——只是路由得不好

这种失败模式远比成功案例更为普遍。以下是如何构建真正能省钱的路由系统。

真正能阻断 PR 合并的提示词回归测试

· 阅读需 12 分钟
Tian Pan
Software Engineer

问任何一个 AI 工程团队是否测试了他们的提示词,他们都会说"是的"。再问一句:一个有问题的提示词能否让 PR 失败并阻断合并?房间里会安静很多。对大多数团队而言,诚实的答案是否定的 —— 他们偶尔会跑一些评估笔记本,也许有一份记录已知提示词问题的共享 Notion 文档,以及一种模糊的感觉:事情比以前更糟了。那不是测试,那是在碰运气。

这个差距的存在,是因为提示词测试在感觉上与单元测试有本质区别。代码要么行为正确,要么不正确。提示词的输出处于一个连续谱上,输出是非确定性的,而且运行足够多的样本以建立信心会花费真金白银。这些都是真实的约束,但没有一个是无法克服的。那些建立了真正阻断合并的提示词 CI 的团队,并不是在每次构建上花费五十美元 —— 他们在三分钟以内、花费不到一美元的情况下完成运行,这得益于几个让这个问题变得可处理的设计决策。

检索债务:为何你的 RAG 流水线会悄然退化

· 阅读需 11 分钟
Tian Pan
Software Engineer

你的 RAG 流水线上线六个月后,某些东西悄然改变了。用户没有大声投诉,但对答案的信任度正在下降。反馈评分从 4.2 跌至 3.7,一些支持工单提到了"过时信息"。你的工程师检查日志,没有错误、没有超时、没有明显的回归。检索流水线在你配置的每一个指标上看起来都很健康。

但事实并非如此。它正在腐烂。

检索债务是向量索引中积累的技术性衰退:不再代表当前文档内容的过期嵌入、污染搜索结果的已删除记录产生的墓碑块,以及索引语料库时使用的编码器版本与当前计算查询嵌入的编码器版本之间的语义漂移。与代码腐烂不同,检索债务不会产生堆栈跟踪,它产生的是带有自信引用的微妙错误答案。

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

· 阅读需 13 分钟
Tian Pan
Software Engineer

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

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

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

沉默的回归:如何在不失去用户信任的情况下传达 AI 行为变化

· 阅读需 10 分钟
Tian Pan
Software Engineer

你的高级用户就是你的金丝雀。当你发布新的模型版本或更新系统提示词时,整体评估指标会向上走——任务完成率提升,幻觉评分下降,A/B 测试宣告胜利。随后,你最老练的用户开始提交 bug 报告:"以前它就直接做 X,现在先给我说一堆。""格式变了,导致我的下游解析器报错了。""我没法让它保持角色了。"他们不是在臆想。你发布了一次回归,只是仪表盘里没有显示出来。

这正是 AI 产品开发的核心悖论:受行为漂移伤害最深的用户,恰恰是那些在理解系统特性上投入最多的人。他们围绕特定的输出模式构建了工作流,他们学会了哪些提示词能可靠地触发哪些行为。当你更换模型时,不只是发布了更新——你悄悄地让他们数月的校准工作失效了。

大规模 AI 辅助代码库迁移:自动化处理那些没人想碰的升级

· 阅读需 13 分钟
Tian Pan
Software Engineer

当 Airbnb 需要将 3,500 个 React 测试文件从 Enzyme 迁移到 React Testing Library 时,他们估计该项目需要 1.5 年的人力。通过使用 LLM 驱动的流水线,他们仅用 6 周就完成了交付。当 Google 研究了一个由 3 名开发人员在 12 个月内执行的 39 次不同代码迁移(595 次代码更改,93,574 次编辑)时,他们发现 74% 的编辑是由 AI 生成的,其中 87% 的编辑在没有人工修改的情况下就被提交了,整体迁移时间缩短了 50%。

这些数字是真实的。但这也是事实:在这些迁移过程中,工程师花费了大约 50% 的时间来验证 AI 的输出——修复上下文窗口故障、清理幻觉生成的导入,以及理顺测试未能捕捉到的业务逻辑错误。效率的提升是真实的,痛点也是真实的。问题不在于 AI 是否属于代码迁移;而在于准确了解它在何处提供帮助,以及在何处创造的清理工作超过了它所节省的时间。