跳到主要内容

AI 内容漂移:当你的文档语料库开始自相矛盾时

· 阅读需 11 分钟
Tian Pan
Software Engineer

你的文档六个月前看起来没问题,今天单独看依然没问题。但这周一位用户提交了一个 bug:开发者文档的两个页面对同一个配置项给出了相反的建议。一个页面说生产环境应将 max_retries 设为 3;另一个页面说保持默认值 0 即可。两者都是 AI 生成的,两者听起来都很权威。一个反映的是你们系统在一月份的实际行为,另一个反映的是 AI 工具在六月用略有不同的提示词所做的解读。没有人发现,因为没有人在整体上审视这个语料库。

这就是 AI 内容漂移。它不是幻觉问题——AI 在生成时是准确的。漂移发生在两次生成之间的间隙里。

为什么 LLM 输出随时间并不稳定

面对一致性问题,直觉上的应对是把温度设为零。但这并不像工程师期望的那样有效。温度=0 能减少会话内的方差,但不会冻结模型。即使温度为 0,同一提示词在不同时间也会返回不同的输出,原因有三。

模型更新。 服务商持续更新模型。新版本的能力变化并不均匀——经济学和法律领域的能力提升,可能伴随着物理学或专业术语领域的退步。针对一月份检查点生成的内容,和针对六月份检查点生成的内容,即使提示词完全相同,也是不同的产物。

基础设施的非确定性。 GPU 上的浮点运算在分布式硬件上是非确定性的。混合专家架构在不同负载条件下会以不同方式路由 token。对于单次会话来说,输出一致性足够可用;但要跨越数周实现逐位可重现,则远远不够。

提示词漂移。 团队会随时间优化生成提示词——更好的示例、更严格的指令、调整后的语气引导。每次优化在局部来看都是合理的改进。但积累十二个月的编辑迭代后,产出的内容与项目初期写下的内容已经不再共享同一种"声音"。

以上任何一个因素都会造成漂移。三者同时作用于包含数百乃至数千文档的语料库,结果就是一个悄悄开始自相矛盾的语料库。

漂移在实践中如何积累

故障模式并非突然爆发,而是累积性的、隐蔽的——直到它再也藏不住。

一个团队在 Q1 开始生成 API 文档。他们使用特定的系统提示词、特定的模型版本和一组特定的示例。输出是准确的,内部也保持一致。Q2,团队更新系统提示词以体现公司新的语气风格。Q3,模型在他们无法控制的情况下完成了版本升级。Q4,一位新工程师用略微不同的提示词重新生成了鉴权部分——因为旧的提示词没有纳入版本控制。

到年底,语料库拥有了四种不同的"声音"——不是因为任何人做了错误的决定,而是因为一致性从未被视为一项需要强制执行的要求,而只是在生成时应达到的属性。

第二种故障模式是重新生成陷阱。当文档变得陈旧时,直觉上的解决方法是重新生成它。但针对更新模型或修订后的提示词做部分重新生成,会改变该文档与其邻近文档之间的关系。一月份保持一致的两个页面,现在可能对同一概念使用了不同的术语:一个说"authenticated request"(已认证请求),另一个现在说"authorized call"(已授权调用)。两者都是正确的英语,指的是同一件事,但搜索索引会将它们视为不同的概念。

关于大规模企业文档的研究证实,这不是理论上的风险。管理大型 AI 生成知识库的团队报告称,企业 RAG 部署 60% 的失败率并非由幻觉驱动——而是由数据陈旧以及在不断演变的语料库上局部更新嵌入所积累的检索漂移驱动的。

为什么用户比编辑先发现问题

让这个问题难以被捕捉的组织动态在于:编辑是逐篇阅读文档的,而用户是按工作流导航的。

一个跟随多步骤设置流程的用户会依次阅读三个页面。如果第二页和第四页对同一概念使用了不同的术语,用户会立刻发现并提交 bug。而逐页审阅的编辑什么都没发现——因为每个页面单独来看都是正确的。

这种倒置——语料库层面的不一致对文档级审阅不可见,却对工作流级导航显而易见——解释了为什么漂移投诉往往以用户困惑报告的形式出现,而非文档审计。

延迟使问题更加复杂。当用户报告矛盾时,漂移已经积累了数月。修复那两个相互矛盾的页面并不能解决根本原因;它只是解决了一个可能有数十个症状的语料库中的一个症状。

一次真正的一致性审计需要什么

将语料库视为一个整体——而非文档的集合——是发现漂移的前提条件。

加载中…
References:Let's stay in touch and Follow me for more thoughts and updates