本文来源公众号“深度学习与NLP”,仅用于学术分享,侵权删,干货满满。
1 介绍
本文全面回顾了当前最先进的RAG技术,包括朴素RAG、进阶RAG和模块RAG等范式,并置于LLM背景下。文章讨论了RAG过程中的核心技术,如“检索”、“生成”和“增强”,并深入探讨了它们的协同作用。此外,文章还构建了一个全面的评估框架,概述了评估目标和度量标准,并进行了比较分析,阐明了RAG的优缺点。最后,文章预测了RAG的未来发展方向,强调了解决当前挑战的潜在增强、多模式设置的扩展以及其生态系统的发展。
图1 RAG技术发展科技树
2 定义
RAG是一种通过整合外部知识库来增强LLM的性能的模式,采用协同方法结合信息检索机制和上下文学习来提高LLM的性能。其工作流程包括三个关键步骤:将语料库划分为离散块,构建向量索引,并根据与查询和索引块的向量相似性来识别和检索块。这些步骤支持其信息检索和上下文感知生成能力。RAG已成为LLMs系统中最受欢迎的架构之一,许多对话产品几乎完全基于RAG构建。
图 2 RAG 技术在 QA 问题中的案例
3 RAG框架
在RAG的技术演进历程中,基于技术范式的考量,我们将其划分为以下几个发展阶段:朴素RAG、进阶RAG和模块RAG。
3.1 朴素RAG
朴素RAG研究范式是一种早期的方法学,用于处理自然语言生成任务。它包括索引、检索和生成三个阶段。索引阶段从原始数据中提取文本,并将其转化为向量表示,以便于检索和生成。检索阶段计算查询向量与索引语料库中向量化的块之间的相似度分数,并优先检索出最相似的块作为扩展上下文的基础。生成阶段将查询和选定的文档合成一个连贯的提示,并要求大型语言模型根据提示来制定响应。这种方法允许模型利用其内在的参数知识或将其响应限制在提供文档中所包含的信息。
Naive RAG在检索、生成和增强三个关键领域面临挑战,包括精度低、召回率低、幻觉挑战、难以结合上下文、重复冗余、平衡段落价值、协调写作风格和语气、过度依赖增强信息等。