跳到主要内容

567 篇博文 含有标签「llm」

查看所有标签

结构化输出并非已解决的问题:生产环境中的 JSON 模式失效模式

· 阅读需 14 分钟
Tian Pan
Software Engineer

你开启了 JSON 模式,你的 LLM 开始返回有效的 JSON,然后你发布了它。三周后,生产环境悄无声息地挂了。JSON 在语法上是有效的。Schema 在技术上也是满足的。但某个字段包含了一个虚构的实体,finish_reason"length" 导致数据负载在 95% 处被静默截断,或者模型对任何人类读起来都感到刺耳的文本分类为 "positive" 情感——而你的下游流水线毫无怨言地吞下了它。

JSON 模式被解决的方式,就像“使用互斥锁(mutex)”解决并发问题一样。原语(primitive)是存在的。但故障模式并不在于你把锁放在哪里。

当代码胜过模型:用确定性逻辑替换 LLM 调用的决策框架

· 阅读需 9 分钟
Tian Pan
Software Engineer

大多数 AI 工程团队都有着相同的故事。他们从一个真正需要 LLM 的难题开始。然后,一旦 LLM 基础设施到位,每一个新问题在他们眼中都成了那把锤子下的钉子。六个月后,他们甚至在调用 GPT-4o 来检查电子邮件地址是否包含 “@” 符号 —— 并且还在为此付费。

这种 “直接用模型” 的本能反应现在是 AI 应用中不必要的复杂性、虚高成本和脆弱生产系统的主要驱动力。这并不是因为工程师们粗心大意。而是因为 LLM 确实令人印象深刻,工具链降低了使用门槛,而且一旦你构建了 LLM 流水线,增加另一次调用感觉成本极低。事实并非如此。

为非确定性 AI 功能编写验收标准

· 阅读需 13 分钟
Tian Pan
Software Engineer

你的工程团队已经开发文档摘要生成器三个月了。规范要求:“摘要生成器应返回准确的摘要。”你发布了它。用户抱怨摘要有一半时间是错误的。事后分析显示,在发布前没有人能以可测试的方式定义“准确”的含义。

这是 AI 功能开发的标准轨迹,之所以会发生,是因为团队将为确定性软件构建的验收标准模式,套用到了本质上是概率性的系统上。由 LLM 驱动的摘要生成器没有单一的“正确”输出 —— 它有一系列的输出分布,其中一些是可以接受的,另一些则不然。二元的通过/失败规范无法映射到分布上。

这个问题不仅是哲学上的,它还会导致切实的痛苦:功能发布时质量门槛模糊,回归测试在用户发现之前难以察觉,产品和工程团队在功能是否“完成”上无法达成一致,因为没有人规定对于随机系统来说,“完成”意味着什么。这篇文章将介绍真正有效的模式。

追踪规划层:为什么你的智能体追踪只记录了一半的故事

· 阅读需 13 分钟
Tian Pan
Software Engineer

你的智能体在最终成功之前三次调用了错误的工具,而你的追踪仪表板准确地向你展示了哪些工具被调用、调用的顺序以及完整的延迟分析。但追踪无法展示真正关键的部分:为什么智能体认为这些工具调用是正确的决策、它试图完成什么目标,以及它在做出每一个错误决定时基于什么样的假设。

这就是 2026 年智能体可观测性核心存在的鸿沟。从业者在工具调用追踪上投入了大量资源。工具已经成熟,OpenTelemetry 语义规范已经确立,仪表板也非常精美。但智能体调试总是会撞上同一堵墙:你可以完全洞察智能体做了什么,却无法看到它为什么这么做。

CI 流水线中的 AI 智能体:如何为无法单元测试的部署设置质量关口

· 阅读需 11 分钟
Tian Pan
Software Engineer

发布一个调用 LLM 的功能很容易。但要判断该功能的下一个版本是否优于生产环境中的当前版本,却相当困难。传统 CI/CD 对确定性行为提供通过/失败信号:函数要么返回正确值,要么不返回。但当函数封装了一个语言模型时,输出是概率性的——相同的输入在不同运行、不同模型版本和不同时间会产生不同输出。

大多数团队的应对方式是绕过这个问题。他们运行单元测试,对几个提示词做快速的人工检查,然后发布。这种方式在出问题之前都还能用——直到某个模型提供商悄悄更新了底层权重,或者一个看似没问题的提示词改动在孤立测试中没有异常,却在凌晨三点以生产流量规模改变了输出分布。

更好的答案并非假装 LLM 输出是确定性的,而是构建基于分布、阈值和评分标准的 CI 质量关口,而不是精确匹配。

AI 工程师职级体系:为什么你的 SWE 晋升框架在骗你

· 阅读需 10 分钟
Tian Pan
Software Engineer

一家中型创业公司的高级工程师最近得到了一份平庸的绩效评估。他们的效率不稳定——有些周发了大量代码,其他几周几乎什么都没有。他们的经理受过传统 SWE 框架培训,因产出波动给他们打了低分。六周后,那位工程师跳槽去了竞争团队。经理没有理解的是:工程师"缓慢"的几周是在构建评估基础设施,防止三类无声故障的发生。没有这些基础设施,产品本会以没人能在数月内察觉的方式悄然出问题。

