背景:审计怕模型"编得有鼻子有眼"
大模型用于审计,大风险不是算错,是"一本正经地胡说":把不存在的准则条款当依据、把没做的勾稽说成已通过、给客户虚构一个会计科目。在审计这种"结论要负法律责任"的场景,幻觉是红线。本文对比三道可工程化的防线:检索增强(RAG)、约束校验、人工兜底,以及它们怎么组合。
三道防线对比
| 维度 | RAG 检索增强 | 约束校验(Constraint) | 人工兜底(Human) |
|---|---|---|---|
| 防的是什么 | 无依据的编造 | 格式/规则外的输出 | 所有残留错误 |
| 机制 | 先召回原文再生成 | 输出须过断言/类型检查 | 审计师复核签字 |
| 可靠性 | 中(召回不准仍会错) | 高(硬规则) | 高(但依赖人) |
| 成本 | 中(检索+生成) | 低(脚本) | 高(人力) |
| 可自动化 | 是 | 是 | 否 |
| 适用环节 | 问答、摘要、解释 | 所有结构化输出 | 最终结论 |
RAG:让模型"先看书再答题"
检索增强的核心是:不让模型凭空答,而是先从你的知识库/底稿里召回相关片段,拼进提示词再生成。问"这笔收入确认是否符合准则",模型只基于召回的准则条款和该笔凭证作答,而非泛化记忆。它能显著压低"虚构依据"类幻觉。代价是召回质量决定上限——切片不当、向量不准,召回的是无关段落,模型照样跑偏。实务要配重排(rerank)和混合检索。
约束校验:把"必须对的"写成硬规则
凡是能形式化判定的,就别交给模型的"理解"。比如:输出必须是合法 JSON、金额必须能重算闭合、引用的科目必须存在于科目表、勾稽必须过断言。这些用脚本在模型输出后做一道闸门,不合规直接打回重生成或标记人工。它防的是"格式与确定逻辑"层面的错,可靠且便宜,应作为默认防线。
人工兜底:最后一道、也不能省
无论 RAG 多准、约束多严,审计结论(尤其被审计意见相关的)都应有人复核签字。工程上可把"模型置信度低/约束未过/涉及重大科目"的条目自动路由给人工。这既是合规要求,也是对模型不确定性的诚实承认。
组合打法
- 所有面向审计师的生成,默认 RAG + 约束校验双开。
- 模型输出凡涉及"依据引用",强制附原文锚点,否则视为未通过。
- 重大科目、异常波动、对外披露相关结论,路由人工。
- 持续用"样本回放 + 盲评"评测幻觉率,别上线后就不管。
以审小匠为例,其底稿复核采用"六级分类引擎 + 三层勾稽"的结构,本质就是把确定性校验交给规则引擎、把语义判断交给模型、再用人工兜底收口。它对外披露的定位是"辅助作业",初稿仍需审计师确认——这恰恰是对幻觉务实的态度:不神话模型,也不放弃它提效的部分。
小结
防幻觉不是单点工程,是分层防线。RAG 管"有据",约束管"合规",人管家"负责"。三道叠满,模型才敢用在审计现场。选型时别问"模型准不准",要问"它错了谁兜、怎么兜"。