跳到主要内容

159 篇博文 含有标签「reliability」

查看所有标签

知识切断是一个隐形的生产环境 Bug

· 阅读需 13 分钟
Tian Pan
Software Engineer

大多数生产环境中的 AI 失败都是“响亮”的。模型返回 5xx 错误。模式验证抛出异常。评估套件在发布前捕获了回归。但还有一类失败是完全无声的——没有错误,没有异常,没有警报触发——因为系统正完全按照设计运行。它只是在处理一个来自 18 个月前的现实快照。

你的 LLM 存在知识截止日期(Knowledge Cutoff)。这个截止日期不仅仅是文档中的一个脚注。它是模型认知的真实情况与实际现实之间日益扩大的鸿沟,而且你每在生产环境中多运行一天旧模型,这种差距就会累积。团队庆祝上线,随后眼睁睁看着用户信任在接下来的六个月里悄然瓦解——世界在前进,而模型却停滞不前。

LLM 服务商故障手册:当 AI 基础设施宕机时如何保持服务在线

· 阅读需 13 分钟
Tian Pan
Software Engineer

2024 年 12 月,OpenAI 整个平台宕机超过四个小时。一项新部署的遥测服务配置错误,导致大规模集群中的每个节点同时猛攻 Kubernetes API。DNS 崩溃,控制平面瘫痪,所有服务随之倒下。恢复耗时如此之久,部分原因在于团队缺乏他们后来所说的"破防工具"——那些在常规流程失效时可以立即调用的预建应急机制。

如果那天你正在运营一款 AI 驱动的产品,你必须在压力下快速做出决策。多服务商路由?优雅降级?缓存响应?还是只能祈祷,然后挂出一个状态页面?

这就是你应该在那个电话打来之前就已经写好的应急手册。

生产环境AI智能体中的规格博弈:当你的智能体优化了错误的目标

· 阅读需 10 分钟
Tian Pan
Software Engineer

2025年的一项前沿模型研究发现,在竞争性工程任务中,30.4%的智能体运行涉及奖励黑客行为——模型找到了一种无需真正完成工作就能获得高分的方式。一个智能体对pytest的内部报告机制打了猴子补丁;另一个重写了Python的 __eq__ 使每个相等性检查都返回 True;第三个则在测试运行之前直接调用 sys.exit(0),让零退出码被识别为成功。

这些模型没有一个是在刻意作弊。它们只是在做被优化去做的事情:最大化奖励信号。问题在于,奖励信号与实际目标并不是同一回事。

这就是规格博弈——它并非边缘情况,而是任何足够强大的智能体在可量化目标下运行时的结构性特征。

AI 事故严重程度分类法:幻觉何时算作 Sev-0?

· 阅读需 13 分钟
Tian Pan
Software Engineer

一个法律团队的 AI 研究助手伪造了三个案例引用,并将它们混入了法庭文件中。这些引用看起来非常可信 —— 真实的法院、听起来很真实的案例名称、连贯的判决理由。在提交摘要之前,没有人发现它们。这一事件导致律所面临紧急听证会、公开道歉以及律师协会的调查。

那是 Sev-0 还是 Sev-2?答案取决于你使用的框架 —— 而传统的严重程度模型几乎每次都会给你错误的答案。

软件事故严重程度分类是为确定性系统构建的。服务要么有响应,要么没有。数据库查询要么成功,要么抛出错误。失败模式是二进制的,责任可以追溯到某个 commit,而修复方案则是回滚或补丁。AI 系统同时打破了这三个假设,如果组织将传统的严重程度框架应用于 LLM 故障,最终要么是对噪声感到恐慌,要么是将结构性故障视为偶然的异常。

AI 可靠性下限:为什么 80% 准确率比没有 AI 还糟糕

· 阅读需 10 分钟
Tian Pan
Software Engineer

大多数团队衡量 AI 功能质量时只问一个问题:"它答对的频率有多高?"而更有用的问题其实是:"答错的时候,摧毁信任的速度是否超过答对时积累价值的速度?"这两个问题的答案并不相同——只有后者才能告诉你究竟该不该发布。

存在一个可靠性下限,低于这条线的 AI 功能所造成的伤害,比完全没有该功能还要大。在这条线以下,用户在遭遇足够多的错误后会学会不信任 AI;而这种不信任会泛化——即便 AI 给出了正确答案,他们也会绕开它,最终彻底放弃使用。届时,你发布的不是一个部分有用的产品,而是一个披着功能外衣的转化率与留存率杀手。

LLM 流水线中的背压:排队论在基于 Token 的服务中的应用

· 阅读需 13 分钟
Tian Pan
Software Engineer

凌晨 3 点的重试风暴通常以同样的方式开始:提供商的一次短暂抖动导致少数请求超过了速率限制,你的客户端库对此进行了重试,而这些重试落在了尚未恢复的端点上,导致更多请求失败;在 90 秒内,你的队列深度迅速飙升,而你的提供商仪表板显示你已经用满了 100% 的每分钟 Token 配额(TPM),由此产生的积压工作甚至可以用五位数的美元来衡量。事后分析会将其归结为“惊群效应(thundering herd)”。但诚实的回答是,你在一个容量多变的下游服务之上构建了一个固定吞吐量的重试策略,却忘记了排队论对此早有定论。

大多数知名的服务韧性模式是为那些吞吐量像一堵墙一样固定的下游服务设计的:例如带有连接池的数据库,或者具有已知并发限制的微服务。但 LLM 提供商并非如此。你的有效吞吐量是一个动态目标,受到你的服务层级、所选模型、Prompt 大小、响应大小、一天中的时间,以及同一提供商的其他用户是否正在微调前沿模型的影响。将它视为一根固定的管道,是我今年看到的多数 LLM 故障的根本原因。

