什么是RAG
因为大模型对于时间(大模型训练的信息在2023年1月前)、私域信息(某人专属的信息)有局限性,导致它无法理想地作出回答
检索增强生成(Retrieval Augmented Generation,简称RAG)是一种结合了信息检索技术和大型语言模型的人工智能技术。通过从数据源检索信息来辅助大语言模型生成更准确、更丰富的文本内容。这一技术能够有效地解决LLMS在实际应用中遇到的一些问题,如幻觉问题、知识更新问题和数据安全性问题。
即给开卷考试,给大模型提供一些辅助性的资料,以提高大模型作答的准确率
检索+增强+生成
- 检索(Retrieval):根据用户的问题,从预先建立的知识库中检索出相关的信息。这一步骤通常利用文本嵌入模型将问题转换成向量,并在向量数据库中寻找最相似的文档片段
- 增强(Augmentation):将检索到的信息作为上下文输入,与用户的问题一起提供给大语言模型,以增强模型对特定问题的理解和回答能力
- 生成(Generation):大语言模型利用增强后的上下文信息生成回答
黑色围殴原流程,红色为RAG流程
实现RAG
构建知识库:
- 准备数据
- 将数据进行向量化
- 数据库的选择
RAG逻辑:
- 在向量数据库中检索用户查询
- 将检索的内容及用户查询输入大模型
构建知识库
准备数据
- 这是构建RAG系统的首要步骤,涉及将各种格式的知识源(如文档、图片、视频等)通过文档加载器或多模态模型(如OCR技术)转换为纯文本数据。此外,还需要执行文档切片,将长篇文档分割成多个文本块(chunk),以提高信息检索的准确性和效率。
数据向量化
- 将上述的文本块(chunk)通过embedding model输入到向量知识库中。
数据库的选择
- Faiss:高效灵活,Facebook支持,能轻松将向量检索功能嵌入到深度学习
- Milvus:云原生,高可用性,大规模内容检索、图像和视频搜索,超大规模数据的云端应用
- Chroma:轻量易用,开源,能快速搭建小型语义搜索
- ... ...
匹配
- 将用户的查询进行向量化并在向量数据库中进行检索
- 将检索到的内容连同用户的查询提交给大模型,大模型结合检索的知识重新生成最终答案
小结:RAG的特点
优点:
- 成本低且效益高
- 增强模型输出的可信度,准确性和专业性
- 始终访问最新的数据
注意:
- 它优化了模型的输入过程,通过丰富输入信息的方式,来增强模型的输出质量
- 但这项技术并不改变模型本身的推理能力,不会改变模型任何的参数,从而扩展了大模型的可用性