跳到主要内容

639 篇博文 含有标签「llm」

查看所有标签

AI 原生日志:捕获决策过程,而不仅仅是 I/O

· 阅读需 11 分钟
Tian Pan
Software Engineer

一个客服 Agent 在 12% 的工单中生成了幻觉式的故障排查步骤。HTTP 日志全部显示 200 OK。延迟正常。错误率平稳。从每一项传统指标来看,系统都是健康的——但它却在大规模地悄悄捏造答案。

当工程师最终对决策层进行插桩后,根本原因在几分钟内便浮出水面:检索到的文档块相似度得分全部低于 0.4,对上下文的置信度为 0.28,而模型输出的置信度却显示为 0.91。这是一个巨大的不匹配——在传统日志中完全不可见,但在捕获了决策状态的追踪中一目了然。

这就是将传统日志应用于 LLM 系统时的根本问题。I/O 日志告诉你系统运行了。AI 原生日志告诉你它是否推理正确。

AI 入职差距:为什么工程师无法学习他们无法测试的东西

· 阅读需 12 分钟
Tian Pan
Software Engineer

一名新工程师加入了一个重度依赖 AI 的团队。入职第三天,他们发现系统指令中有一个措辞别扭的双重否定。看起来像是个 bug。于是他们把它清理了——这是任何合理的人都会做的小小优化。两小时后,一条关键流水线的客户端分类准确率从 91% 跌至 74%。没有人知道原因。

这种情景以某种形式发生在几乎每一个基于 LLM 构建系统的团队中。新工程师并不粗心。那个提示词看起来确实有问题。但那个双重否定在某种意义上是"承重墙"——只有写下它的人才真正理解,而那是在经过数周实验之后才领悟到的。他们从未把这种理解写下来。

这就是 AI 入职差距:AI 代码库表面上的行为与实际行为之间的鸿沟,以及为什么这个鸿沟在有人掉进去之前是不可见的。

AI 流水线异常处理:幻觉、拒绝和格式违规是一等公民错误

· 阅读需 11 分钟
Tian Pan
Software Engineer

你的 AI 流水线昨晚报告了零错误。但输出结果完全是错的。

这不是假设。一份近期的行业报告发现,大约每 20 个生产环境 LLM 请求中,就有 1 个以永远不会触发异常的方式失败——HTTP 200、格式正确的 JSON、流畅的散文,但内容却是错的。可观测性系统保持绿灯,而流水线却在悄悄地欺骗用户。

根本原因是一个从传统服务工程中借来的架构假设:HTTP 状态码和解析错误覆盖了所有故障空间。但事实并非如此。LLM 流水线至少有四种底层基础设施看不到的故障类型——幻觉、拒绝、格式违规和上下文溢出——把它们当作边缘情况而非一等公民错误类型来处理,正是生产 AI 系统如何大规模传播隐性 Bug 的根源。

复合幻觉问题:多阶段 AI 流水线如何放大错误

· 阅读需 12 分钟
Tian Pan
Software Engineer

大多数关于幻觉的研究都集中在单次模型调用的输出上。这种框架忽略了一个更可怕的问题:在四阶段的工作流(pipeline)中,如果每个阶段都无条件地信任前一个阶段的输出,会发生什么。第一阶段中一个虚构的事实不仅会持续存在,还会成为后续每一次推理的承重前提。到第四阶段,工作流会给出一个自信且逻辑自洽的答案,但结果却是完全错误的。

这不是一个可以通过更强大的模型来解决的能力问题。这是一个系统架构问题,需要从系统层面进行修复。

上下文压缩失真:你的摘要中间件在悄悄丢失什么

· 阅读需 11 分钟
Tian Pan
Software Engineer

你的智能体在第三轮对话时明确说过"绝对不要使用 eval()"。到了第三十轮,它调用了 eval()。你的保险处理系统规定"未经有效身份验证,不得批准理赔"。经过十五个压缩周期后,它批准了一笔。这些不是模型失败——是压缩失败。智能体的推理本身没有问题,是摘要中间件把那条唯一关键的约束丢掉了。

上下文压缩如今已成为长时运行智能体系统的标准基础设施。当对话历史增长到超出上下文窗口时,你就会进行压缩——把旧的轮次汇总成摘要,进行修剪、分块或精炼。问题在于,现代摘要器并不是随机破坏信息,而是可预测地沿着特定的断裂线破坏信息,而大多数团队只在生产环境中才发现这些断裂线。

上下文长度军备竞赛:为什么填满窗口是错误的目标

· 阅读需 8 分钟
Tian Pan
Software Engineer

每隔六个月,就会有一款配备更大上下文窗口的模型问世。GPT-4.1 达到了 100 万 Token,Gemini 2.5 紧随其后,达到 200 万,而 Llama 4 如今更是号称支持 1000 万 Token。隐含的承诺是:把所有内容都塞进去,不用再纠结该放什么,让模型自己搞定。

这个承诺在生产环境中站不住脚。一项 2024 年针对 18 个主流 LLM 的研究发现,随着输入长度增加,每一个模型的性能都出现下降——不是某些模型,而是每一个。上下文窗口是天花板,而非地板。把它当作地板来用的团队,正在以痛苦的方式发现这一点。

