检索增强生成(RAG)的原理

132 阅读3分钟

什么是RAG

因为大模型对于时间(大模型训练的信息在2023年1月前)、私域信息(某人专属的信息)有局限性,导致它无法理想地作出回答

检索增强生成(Retrieval Augmented Generation,简称RAG)是一种结合了信息检索技术和大型语言模型的人工智能技术。通过从数据源检索信息来辅助大语言模型生成更准确、更丰富的文本内容。这一技术能够有效地解决LLMS在实际应用中遇到的一些问题,如幻觉问题、知识更新问题和数据安全性问题。

即给开卷考试,给大模型提供一些辅助性的资料,以提高大模型作答的准确率

检索+增强+生成

  • 检索(Retrieval):根据用户的问题,从预先建立的知识库中检索出相关的信息。这一步骤通常利用文本嵌入模型将问题转换成向量,并在向量数据库中寻找最相似的文档片段
  • 增强(Augmentation):将检索到的信息作为上下文输入,与用户的问题一起提供给大语言模型,以增强模型对特定问题的理解和回答能力
  • 生成(Generation):大语言模型利用增强后的上下文信息生成回答

image.png黑色围殴原流程,红色为RAG流程

实现RAG

构建知识库

  1. 准备数据
  2. 将数据进行向量化
  3. 数据库的选择

RAG逻辑

  1. 在向量数据库中检索用户查询
  2. 将检索的内容及用户查询输入大模型

image.png

构建知识库

准备数据

  • 这是构建RAG系统的首要步骤,涉及将各种格式的知识源(如文档、图片、视频等)通过文档加载器或多模态模型(如OCR技术)转换为纯文本数据。此外,还需要执行文档切片,将长篇文档分割成多个文本块(chunk),以提高信息检索的准确性和效率。

数据向量化

  • 将上述的文本块(chunk)通过embedding model输入到向量知识库中。

image.png

数据库的选择

  • Faiss:高效灵活,Facebook支持,能轻松将向量检索功能嵌入到深度学习
  • Milvus:云原生,高可用性,大规模内容检索、图像和视频搜索,超大规模数据的云端应用
  • Chroma:轻量易用,开源,能快速搭建小型语义搜索
  • ... ...

匹配

  • 将用户的查询进行向量化并在向量数据库中进行检索
  • 将检索到的内容连同用户的查询提交给大模型,大模型结合检索的知识重新生成最终答案

image.png

小结:RAG的特点

优点

  1. 成本低且效益高
  2. 增强模型输出的可信度,准确性和专业性
  3. 始终访问最新的数据

注意

  • 它优化了模型的输入过程,通过丰富输入信息的方式,来增强模型的输出质量
  • 但这项技术并不改变模型本身的推理能力,不会改变模型任何的参数,从而扩展了大模型的可用性

image.png