跳到主要内容

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

查看所有标签

嵌入刷新问题:像数据库工程师一样运营向量存储

· 阅读需 11 分钟
Tian Pan
Software Engineer

你的RAG流水线正在返回自信、格式良好的答案。大模型的响应看起来很好。然而用户却不断提交工单,说系统给出了错误信息。产品经理调出相关文档——信息六周前就已经更改,但向量索引仍然反映旧版本。没有任何错误抛出,没有任何告警触发。系统只是悄无声息、毫无察觉地给出了错误答案。

这就是嵌入刷新问题,它最终会咬到大多数生产RAG系统。对生产部署的分析显示,超过60%的RAG故障可追溯到知识库中陈旧或过时的信息——不是错误的提示词,不是检索算法失败,而是向量索引中的内容与源数据真实状态之间的简单错位。大多数AI工程师都是吃了亏才发现这个问题的,而大多数数据工程师早就知道如何预防它。

除了大模型供应商:如何评估 AI 服务供应商

· 阅读需 13 分钟
Tian Pan
Software Engineer

大多数工程团队会花费数周时间来评估 LLM 提供商——对延迟进行基准测试、测试准确性、洽谈价格。然后,他们会在一个下午,仅仅根据一个设计精美的落地页和一篇好评博文,就选定了一个观测工具、一个护栏供应商和一个嵌入提供商。这种不对称性是本末倒置的。你的 LLM 提供商可能是一家资本充足且拥有稳定 API 的公司,但其周围的小众供应商通常并非如此。

AI 服务生态系统已经爆发式地增长到了几十个类别:护栏供应商、嵌入提供商、观测与追踪工具、微调平台、评估框架。每个类别都有十家初创公司在争夺同样的企业预算。其中一些会被收购,更多的会倒闭。少数公司会转型,并在发出 90 天通知邮件后弃用你的关键工作流。在没有经过严格评估的情况下基于这个生态系统进行构建,是一种直到演变成生产事故才会出现在你的待办事项中的技术债务。

幻觉并非根本原因:生产环境 AI 的调试方法论

· 阅读需 12 分钟
Tian Pan
Software Engineer

当一名律师在联邦备案文件中引用不存在的法庭案例时,这一事件被广泛报道为“ChatGPT 产生了幻觉”。当一家咨询公司的政府报告中包含虚假脚注时,复盘报告写道“AI 伪造引文”。当一个医疗转录工具在医疗笔记中插入暴力语言时,解释仅仅是“模型产生了幻觉”。在每一个案例中,代价昂贵的失败都被归结为一个由三个词组成的根本原因,这使得修复变得不可能。

“模型产生了幻觉”在 AI 领域等同于在堆栈跟踪中写下“未知错误”。它描述了发生了什么,却没告诉你为什么发生或如何修复。每一次幻觉都有一个可诊断的原因——通常属于四个类别之一——且每个类别都需要不同的工程响应。理解这种区别的团队能够交付可以优雅降级的 AI 系统。而不理解的团队则在不断地通过提示词玩“打地鼠”游戏。

为什么幻觉率不是衡量生产级 LLM 系统的核心指标

· 阅读需 9 分钟
Tian Pan
Software Engineer

你的 LLM 幻觉率是 3%。但你的用户仍然讨厌它。这并不矛盾 —— 而是衡量标准错误的症状。

幻觉率已成为 LLM 质量的默认头条指标,因为它很容易向利益相关者解释,且在基准测试(benchmark)中计算起来非常简单。但在生产环境中,它与用户真正关心的东西相关性很低:任务是否完成、结果是否值得信赖并足以据此行动、以及系统是否为他们节省了时间?

推理服务商向你隐瞒了什么:KV 缓存、批处理与延迟底线

· 阅读需 14 分钟
Tian Pan
Software Engineer

你正在运行一个由 LLM 驱动的应用,你的 p99 延迟为 4 秒。你已经优化了提示词,减少了输出长度,并切换到了流式传输。但这个数字几乎没变。问题不在于你的代码——而是在你无法控制的黑盒内部运作的物理学和排队论。

每个推理服务商在你的第一次 API 调用之前,就已经通过数十项架构决策决定了你应用的性能上限。KV 缓存淘汰策略、连续批处理(continuous batching)调度、分块预填充(chunked prefill)块大小——文档中没有提到这些,你也无法配置,但它们决定了你不得不面对的延迟和成本曲线。

这篇文章将解释推理基础设施内部究竟发生了什么,为什么它会产生不可避免的延迟底线,以及你真正能做的少数几件事。

潜在能力天花板:为什么更大的模型解决不了你的问题

· 阅读需 11 分钟
Tian Pan
Software Engineer