上下文限制是一个 UX 问题:为什么静默截断会侵蚀用户信任

· 阅读需 9 分钟
Tian Pan
Software Engineer

用户与 AI 助手进行了一个小时的长代码会话。他们建立了规范,分享了代码库上下文,并详细描述了一个多文件重构方案。接着,在第 40 条消息左右,AI 开始给出忽略其“已知”一切的建议。它推荐了一个用户二十分钟前已经拒绝的方案。当被追问时,它显得很困惑。

没有显示任何错误。没有出现任何警告。模型只是静默地丢弃了较早的消息,以为新消息腾出空间——而用户得出的结论是,该 AI 不可靠。

这不是模型失败。这是产品设计失败。

上下文窗口是一个 API 界面:像对待合约一样对待你的提示词结构

· 阅读需 11 分钟
Tian Pan
Software Engineer

在一个生产环境中的 LLM 功能上线半年后,一名工程师提交了一个 bug:模型在上个季度的某个时间点开始给出错误的输出。没人记得改过提示词(Prompt)。Git blame 显示它为了“提高可读性”被清理过。之前的版本已经找不到了。调试工作只能从零开始。

就在这一刻,团队才发现他们的上下文窗口(context window)从未被真正工程化过——它只是被拼凑出来的。

上下文窗口是你的系统与模型之间的契约。进入其中的每一个标记(token)——系统指令、检索到的文档、对话历史、工具架构、用户查询——都是对一个函数调用的输入,这个调用既费钱又耗时,且会产生非确定性的输出。然而,大多数团队将上下文组合视为实现细节,而非 API 表面。提示词被就地编辑,没有版本控制。各部分通过累加增长。没有人负责布局。变化在无声无息中传播。调试体验比 LLM 时代之前的任何东西都要糟糕,因为至少堆栈跟踪(stack traces)会告诉你什么是改变了的。

对话感知的速率限制:为什么逐请求限流会破坏多轮 AI

· 阅读需 11 分钟
Tian Pan
Software Engineer

你的 AI 功能在测试中运行完美。单轮问答,毫无问题。但在生产环境中,当真实用户进行一场 10 轮调试对话时,它却失败了——不是因为模型出了问题,而是因为你的速率限制器是为一个完全不同的世界设计的。

标准 API 速率限制是专为无状态 REST 调用设计的粗糙工具。每个请求被视为一个独立的、大致等量的消耗单元。对于 CRUD 端点而言,这种模型运行良好,因为每次调用确实具有可比性。但对于多轮对话,这种模型就行不通了——每一个后续轮次的成本都在递增,一次用户交互可能触发数十次内部模型调用,而会话中途被切断造成的损害,远比一次失败的单次查询严重得多。

数据敏感级别模型路由:管控哪个模型能看到哪些数据

· 阅读需 13 分钟
Tian Pan
Software Engineer

你的 AI 系统在上午 9 点将一条患者查询路由到了自托管模型。上午 11 点,该模型的 Pod 在部署时重启。请求队列积压,路由器检测到超时,随即回退到你用于通用查询的云端 LLM。请求成功完成,没有告警触发,监控面板一片绿色。而就在这次交互中,受保护的健康信息悄然流向了一个你根本没有签署《业务伙伴协议》的供应商。

这不是假设,而是几乎所有未经专门设计来防范此类问题的 AI 路由栈的默认行为。

端到端延迟并非你的 LLM 调用 P99:代理系统中无人衡量的隐藏乘数

· 阅读需 11 分钟
Tian Pan
Software Engineer

你的 LLM API 调用在 P99 分位下于 500 毫秒内完成。但你的用户却在等待 12 秒。这两个数字都是准确的,谁都没有撒谎——它们只是在测量完全不同的东西。两者之间的差距正是大多数 Agent 系统性能无声流失的地方,而且大多数团队从未对其进行过监控(instrumentation)。

问题是结构性的:P99 LLM 延迟是一个应用于多步执行模型的单次调用指标。一个 ReAct Agent 进行五次连续的工具调用、重试一个幻觉化的函数、组装不断增长的上下文并生成 300 个 token 的推理链,这并不是一次 LLM 调用。这是一个分布式工作流,其中 LLM 只是一个节点,而其他每个节点都有其自身的延迟开销。

评估疲劳周期:为何AI质量度量在上线后走向崩溃

· 阅读需 10 分钟
Tian Pan
Software Engineer

AI评估的命运遵循着一条可以预测的弧线。冲刺零阶段:所有人都认同评估至关重要。上线周:套件运行顺畅,演示效果完美。第六周:CI任务开始被跳过。第十周:有人调高了失败阈值以消除告警。第四个月:绿色仪表盘已毫无意义,人人心知肚明,却无人点破。

这就是评估疲劳周期,它几乎普遍存在。尽管业界在自动化评估工具上持续投入多年,其市场渗透率仍仅有38%——这意味着大多数团队依然依赖人工审查作为主要的质量门控。当下一个模型版本升级,或本周Prompt已是第三次更改时,这些人工审查往往第一个被牺牲掉。