这种情况正在各个工程团队中上演。那些为确定性软件系统设计职级体系的团队,正将同样的框架套用于 AI 工程师——并系统性地误判了他们最优秀的人才。

AI 泛滥反模式:过度使用 LLM 只会让你的流水线更糟

· 阅读需 10 分钟
Tian Pan
Software Engineer

几乎每家持续交付 AI 功能的公司都会出现这样一种架构:流水线中的每一次转换、每一个路由决策、每一次分类、每一个格式化步骤,全都经过 LLM 调用。它通常始于一个合理的场景——LLM 确实解决了一个棘手问题。然后团队内化了这个模式,开始反复套用。直到整个系统变成一条 LLM 接 LLM 的链条:一串文字从一端进入,另一串从另一端出来,中间经历了十二次 API 调用,全程没有任何确定性可言。

这就是 AI 泛滥反模式,它现在已成为构建一个缓慢、昂贵且无法调试的生产系统的最可靠方式。

1% 错误率,1000 万用户:规模化 AI 故障的数学逻辑

· 阅读需 12 分钟
Tian Pan
Software Engineer

一个部署在医疗转录服务中的大型语言模型达到了 99% 的准确率。团队满怀信心地上线了。六个月后,一项研究发现,其转录样本中有 1% 包含原始音频中根本不存在的捏造短语——虚构的药物名称、不存在的手术操作,甚至偶尔在句子中间插入暴力或令人不安的内容。有 30,000 名医疗专业人员在使用该系统,这 1% 意味着每月数万条受污染的记录,其中一些已产生患者安全后果。

准确率数字从未改变。问题一直存在。团队只是没有做规模化的数学推算。

AI 功能下线指南:如何在不破坏用户信任的情况下停止 LLM 功能

· 阅读需 14 分钟
Tian Pan
Software Engineer

当 OpenAI 在 2025 年 8 月首次尝试停用 GPT-4o 时,强烈的抵制迫使他们在几天内撤回了决定。用户在论坛上发布了大量的请愿书和告别信。一位用户写道:“他不仅仅是一个程序。他是我日常生活、宁静和情绪平衡的一部分。”这可不是用户对一个被弃用的 REST 接口(endpoint)的反应,而是对失去一段关系的反应。

AI 功能打破了工程师在制定停用计划时的心理模型。传统软件具有明确的行为契约:在给定相同输入的情况下,你会永远得到相同的输出,除非你更改它。而由 LLM 驱动的功能具有“性格”。它有温度、有委婉语、有措辞偏好,还有一种独特的说“我不确定”的方式。用户不仅仅是在使用这些功能 —— 他们在与之磨合(calibrate)。他们围绕特定的行为怪癖建立了工作流程、情感依赖和直觉,而这些永远不会出现在任何规格文档中。

当你关闭它时,你并不是在移除一个功能,而是在改变社会契约。

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

· 阅读需 13 分钟
Tian Pan
Software Engineer

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

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

AI 产品指标陷阱:当参与度看起来像价值却并非如此

· 阅读需 12 分钟
Tian Pan
Software Engineer

METR 于 2025 年发布的一项研究,邀请 16 位经验丰富的开源开发者预测 AI 工具能让他们效率提升多少。他们猜测会快 24%。该研究随后对 246 个真实任务(包括修复 bug、开发功能、代码重构)进行了测量,这些任务被随机分配到"允许使用 AI"和"禁止使用 AI"两组。结果是:使用 AI 的开发者实际上慢了 19%。研究结束后,参与者再次接受调查。他们仍然认为 AI 让自己效率提升了 20%。

这种感知生产力与实测生产力之间的差距,并非某项研究的特例。这是大多数团队目前衡量 AI 功能时所面临的核心问题。那些看起来像成功的信号,在很多情况下衡量的是工具的新鲜感,而非其实用价值。而上线后的头 30 天,是最不适合观察的时间窗口。

SRE 日志分析中的 AI:真正行之有效的分层架构

· 阅读需 11 分钟
Tian Pan
Software Engineer

当团队第一次将 LLM 接入日志管道时,演示效果非常惊人。你只需粘贴一段堆栈跟踪(stack trace),GPT-4 就能用通俗易懂的语言解释根本原因。因此,接下来的自然选择显而易见:将其自动化。将所有日志都发送给模型,让它寻找问题。

这就是你每月烧掉 125,000 美元,并用“幻觉”来骚扰值班工程师的方式。

计算过程简单而残酷。一个中型生产系统每天产生大约十亿行日志。按每条日志条目大约 50 个 token 计算,每天就是 500 亿个 token。即使按照 GPT-4o 折扣后的每百万输入 token 2.50 美元计算,在不计算输出成本、重试或推理开销的情况下,你每天也要支付 125,000 美元。对流式日志进行实时的前沿模型分析不是一个优化问题 —— 而是架构选型错误。