在一个运行时间足够长的 AI 项目中,几乎都会出现一种模式。团队构建了一个原型,演示效果看起来不错,但在生产环境中,输出结果不够一致。有人建议切换到最新的前沿模型——用 GPT-4o 代替 GPT-3.5,用 Claude Opus 代替 Sonnet,用 Gemini Ultra 代替 Pro。有时这会有所帮助,但最终这种方法会不再奏效。团队发现,他们为每次推理支付了 5-10 倍的费用,延迟增加了一倍,而任务准确率仍然停留在 78%,而不是他们需要的 90%。

这就是潜在能力上限(latent capability ceiling):即你所使用的语言模型的原始规模不再是限制因素的临界点。这是一个有经验数据支持的真实现象,大多数团队在遇到它时却浑然不觉——因为“使用更大的模型”这一反射动作成本低、速度快,并且在项目早期往往非常有效。

长会话上下文退化:多轮对话如何变得陈旧

· 阅读需 10 分钟
Tian Pan
Software Engineer

当一个用户的 80 轮支持对话突然开始与其 60 轮前的建议相矛盾时,团队最初将其归咎于 Bug。其实并没有 Bug,只是模型“迷失”了。在所有主流的前沿模型中,多轮对话在相同任务上的表现平均比单轮交互下降了 39%。大多数团队从未衡量过这一点。他们假设上下文窗口的效力大致等同于其 Token 限制所暗示的程度,并据此构建产品。

这种假设在无声无息中出现了错误。长会话不仅仅是变得更慢或更昂贵 —— 它们变得不可靠,而这种不可靠性在用户感到沮丧之前几乎无法被察觉。

长尾覆盖问题:为什么你的AI系统在最关键的地方失败

· 阅读需 12 分钟
Tian Pan
Software Engineer

某医院部署的医疗AI在测试中达到了97%的准确率。它通过了所有内部审查,顺利上线,然后悄然失败——当寄生虫密度低于1%的细胞时,它无法检测出寄生虫感染,而这恰恰是早期干预最为关键的场景。直到一位医生注意到特定患者群体中异常高的漏诊率,问题才得以浮出水面。

这就是长尾覆盖问题。你的聚合指标看起来很好,但系统在最重要的输入上已经损坏。

90% 可靠性之墙:为什么 AI 功能会陷入瓶颈以及该如何应对

· 阅读需 11 分钟
Tian Pan
Software Engineer

你的 AI 功能发布时准确率为 92%。团队举杯欢庆。三个月后,进展陷入停滞 —— 尽管投入了更多数据、更多算力和两次模型升级,错误率却不再下降。听起来很熟悉吗?

这就是 “90% 可靠性之墙”,这并非巧合。它源于三种力量的交汇:边际准确率提升的指数级成本、可消除误差与结构上不可避免误差之间的区别,以及生产环境中故障的复合放大效应 —— 而这些是基准测试永远无法捕捉到的。不了解自己正在与哪种力量对抗的团队,将会浪费数个季度的时间去试图解决那些根本无法解决的问题。

结构化输出不等于结构化思维:大多数团队跳过的语义验证层

· 阅读需 11 分钟
Tian Pan
Software Engineer

一个医疗排班系统从其 LLM 提取层收到了一个合法的 JSON 对象。Schema 验证通过,类型检查通过,必填字段齐全。然而,当下游任务尝试预约时,却发现 end_timestart_time 早了三个小时。两个字段都是格式正确的 ISO 时间戳,没有任何一个违反 schema。预约悄悄失败,患者没有收到任何通知——没有错误,没有告警。

这就是当 schema 验证被误以为是正确性验证时的样子。模型遵循了格式,却没有遵循逻辑。

结构化输出的隐性代价:JSON 模式质量税

· 阅读需 10 分钟
Tian Pan
Software Engineer

大多数团队采用结构化输出,是因为厌倦了用脆弱的正则表达式从模型响应中抽取数据。这个动机合情合理。但他们没料到的是,几个月后当他们真正度量任务准确率时,会发现那次"可靠性提升"同时让推理密集型任务的内容质量下降了 10 到 15 个百分点。语法问题解决了,语义问题却悄然而生。

本文的目的是精确理解这一权衡——约束解码的实际代价是什么、什么时候值得支付这笔税,以及如何在上线前构建评测来判断它是否正在拖累你的系统。

Temperature 是产品决策,不是模型旋钮

· 阅读需 10 分钟
Tian Pan
Software Engineer

每当一个新的 LLM 功能上线,总会有人问:"我们该用多少 temperature?"答案几乎千篇一律:"不知道,留着 0.7 吧。"然后对话结束,没有人再碰这个值。

这是一个用默认值做出的产品决策。Temperature 不只是控制模型听起来有多"随机"——它决定了用户是否信任输出、是否会重新运行查询、是否感到被帮助或被淹没。把它调好比大多数团队意识到的更重要;调错了也很难诊断,因为失败的表现看起来像是模型行为差,而不是配置差。