检索增强生成(又名 RAG)为LLM提供从某些数据源检索到的信息,作为其生成答案的依据。 基本上,RAG 是搜索 + LLM 提示 ,您要求模型回答查询,并提供通过搜索算法找到的信息作为上下文。查询和检索到的上下文都被注入到发送给 LLM 的提示中。
RAG 是 2023 年最流行的基于 LLM 的系统架构。有许多产品几乎完全基于 RAG 构建——从将网络搜索引擎与 LLM 相结合的问答服务到数百个与数据聊天的应用程序。
尽管基于嵌入的 搜索 引擎是在 2019 年与 、 和 这样的矢量数据库初创公司都是建立在现有的开源搜索索引(主要是 faiss 和 )之上的最近为输入文本添加了额外的存储空间以及一些其他工具。
基于 LLM 的管道和应用程序有两个最著名的开源库 ——LangChain和 相差一个月,受到 ChatGPT 发布的启发,并在 2023 年获得了大规模采用。
本文的目的是系统化关键的高级 RAG 技术,并参考其实现(主要在 LlamaIndex 中),以便于其他开发人员深入研究该技术。
问题在于,大多数教程都挑选一种或几种技术并详细解释如何实现它们,而不是描述所有可用的工具。
另一件事是,LlamaIndex 和 LangChian 都是令人惊叹的开源项目,其发展速度如此之快,以至于它们的文档已经比 2016 年的机器学习教科书还要厚。