RAG 技术如何精准应对大模型敏感问题的知识幻觉难题
一、引言
在大模型的实际应用落地过程中,会遇到所谓的幻觉(Hallucination)问题。对于语言模型而言,当生成的文本语法正确流畅,但与原文不符(Faithfulness)或事实不符(Factualness)时,模型便出现了幻觉的问题。在传统自然语言处理中,幻觉一般指模型输出与原文信息存在冲突,或添加不在原文的额外信息。在大模型中,不局限于特定任务,幻觉往往指的是与世界知识不一致,即不符合事实。尤其是在对输出内容真实性的容忍度较低时,大模型的幻觉现象会严重影响其落地效果。因此,纠正这些幻觉现象,是一个值得长期关注的问题。

大模型产生幻觉,错误的生成了第二次世界大战相关信息。
而在大模型安全领域,大模型的数据和知识储备,是致使它在解决敏感问题产生幻觉的重要原因。
数据缺陷
从训练数据中获得事实知识的利用率较低。具体来说,回答敏感问题,大模型需要使用足够客观的回答依据、输出安全的回复和应答策略。而训练数据中往往存在不可控的错误信息,和带有主观意识的偏见信息,而这样的知识在解决敏感问题 case 中是不允许被使用的。
知识边界
敏感问题往往具有高时效性的特点,比如时政问题。而大模型往往存在领域知识缺陷和过时的事实知识,往往训练数据都有严重的滞后性,导致大模型在回答最新的敏感问题时产生幻觉。
除此之外,训练过程中,大模型往往会过度依赖训练数据的一些模式,例如训练数据中频繁共现'加拿大'和'多伦多',那么大模型可能会错误地将多伦多识别为加拿大的首都。此外,大模型还可能会出现长尾知识回忆不足、难以应对复杂推理的情况。

常见的检索增强生成流程
检索增强生成(Retrieval Augmented Generation,RAG)在 LLM 诞生之前已由 Facebook 在 2020 年提出,用于改进 BART 模型效果。其主要思路是将检索组件与生成组件相结合,利用检索结果辅助答案的生成。
而到了大模型(LLM)时代,纯粹参数化的语言模型(LLM)将从大量语料库中获取的世界知识存储在模型参数中。为了解决上述的大语言模型在安全领域局限性问题,语言模型可以采用半参数化方法,将非参数化语料库与参数化模型整合在一起。这种方法被称为检索增强生成(RAG)。在推理过程中,RAG 使用检索到的数据作为参考来组织答案,从外部知识源中动态检索信息。这大大提高了响应的准确性和相关性,有效地解决了 llm 中存在的幻觉问题。RAG 巧妙地将生成模型强大的能力与检索模块的灵活性相结合,为纯参数化模型固有的不完整和不充分的知识问题提供了一种有效的解决方案。
二、相关工作与实践

常规的 RAG 范式
简单来讲,目前 RAG 的结构已经是成熟的范式,通过检索获取相关的知识并将其融入 Prompt,让大模型能够参考相应的知识从而给出合理回答。因此,可以将 RAG 的核心理解为'检索 + 生成',前者主要是利用向量数据库的高效存储和检索能力,召回目标知识;后者则是利用大模型和 Prompt 工程,将召回的知识合理利用,生成目标答案。
当前完整的 RAG 应用流程主要包含两个阶段:
- 数据准备阶段:数据提取 → 文本分割 → 向量化(embedding) → 数据入库
- 应用阶段:用户提问 → 数据检索(召回) → 注入 Prompt → LLM 生成答案


