当前LLM受限于其训练时所用的固定数据集,难以处理私有或最新的信息,且可能存在“幻觉”现象,即提供错误但看似合理的答案。为了解决这些问题,检索增强型生成(Retrieval-Augmented Generation,简称RAG)框架应运而生。RAG(微软最新研究:RAG(Retrieval-Augmented Generation)的四个级别深度解析)通过引入外部文档,利用上下文学习提升LLM的响应质量,确保提供的信息不仅上下文相关,而且准确、及时。今天我们一起探讨RAG的多种技术及其优缺点,以期为开发高效RAG系统提供实践指导(代码实践链接在文末)。

一、RAG的基本概念与工作流程
RAG框架主要由四个核心组件构成:索引、检索器、增强器和生成器。
-
索引:首先,将各种格式的文档分割成小块,并为这些块创建嵌入表示。这些嵌入随后被添加到向量存储中,以便快速检索。
-
检索器:根据用户的查询,检索器利用向量相似性等技术从向量存储中找到最相关的文档。
-
增强器:增强器将用户查询与检索到的上下文结合,形成一个提示,确保LLM拥有生成准确响应所需的信息。
-
生成器:最后,将组合后的查询和提示传递给模型,生成对用户查询的最终响应。
这种设计使得RAG模型能够访问最新、最准确的信息,并基于外部知识生成响应。
二、RAG技术的多样性
RAG技术涵盖了多种实现方法(Astute RAG(Retrieval-Augmented Generation):LLM信息检索与利用的新思路),每种方法都有其独特的优势和局限性。
-
Naive RAG(朴素RAG)
Naive RAG是RAG的基础技术,通过语义相似性直接将用户查询与文档数据库进行匹配。该方法简单直接,计算开销低,对于上下文易于识别的简单查询表现良好。然而,它可能因缺乏复杂的过滤机制而检索到不相关的上下文,且由于上下文窗口的限制,可能导致信息截断或不完整。
-
Hybrid RAG(混合RAG)
Hybrid RAG通过结合向量搜索(语义相似性)和传统基于关键词的检索方法(如BM25)来克服Naive RAG的局限性。这种方法能够同时捕捉查询的深层语义含义和精确关键词匹配,从而提高文档检索的全面性和准确性。然而,它增加了计算成本,且需要精细调整关键词和语义搜索结果之间的平衡。
-
Hyde RAG(假设文档嵌入RAG)
Hyde RAG提出了一种创新性的文档检索方法。它首先生成一个可能回答查询的假设文档,然后使用该假设文档的嵌入来指导实际相关文档的搜索。这种方法特别适用于复杂或抽象查询,其中传统搜索方法可能表现不佳。然而,它增加了生成假设答案的计算开销,且结果的质量高度依赖于初始假设文档的生成质量。
工作原理
-
生成假设答案:HyDE RAG利用大型语言模型(如GPT系列)根据用户的问题生成一个假设的答案。这个答案可能不完全准确,甚至可能包含错误的细节,但它尝试捕捉与查询相关的信息。
-
嵌入假设答案:接着,使用一个无监督学习训练的对比编码器(如Contriever)将假设答案编码成一个向量。这个向量表示了假设答案的关键信息,并用于后续的检索过程。
-
检索相似文档:编码得到的向量被用于在文档库中检索与假设文档向量最相似的真实文档。这一步骤基于向量空间模型,使用内积(或余弦相似度)来衡量文档之间的相似性。
</

最低0.47元/天 解锁文章
1287

被折叠的 条评论
为什么被折叠?



