大模型幻觉主要两类:
- 知识幻觉:模型自身参数里没有该知识,凭空编造事实、数据、引用;
- 推理幻觉:输入上下文存在,但是模型错误理解、篡改、乱拼接上下文内容。
RAG 不是彻底消除幻觉,是最大程度抑制幻觉,把回答约束在检索回来的参考资料范围内,幻觉无法 100% 根除
RAG 从四个环节抑制大模型幻觉。
第一,索引阶段,保证原始文档质量,合理分块,清洗去重,保证知识库本身可靠。
第二,检索环节,使用向量加 BM25 混合检索,搭配 Rerank 重排序,过滤无关片段;设置相似度阈值,检索不到相关内容就直接拒答,不强行回答。
第三,Prompt 层约束大模型,要求只能基于检索上下文作答,没有信息就如实说明,同时输出引用来源。
第四,生成后做事实校验后处理,校验答案和参考资料是否匹配。 【一方面可以做评估,另一方面: 将不合理的引用去掉】
但 RAG 不能完全消除幻觉,如果知识库本身错误或者模型推理出错,依然会出现问题。