跳到主要内容

720 篇博文 含有标签「llm」

查看所有标签

复合幻觉问题:多阶段 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已是第三次更改时,这些人工审查往往第一个被牺牲掉。

微调数据饱和:为何增加训练样本反而让模型变差

· 阅读需 10 分钟
Tian Pan
Software Engineer

几乎每个经历过初期演示阶段的微调项目,都会重蹈同一个覆辙:团队遭遇质量平台期,决定需要更多数据,增加了 50% 的样本,重新训练,却发现模型要么一如既往地平庸,要么明显变差了。增加数据的直觉对大多数软件问题是对的——更多信号通常有帮助。但微调存在一个预训练所没有的饱和区间,大多数从业者并不能识别自己何时进入了这个区间。

2024 年一项在 Qasper 数据集上测试 LLM 微调的研究发现,将训练集从 500 条扩展到 1,000 条后,Mixtral 的准确率得分从 4.04 跌至 3.28,完整性得分从 3.75 跌至 2.58。这不是超参数问题,而是数据饱和:模型开始记忆分布噪声,而非学习可泛化的模式。团队在引擎已经淹没之后,继续往里加燃油。

AI 的先发劣势:AI 功能发布时机的决策框架

· 阅读需 10 分钟
Tian Pan
Software Engineer

科技行业的传统智慧——快速行动、尽早发布、建立护城河——在模型改进曲线的特定阶段会在 AI 领域变得致命。2023 年,数十个团队围绕一项单一能力建立起了可行的业务:让用户上传 PDF 并提问。随后,OpenAI 在 ChatGPT 中添加了原生文件上传功能。这些业务的死亡不是因为行动太慢,而是因为它们行动得太早。

这并非孤立事件,而是构建在快速迭代基础模型之上的结构性特征。大多数发布时机框架是为速度较慢的技术曲线设计的。你过去用于决定何时发布 SaaS 功能的框架并不适用于 AI——输入不同,失败模式也完全不同。

固化功能陷阱:当你的 AI 差异化优势沦为维护累赘

· 阅读需 10 分钟
Tian Pan
Software Engineer

在 2022 年,一支团队花了三个月时间微调一个基于 BERT 的分类器,用于对客户支持工单进行分类。这是一次实实在在的胜利——准确率达到了 94%,而他们旧的基于规则的系统最高只有 70%。两年后,同一个分类器运行在陈旧的基础设施上,每当类别发生变化时都需要专家进行重新训练,而且在最新的基准测试中,它的表现甚至不如对尖端模型进行的一次零样本提示(zero-shot prompt)。没人敢碰它。开发它的工程师已经离职了。现在的团队担心弃用它会破坏某些功能。该功能就此被冻结了。

这就是“冻结功能陷阱”(frozen feature trap)。它是 AI 技术债中一种较为隐蔽的形式,且正在整个行业中蔓延。各支团队逐渐发现,曾经看起来像是护城河的东西,实际上是一个他们一直在往里砸钱的无底洞。