跳到主要内容

129 篇博文 含有标签「production-ai」

查看所有标签

工具清单的谎言:当你的 Agent 信任一个后端已不再遵循的 Schema 时

· 阅读需 11 分钟
Tian Pan
Software Engineer

生产环境 Agent 中最危险的 Bug 不是那些会抛错的 Bug。而是这种:工具描述写着 returns user_id,但后端在两个 Sprint 前悄悄开始返回 account_id,而模型在后续推理中仍在愉快地凭空捏造 user_id —— 因为清单(manifest)是这么写的,Few-shot 历史加强了这一点,而且循环中没有任何环节去获取真实情况(ground truth)。

这就是清单漂移(manifest drift):工具描述所声称的内容与端点实际行为之间缓慢且无声的分歧。它很少产生堆栈跟踪(stack traces)。它产生的是带有干净审计线索的错误决策 —— 这是 Agent 系统中最糟糕的一类 Bug。

归因鸿沟:如何将用户投诉追溯到具体的模型决策

· 阅读需 13 分钟
Tian Pan
Software Engineer

一张支持工单送达:「你们的 AI 对我的保险条款给出了完全错误的建议。」你查看日志,找到了时间戳和用户 ID,最终模型响应也原文呈现在那里。但你根本不知道是哪个提示词版本产生了这条输出、检索步骤取回了哪些上下文片段、中间是否调用过工具,也不知道你过去一个月部署的三个模型版本中究竟是哪个处理了这个请求。你能读到输出,却无法解释它。

这就是归因鸿沟——大多数 AI 团队在首次上线模型功能后六到十八个月都会撞上这道墙。问题不在模型或提示词,而在可观测性基础设施。传统日志记录的是请求-响应对,而 LLM 流水线并非请求-响应对,它是一棵决策树:上下文检索、提示词组装、可选工具调用、模型推理、后处理、条件分支。出现问题时,你需要看到完整的树,而不仅仅是叶子节点。

受监管行业的 AI 合规基础设施:大语言模型框架没能提供给你的东西

· 阅读需 12 分钟
Tian Pan
Software Engineer

在受监管行业部署 LLM 的大多数团队都会以惨痛的方式发现他们的合规差距:审计员出现并要求提供特定日期哪个文档影响了某个特定输出的完整日志,而团队却无法给出答案。这并不是因为系统没有记录——它记录了——而是因为 LLM 调用的文本日志并不等同于具有防篡改证据的审计追踪,而 LLM API 的响应主体也不等同于输出溯源(Output Lineage)。

金融、医疗和法律领域不仅仅是消费类软件的“更严格”版本。它们需要通用 LLM 框架从未设计的底层基础设施原语:不可变事件链、单次输出溯源、拒绝处置记录(Refusal Disposition Records)以及结构化可解释性钩子。目前流行的编排框架都没有提供这些开箱即用的功能。本文介绍了这种架构差距,以及如何在不重构整个技术栈的情况下弥补这一差距。

AI 功能生命周期衰减问题:如何在用户发现之前捕捉到性能下降

· 阅读需 11 分钟
Tian Pan
Software Engineer

你的 AI 功能上线一切顺利。演示令人印象深刻,发布指标看起来很好,模型在测试集上的基准准确率达到了 88%。大约三个月后,一位客户成功经理转发了一张截图。AI 推荐结果毫无道理。你查看日志,进行快速评估,发现准确率已经漂移到 71%。没有任何警报触发,没有抛出任何错误。整个过程中基础设施监控面板一直显示绿色。

这种情况并非偶发。对 32 个生产数据集的研究发现,91% 的机器学习模型会随时间降级,而且大多数降级是悄无声息的。系统继续运行,代码没有变化,但随着现实世界不断演进而模型原地踏步,预测结果越来越差。

AI 事故复盘:当「模型导致的」成为根本原因

· 阅读需 11 分钟
Tian Pan
Software Engineer

一家航空公司的客服 AI 告诉一位旅客,他可以先购买全价机票,事后再申请丧亲优惠折扣。旅客信以为真,飞行后提交了申请,却遭到公司拒绝。仲裁庭最终判决公司须赔偿 650 美元——因为法律上并无区分人类员工与聊天机器人所给建议的规定。那个聊天机器人并未崩溃,没有任何告警触发,p99 延迟也未见异常。系统在「正常运行」。

这正是 AI 事故的典型特征:应用程序并未报错——它成功地、自信地、大规模地生成了错误输出。 而当你坐下来撰写事后分析报告时,经典的工具箱便彻底失灵了。

对话状态不仅仅是一个聊天数组:面向生产环境的多轮会话设计

· 阅读需 12 分钟
Tian Pan
Software Engineer

大多数多轮 LLM 应用将对话历史存储为消息数组。这在演示(demo)中表现良好。但在生产环境中,它会以需要数天才能诊断出的方式崩溃,因为这些故障看起来更像是模型的问题,而非基础设施的问题。

