大模型幻觉的解决方案
一、幻觉本质(一句话记住)
模型不知道自己不知道,只会按语言规律 “编得通顺”。
幻觉 = 事实错误 + 数据编造 + 逻辑瞎编。
二、最有效、最落地的 8 大解决方案
1. RAG 检索增强(最核心、最有效)
强制模型只使用外部知识库回答,不让它用训练数据瞎编。
- 检索来源:ES、向量库、MySQL、Excel、文档
- 规则:无检索结果 → 直接说不知道
- 效果:能解决 80% 幻觉
2. Prompt 强约束(最简单有效)
直接在 Prompt 里写死规则:
plaintext
1. 只使用提供的资料回答,不允许编造。
2. 不知道就说“暂无相关信息”,不许推测。
3. 不添加资料里没有的时间、数字、人名、政策。
4. 不确定的内容不要回答。
低温度(temperature ≤ 0.2) 大幅减少幻觉。
3. 降低温度 temperature
- 创作:0.7~1.2
- 知识库 / 客服 / 问答:0.1~0.3
温度越低,越保守、越不瞎编。
4. 检索结果做 “事实校验”
两种做法:
- 模型自查
让模型自己检查:
- 这句话是否来自资料?
- 是否有编造?
- 规则校验
禁止输出:
- 电话、网址、时间、金额、政策
- 不在知识库白名单里的实体
直接拦截。
5. 只给 “高置信度” 检索片段
不给模型一堆杂乱内容,只给:
- Top3~5 最相关片段
- 提前去重、过滤低相关
- 长内容先摘要压缩
模型看到的信息越干净,越不乱编。
6. 结构化输出(强制格式,减少自由发挥)
让模型按固定格式输出,比如:
json
{
"answer": "回答内容",
"source": "来自哪条知识库",
"is_factual": true/false,
"confidence": 0.95
}
格式越死,幻觉越少。
7. 加 “拒答机制”
满足以下任一条件,直接不回答:
- 检索结果相关性 < 阈值
- 无匹配知识
- 问题超出领域
- 问题模糊 / 歧义
话术:
暂无相关信息,请换个问法。
8. 事后监控 + 人工审核
- 记录所有回答
- 标记幻觉
- 自动复审
- 加入黑名单 / 纠错库
这是企业级必做。
三、最推荐的组合方案(企业标准架构)
最强抗幻觉架构 = RAG + 强 Prompt + 低温 + 校验 + 拒答
plaintext
用户问题 → 检索 → 过滤Top5 → 构建Prompt → 低温生成 → 事实校验 → 返回/拒答
这套能把幻觉压到 几乎为 0。

浙公网安备 33010602011771号