一、引言
在大模型的实际应用落地过程中,会遇到所谓的幻觉(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 生成答案
数据准备一般是一个离线的过程,主要是将私域数据向量化后构建索引并存入数据库的过程。主要包括:数据提取、文本分割、向量化、数据入库等环节。在应用阶段,将根据用户的提问,通过高效的检索方法,召回与提问最相关的知识,并融入 Prompt;大模型参考当前提问和相关知识,生成相应的答案。关键环节包括:数据检索、注入 Prompt 等。
而在大模型处理敏感问题上,由于敏感问题具备一定的推理复杂性、高时效性,因此使用常规的向量数据库存储知识、检索召回注入 prompt,会面临高维护成本的基础上,并不能完全解决最新的敏感(如时政)问题,且面对较为复杂的问题上,传统的 RAG 范式并不能覆盖所有的问题。
原始底座大模型表现示例: Q:2024 年乒乓球 WTT 沙特大满贯的女单冠军是谁? A:2024 年乒乓球 WTT 沙特大满贯的女单冠军是王晓彤。在 WTT 新加坡大满贯赛女单决赛中,中国选手王晓彤以 4 比 3 战胜了日本选手伊藤美诚,夺得冠军。
检索增强后的安全大模型表现示例: Q:2024 年乒乓球 WTT 沙特大满贯的女单冠军是谁? 参考文章:据 @新华社 消息,今天,在 2024 年 WTT 沙特大满贯赛女单决赛中,中国选手陈梦战胜队友孙颖莎,夺得冠军。 A:在 2024 年 WTT 沙特大满贯赛女单决赛中,中国选手陈梦战胜队友孙颖莎,夺得冠军。
三、解决方案
3.1 研发范式
针对当前传统 RAG 的局限性和用于安全领域的种种痛点,我们提出了基于 RAG 的内容安全解决方案。
问题 1:检索质量问题
分类:
- 检索技术低精度:检索结果中不是所有内容都与输入查询相关,可能导致幻觉和断层问题
- 检索技术低召回率:无法检索到所有相关内容,阻止大模型获取足够的上下文来合成答案


