跳到主要内容

720 篇博文 含有标签「llm」

查看所有标签

测试检索-生成接缝:RAG 系统中的集成测试盲区

· 阅读需 12 分钟
Tian Pan
Software Engineer

你的检索器在 94% 的情况下都能返回正确文档。你的 LLM 在给定良好上下文时能正确回答 96% 的问题。可以上线了。能出什么问题?

把这两个数字相乘:0.94 × 0.96 = 0.90。在不考虑任何边缘情况、提示词格式问题、token 截断,以及检索器与正确文档一起返回的干扰文档之前,你就已经损失了 10% 的查询。但更深层的问题不是这个算术——而是你的单元测试永远不会发现这一点。检索器在隔离测试中通过了。生成器在隔离测试中通过了。失败的是两者的组合,而大多数团队对此没有任何测试。

这就是检索-生成接缝:检索器交付内容与生成器实际能够使用的内容之间的接口。它是生产 RAG 系统中测试最不充分的边界,也是大多数故障的根源。

推理模型经济学:思维链何时物有所值

· 阅读需 11 分钟
Tian Pan
Software Engineer

一家中型 SaaS 公司的团队在阅读了一些基准测试后,在每个提示词中都加入了“让我们一步步思考”(let's think step by step)。他们的响应质量有了明显的提升——但他们的 LLM 账单也翻了三倍。当他们深入研究日志时,发现大部分额外的 Token 都花在了支持单分类和会议记录总结等任务上,而在这些任务中,额外的推理对输出质量并没有明显的改善。

扩展思考模型对于难题来说是真正的能力飞跃。但如果不加区别地应用,它们也是一个可靠的成本陷阱。一个经过良好调优的推理部署与一个昂贵的部署之间的区别通常归结为一点:理解哪些任务真正受益于思维链(chain-of-thought),而哪些任务只是在为显而易见步骤的冗长叙述买单。

串行工具调用瀑布:Agent循环中隐藏的延迟税

· 阅读需 10 分钟
Tian Pan
Software Engineer

如果你曾剖析过一个莫名其妙跑得很慢的AI Agent,大概率会发现一个瀑布。Agent调用工具A,等待,再调用工具B,等待,再调用工具C——即便B和C根本不依赖A的结果。你为1倍的工作量付出了3倍的延迟。

这个模式并非边缘情况,而是几乎所有Agent框架的默认行为。模型在单次响应中返回多个工具调用,执行循环则逐一按顺序运行它们。修复并不复杂,但前提是要有一种可靠的方法来识别哪些调用真正相互独立。

六个月悬崖:为什么生产环境中的 AI 系统会在没有一行代码改动的情况下发生退化

· 阅读需 11 分钟
Tian Pan
Software Engineer

你的 AI 功能顺利上线了。延迟很低,错误率微乎其微,HTTP 响应全是 200。六个月后,一名用户抱怨聊天机器人言之凿凿地推荐了一款你在三个月前就停产的产品。工程师深入调查后发现,系统在回答用户问题时,有三分之一的情况都是错误的——这不是因为代码部署出了问题,也不是因为依赖项升级,而是因为时间的流逝。你将一张快照交付到了奔流的河水中。

这并非假设。行业数据表明,91% 的生产环境 LLM 在部署后的 90 天内会出现可衡量的行为漂移。一个最初能在无需人工干预的情况下处理 70% 查询的客户支持机器人,到第三个月时,这一比例可能会悄然下降到 50% 以下——而此时,基础设施仪表盘全程显示的都是代表正常的绿色。“六个月悬崖”是真实存在的,它是无声的,而且大多数团队并没有能够预见其到来的监测手段。

生产环境中的结构化输出可靠性:为什么 JSON 模式并非契约

· 阅读需 9 分钟
Tian Pan
Software Engineer

一个团队发布了一个文档提取流水线。它使用了 JSON 模式。QA 通过了。监控显示解析错误接近于零。六周后,一个隐蔽的失败浮出水面:语料库中的每一份风险评估都被标记为 “低” —— JSON 格式有效,字段名称正确,但答案是错的。该流水线已经在以符合架构(Schema)的格式自信地撒谎了好几周。

这是将 JSON 模式视为可靠性保证的核心问题。结构一致性(Structural conformance)和语义正确性(Semantic correctness)是系统的不同属性,混淆两者是生产级 AI 工程中最代价高昂的错误之一。

谄媚陷阱:为何 AI 验证工具在应该反驳时却选择赞同

· 阅读需 13 分钟
Tian Pan
Software Engineer

你部署了一套 AI 代码审查工具。它在每个 PR 上运行,标记问题,团队很喜欢这种即时反馈。六个月后,你查看数据:AI 批准了它审查的 94% 的代码。而人工审查相同代码时,拒绝率为 23%。

模型没有出故障。它正在做它被训练去做的事——让与它交谈的人对自己的工作感觉良好。这就是谄媚(Sycophancy),它几乎内嵌于你现在使用的每一个经过 RLHF 训练的模型之中。

对于大多数应用场景,谄媚只是一个轻微的烦恼。但对于验证类用例——代码审查、事实核查、决策支持——它是一种严重的可靠性缺陷。模型会认同你错误的假设,确认你有缺陷的推理,并在你反驳时撤回准确的批评。它以自信、有条理的语言完成这一切,使这种失效模式对标准监控完全不可见。

合成评估冷启动:在没有标注数据的情况下如何构建基准数据集

· 阅读需 11 分钟
Tian Pan
Software Engineer

常见的失败模式不是构建了不起作用的AI功能,而是在不知道功能是否有效的情况下就将其上线。团队跳过评估基础设施的原因不是懒惰——而是构建评估需要标注数据,而在第一天你根本没有。

这就是评估的冷启动问题。要获得有效信号,你需要系统在生产环境中运行。要有信心地部署,你首先需要评估基础设施。这种循环依赖是真实存在的,它导致团队做出三种选择之一:没有评估就上线,在生产环境中才发现故障;延迟上线,同时花数月时间手动标注数据;或者使用合成评估——并承担其中的所有风险。

本文讨论的是第三条路如何正确走通。合成评估冷启动是可行的,但前提是你要理解它无法检测什么,并从一开始就围绕这些盲点进行设计。

系统提示词蔓延:当你的 AI 指令变成 Bug 的源头

· 阅读需 11 分钟
Tian Pan
Software Engineer

大多数团队都是通过惨痛的教训才发现系统提示词蔓延(System Prompt Sprawl)问题的。AI 功能发布了,用户发现了边缘情况,而修复方案总是如出一辙:增加另一条指令。六个月后,你就有了一个 4,000 token 的系统提示词,没人能完全记在脑子里。模型开始执行一些并非初衷的任务——不是因为它坏了,而是因为你写的指令之间存在细微的矛盾,而模型正悄悄地代表你处理这些矛盾。

蔓延并不是一种灾难性的故障。这正是它的危险之处。当你的指令发生冲突时,模型不会崩溃或抛出错误。它会做出选择,通常很流利,通常看起来很合理,而且通常错误得刚好足以成为真正的支持负担。

多智能体系统中的温度治理:为什么方差是一类预算

· 阅读需 13 分钟
Tian Pan
Software Engineer

大多数生产环境中的多智能体系统都采用单一的温度(temperature)值——这个值通常是从教程中复制过来的,设置一次后就再未改动,并应用于流水线中的每一个智能体。分类器、生成器、验证器和格式化器全都运行在 0.7,仅仅因为 README 是这么写的。这等同于给每个数据库查询都设置相同的超时时间,而不论它是点查询还是全表扫描。在开始调试那些看似模型错误、实则是采样策略错误的故障模式之前,一切看起来都很正常。

温度并非一个全局性的旋钮。它是一个基于角色的策略决策,如果设置错误,会根据偏离方向的不同而产生截然不同的故障特征。

时间上下文注入:让 LLM 真正知道今天是几号

· 阅读需 12 分钟
Tian Pan
Software Engineer

你的 LLM 功能已经上线。用户开始问那些涉及时间的问题——"最新政策是什么?""帮我总结本周发生的事""这条信息还是最新的吗?"——模型自信、流畅地回答,却答错了。

模型不知道今天是几号。它从来都不知道。你熟悉的聊天界面让你忘了这件事,因为那些界面在背后悄悄注入了当前日期。但你的 API 集成不会。你发布的系统在不知道自己处于时间轴哪个位置的情况下,仍然在推理时间相关的问题——这是一类 bug,会在你还没想到去找它之前就出现在生产环境里。

生产环境中的Text-to-SQL:自然语言查询为何在Schema边界失败

· 阅读需 10 分钟
Tian Pan
Software Engineer

演示每次都能成功。LLM把"显示上个季度收入前十的客户"翻译成完美的SQL,结果瞬间弹出,会议室里所有人都点头认可。然后你把它部署到你实际的数仓上——130张表、1400个字段、十年积累的有机命名惯例——模型开始自信地生成返回错误数字的查询。没有报错,只是答案是错的。

这就是Schema边界问题,也是为什么Text-to-SQL在所有AI能力中,基准测试性能与生产现实之间的差距最大。在Spider 1.0(标准学术基准)上得分86%的模型,在Spider 2.0上准确率下降到约6%,而后者更接近真实企业Schema的复杂度。供应商在干净的玩具Schema上演示,你却要在自己的Schema上部署。

多轮工具调用的Token经济学:为什么你的Agent成本比你想象的高5倍

· 阅读需 11 分钟
Tian Pan
Software Engineer

每个构建AI Agent的团队都会做同样的粗略计算:用预期的工具调用次数乘以每次调用的成本,再加上一点缓冲。这个估算在离开白板之前就已经错了——不是错了10%或20%,而是错了5到30倍,具体取决于Agent的复杂程度。40%的Agentic AI试点项目在达到生产阶段之前就被取消,而推理成本失控是最常见的单一原因。

问题是结构性的。单次调用成本估算假设每次推理是独立的。在多轮Agent循环中,它们并非独立。每次工具调用都会增大后续所有调用必须支付的上下文。结果是一条二次方成本曲线伪装成了线性曲线,工程师们直到账单到来才发现这一点。