跳到主要内容

861 篇博文 含有标签「insider」

查看所有标签

模型弃用就绪:在 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 是否属于代码迁移;而在于准确了解它在何处提供帮助,以及在何处创造的清理工作超过了它所节省的时间。

AI 生成代码的维护陷阱:团队在六个月后才发现的真相

· 阅读需 12 分钟
Tian Pan
Software Engineer

这种规律在 2023 年和 2024 年采用编程智能体的团队中几乎普遍存在。第一个月,效率翻倍。第三个月,管理层把生产力指标拿出来,作为 AI 投资回报的证据。到了第十二个月,工程团队有一半的代码库已无法向新员工解释清楚,重构成本高得令人望而却步,工程师花在调试 AI 生成代码上的时间,比他们手写这些代码所需的时间还要多。

这不是一个关于 AI 代码暗中存在缺陷的故事。这是一个关于 AI 生成代码的质量特征如何系统性地瓦解团队已有的组织实践的故事——以及这些实践在技术债务复利失控之前需要如何改变。

AI 轮值:当你的系统在“思考”时,该针对什么发告警

· 阅读需 13 分钟
Tian Pan
Software Engineer

一个运行多智能体市场调研流水线的团队花了 11 天时间观察他们的系统正常运行——绿色的仪表盘、零错误、正常的延迟——而 4 个 LangChain 智能体却在无限循环中互相博弈。等到有人扫了一眼账单仪表盘时,这一周 127 美元的预估成本已经变成了 47,000 美元。这些智能体从未崩溃。API 从未返回过错误。每一个基础设施告警都保持沉默。

这就是 AI Oncall 的核心问题:你的系统在运维层面可以显示为绿色,但在其本应完成的任务上却发生了灾难性的失败。传统的监控旨在检测崩溃、延迟飙升和错误率。AI 系统可以在满足所有基础设施 SLO 的同时,悄无声息地产生错误输出、无限期地循环执行任务,或者在不产生任何有用结果的情况下消耗数千美元的计算费用。错误代码的缺失并不代表结果的正确。

当每个人都拥有 AI 编程助手:那些无人提醒你的团队动态

· 阅读需 12 分钟
Tian Pan
Software Engineer

一个由十二名工程师组成的团队热情地采用了 AI 编程工具。六个月后,每位工程师合并的 Pull Request (PR) 数量几乎翻了一番。工程经理为此欢欣鼓舞。随后,值班轮换开始频繁报警。调试过程的持续时间延长了一倍。没有人能解释为什么某个特定模块要采用那样的结构。编写它的工程师诚实地回答道:“我不知道 —— 这大部分是 AI 生成的,看起来没问题。”

这种情景正在各地的公司上演。个人生产力的故事是真实的:开发人员更快地完成任务,编写更多的测试,更高效地清理积压工作。但团队层面的情况则更为复杂,大多数组织尚未为此做好准备。

AI 接班人计划:当了解提示词的团队离开时会发生什么

· 阅读需 13 分钟
Tian Pan
Software Engineer

负责构建客户支持 AI 的工程师离职去迎接新工作了。在他们的最后一天,你进行了一次离职面谈,并要求他们记录下所知道的一切。他们写了几段文字来解释系统的工作原理。六个月后,客户满意度评分开始下降。有人建议微调系统提示词(system prompt)的语气。另一位工程师进行了修改,运行了几次手动测试,然后上线了。三周后,你发现原始系统提示词中的一个特定措辞其实起到了没人知道的关键支撑作用——它是防止模型在周五下午过度升级工单的唯一机制,这是最初的工程师注意到并用一句话悄悄修复的模式。

没有人知道那句话的存在是有原因的。它看起来像是实现细节,但实际上是组织知识(institutional knowledge)。

AI 用户调研:在编写第一个 Prompt 之前,用户真正需要的是什么

· 阅读需 12 分钟
Tian Pan
Software Engineer

大多数团队决定开发一个 AI 功能,然后询问用户:“你想要这个吗?”用户说想。功能发布了。三个月后,周活跃用户(WAU)停留在 12% 且不再增长。复盘时将其归咎于实现或采用,但真正的失败在写下第一行代码之前就发生了——那就是在那些看起来很周全但方法论上存在缺陷的用户调研阶段。

核心问题在于:用户无法准确预测他们对从未体验过的能力的偏好。这并非小瑕疵。一项关于 AI 写作辅助的研究发现,基于用户表达的偏好设计的系统仅达到了 57.7% 的准确率——实际上表现甚至不如那些完全忽略用户表达偏好的原始基准方案。你可以进行长达数周的用户调研冲刺,收集广泛的定性反馈,但最终做出的产品却没人使用——这并非尽管做了调研,而是在一定程度上正是因为调研的开展方式所致。