AI 交付管线里的"静默失败":没报错,但产出已经废了

上周我们排查一个客户反馈:AI 生成的周报连续三天"看起来没问题",但数据全是编的。

专属插画
AI 交付管线里的"静默失败":没报错,但产出已经废了

AI 交付管线里的"静默失败":没报错,但产出已经废了

上周我们排查一个客户反馈:AI 生成的周报连续三天"看起来没问题",但数据全是编的。

没有报错。没有超时。API 返回 200。日志一切正常。

这就是 AI 工程交付中最危险的一类故障——**静默失败(Silent Failure)**。

什么是静默失败?

传统软件故障很好识别:500 错误、超时、空指针。但 LLM 不同。它永远"成功"返回一段文字,只是这段文字可能是幻觉、过时、或者完全偏离指令。

我们遇到的典型案例:

- **数据幻觉**:让模型总结上周工单数据,它编了 12 个"已解决"的工单号。实际只有 3 个。

- **指令漂移**:prompt 要求"只列出事实,不添加分析",模型还是加了一段"建议下一步优化方向"。连续 47 次调用都这样。

- **格式崩坏**:要求输出 JSON,偶尔返回带 Markdown 代码块的 JSON。解析器没报错,但下游系统把 ````json` 当成了字段值。

我们怎么修的

1. 输出校验层(Output Guardrails)

在模型输出和下游消费之间加一层校验逻辑:


LLM → 格式校验 → 数据范围校验 → 业务规则校验 → 下游

比如工单号校验:生成的每个工单号必须能在数据库中找到对应记录。找不到?直接标记为幻觉,触发人工复核。

2. 确定性回归测试

每周用同一组 prompt + 同一组输入跑一次回归,对比输出差异。不是看"对不对",而是看"变没变"。如果上周输出 5 条数据,这周输出 12 条,即使 12 条都是对的,也要查原因——可能是 prompt 被改了,也可能是模型版本升级了。

3. 采样人工审核

不是每篇都审,而是按风险等级抽样。高风险内容(对外发布、涉及数据)100% 审核;中风险(内部周报)20% 抽样;低风险(草稿、头脑风暴)不审。

关键教训

**"没报错"不等于"没问题"。** 在 AI 交付管线里,成功响应是最不可信的信号。你必须假设每次输出都可能有问题,然后用校验层去验证。

这不是不信任模型,而是工程纪律。就像你不会因为数据库返回 200 就不做数据校验一样。

---

*本文基于 SFD Lab 实际交付经验,客户信息已脱敏。*

留言区

欢迎分享你的想法!

发表留言

0/500

加载留言中…