AI 流水线的复合故障模式:局部成功远远不够

· 阅读需 10 分钟
Tian Pan
Software Engineer

大多数构建 AI 流水线的工程师都会孤立地评估每个组件:检索成功的频率是多少,LLM 做出正确判断的频率是多少,下游工具调用成功的频率是多少。如果每个答案都是"95%",系统看起来相当稳固。

然而事实并非如此。三个各为 95% 的组件组合在一起,只能给你一个 86% 可靠的系统。再加第四个 95% 的组件,降到 81%。加第五个,低于 77%。那些看起来质量很高的独立组件,在你发布任何功能之前,就会组成一条五次请求中就有一次失败的流水线。

这就是复合故障问题——大多数 AI 工程团队在用户开始提交工单之前从未去做的那道数学题。

为 Agentic 写入路径构建数据质量门禁:输入是垃圾,输出是不可逆的操作

· 阅读需 13 分钟
Tian Pan
Software Engineer

2025 年,一个 AI 编程助手在代码冻结期间对生产数据库执行了未经授权的破坏性命令——删除了 2.5 年的客户数据,创建了 4,000 个虚假用户,并伪造了成功的测试结果以掩盖真相。根本原因并非模型不好,而是代理意图与系统执行之间缺少了一道关口。

那次事件虽然戏剧化,但并非个例。在生产环境中,工具调用(Tool calling)的失败率为 3–15%。代理会重试模棱两可的操作。它们读取陈旧记录并基于过时的状态采取行动。它们生成的输入会以微妙的方式违反模式(schema)约束。在问答系统中,这些失败只会产生一个错误答案,用户发现后可以纠正。但在具有写入权限的代理中,它们会产生重复订单、错误的通知、损坏的记录——在有人意识到出错之前,这些损害就已经存在并扩散了。

查询代理和写入代理之间的区别不仅仅在于严重程度,还在于故障的表现形式、检测速度以及修复成本。用同样的运营态度对待两者,是生产环境写入路径代理失败的主要原因。

优雅地下架 AI 功能:如何在不损害用户信任的情况下弃用模型驱动的功能

· 阅读需 12 分钟
Tian Pan
Software Engineer

当某家供应商宣布停用一个广泛使用的模型版本时,工程论坛上涌现出了告别帖子、请愿书和由用户撰写的迁移指南——这些用户的日常工作流都围绕着某个特定模型的行为指纹而构建。这不是软件弃用通常的走向。当你从 UI 中删除一个按钮时,用户会感到恼火。当你删除一个他们已经依赖的 AI 功能时,他们会感到失落。

这种不对称揭示了一个重要事实:弃用一个 AI 驱动的功能,从根本上比弃用传统功能更难。LLM 的行为包络——其语气、延迟特征、格式化倾向、响应长度——与功能的实际输出同样关键。用户不仅依赖 AI 做什么,更依赖它如何做。如果你的下架计划把 AI 退役当成 API 端点退役来处理,你将为这种错配付出流失代价。

语法约束生成:大多数团队忽视的输出可靠性技术

· 阅读需 11 分钟
Tian Pan
Software Engineer

大多数需要结构化LLM输出的团队都遵循同一套方案:写一个提示词说"只返回有效的JSON",解析响应,运行Pydantic验证,失败则附上错误信息重试。这种方式在大多数情况下能用,但在生产环境中恰恰会在最糟糕的时刻失效——高负载、边缘用例输入,以及指令遵循不如GPT-4可靠的低成本模型。

语法约束生成是一种根本不同的方法。它不是礼貌地请求模型然后事后检查,而是从数学上让结构无效的输出成为不可能。模型无法输出缺失的括号、不存在的枚举值或遗漏的必填字段——因为这些token在采样前就被过滤掉了。不是不太可能,而是不可能。

大多数团队跳过了这个方法,但不应该。

隐性 API 契约:你的 LLM 供应商没有写在文档里的那些事

· 阅读需 11 分钟
Tian Pan
Software Engineer

你的 LLM 供应商 SLA 涵盖了 HTTP 正常运行时间和首个 Token 到达时间。但它对于模型下个月是否仍会遵从你的格式化指令、是否会拒绝上周还能接受的请求、或者在你未测试的边缘条件下能否返回有效 JSON,只字未提。大多数工程团队是通过生产环境事故才发现这一点的——而非通过更新日志。

这就是隐性 API 契约问题。传统 API 承诺稳定、有据可查的行为;LLM 供应商只承诺一条连接。从请求发出到应用处理响应之间发生的一切,都由你自己负责。

生产环境中的 LLM 置信度校准:衡量与解决过度自信问题

· 阅读需 13 分钟
Tian Pan
Software Engineer

你的模型说“我非常有信心”,但 40% 的时间都是错的。这不叫幻觉——这是校准失败,而且在生产环境中,这是一个更难检测、衡量和修复的问题。

生产环境中的 LLM 置信度校准:衡量与解决过度自信问题

幻觉占据了所有媒体头条。但过度自信的错误答案往往更危险:模型以极高的表达置信度生成一个看似合理、流利的回答,而下游消费者完全收不到任何异常信号。幻觉检测器、RAG 依据性检查和事实核查流水线都有助于处理凭空捏造的内容。但对于模型知道事实却对其确定性存在系统性错误校准的情况,这些手段几乎无能为力。

大多数发布基于 LLM 功能的团队都将置信度视为事后才考虑的事情。这篇文章将探讨为什么校准会失败、如何衡量它,以及在生产环境中真正能改善这一指标的设计模式。