用户在对话中途断开连接,并重新连接到不同的服务器实例——会话消失了。智能体(agent)在处理复杂任务时进入第 47 轮,载荷悄无声息地超过了上下文窗口——没有报错,只有错误的回答。产品经理问道:“我们可以让用户从第 3 步开始尝试不同的方法吗?”——而工程侧的回答是“不,按照我们的构建方式不行”。这些都不是极端情况,而是将对话状态视为瞬态数组(transient array)而非一等资源(first-class resource)的必然结果。

跨语言幻觉:为什么你的大模型在它不擅长的语言中更容易撒谎

· 阅读需 11 分钟
Tian Pan
Software Engineer

你的模型在评测集上得分92%,但说法语的用户却不断抱怨它在胡说八道。这两件事可以同时为真——而它们之间的差距,是多语言AI系统在构建和评测方式上的结构性问题。

LLM在非英语语言中的幻觉率比英语高出15–35%。在斯瓦希里语或约鲁巴语等低资源语言中,针对同样的事实类问题,性能差距可扩大至38个百分点。然而,大多数团队在推出多语言AI功能时,只使用英语评测套件,汇报掩盖问题的聚合基准分数,直到巴黎或孟买的用户开始提交工单才发现问题。

跨语言幻觉问题本质上不是模型质量问题,而是一种测量与架构失误——团队将多语言AI视为"英语AI加上翻译模块"而一再延续这一失误。

Prompt 工程无法突破的数据质量天花板

· 阅读需 12 分钟
Tian Pan
Software Engineer

一家电信公司花了数月时间调优其客服聊天机器人的 Prompt。他们反复迭代系统指令、Few-shot 示例和思维链格式,但幻觉率始终顽固地维持在 50% 以上。后来他们审计了知识库,发现其中充斥着已下线的服务套餐、过时的账单信息,以及相互矛盾的重复政策文件。修复数据之后——而不是修改 Prompt——幻觉率骤降至接近零。Prompt 工程无法解决的问题,三周的数据清理就做到了。

这就是数据质量天花板:当 LLM 系统的输入数据存在噪声、过时或前后矛盾时,会出现一道性能硬墙,任何 Prompt 迭代都无法突破。这是生产环境 AI 最常见的失效模式之一,也是最被系统性低估的一种。撞上这堵墙的团队,往往还在不停拨弄 Prompt 旋钮,而问题的根源其实在上游。

最后一公里可靠性问题:为何 95% 的准确率往往意味着 0% 的可用性

· 阅读需 10 分钟
Tian Pan
Software Engineer

你构建了一个 AI 功能。你跑了评估。你在测试集上看到了 95% 的准确率。你上线了。六周后,用户对它深恶痛绝,你的团队正在悄悄计划回滚。

这就是最后一公里可靠性问题,它很可能是当今生产环境中 AI 功能失败最常见的原因。这与你的模型不好无关,而与平均准确率指标如何掩盖失败分布有关——以及某些失败无论其统计频率如何都会带来高昂代价。

为什么你的 LLM 告警总是迟到两周

· 阅读需 12 分钟
Tian Pan
Software Engineer

大多数团队发现其 LLM 性能下降通常是在两周后,当时有人在 Slack 上发消息问:“嘿,有人注意到最近 AI 的输出似乎不太对劲吗?”到那时,损害已经造成:用户已经形成了负面印象,支持工单不断累积,而最初推动该功能的业务负责人也正在悄悄失去信心。

令人沮丧的是,你的基础设施在这段时间内一直非常健康。HTTP 200 状态码、180 毫秒的 p50 延迟、每次请求 0.04 美元的成本——仪表盘上的一切都显示为绿色。模型只是变得更安静、更模糊、更简短且更犹豫,而这些表现是基础设施监控无法察觉的。

这不是通过增加 Datadog 仪表盘就能弥补的监控漏洞。它需要一套完全不同类别的指标。

模型最确定的时候往往最容易出错:生产中的LLM置信度校准

· 阅读需 10 分钟
Tian Pan
Software Engineer

有一种故障模式会在团队解决了幻觉过滤、输出解析、重试逻辑等较容易的问题之后反复出现:模型给出听起来很自信的错误答案,基于置信度的路由逻辑信任了这些错误答案,系统在生产中悄无声息地出现异常,而评估仪表板看起来一切正常。

这不是提示词问题,而是校准问题,它根植于现代LLM的训练方式之中。

模型弃用本质上是系统迁移:如何应对模型供应商的停用计划

· 阅读需 13 分钟
Tian Pan
Software Engineer

一家运行生产级 AI 分诊助手的医疗保健公司收到了一封令所有团队都心生畏惧的邮件:他们的推理服务商将在 90 天后停用他们正在使用的模型。他们更新了模型字符串,进行了快速的手动冒烟测试,然后发布了替代版本。三周后,新模型开始主动提供未经请求的诊断意见。Token 使用量暴增了 5 倍。整个 Prompt 模板由于新模型对指令表述的解读不同而失效。由于输出 Schema 发生了偏移,JSON 解析也宣告失败。

这并非个案。如果你仅仅将模型停用视为一种配置变更,而不是一次系统迁移,那么这就是你在模型停用周期中的常态体验。