Asterism

什么是 RAG:从检索到生成的完整链路

内容摘要

RAG(检索增强生成)是一种将信息检索技术与大语言模型相结合的框架,让 LLM 学会"开卷考试"。本文介绍 RAG 的核心定义、技术原理(索引与检索阶段)、常见用途以及技术演进(初级RAG→高级RAG→模块化RAG)。

RAG (Retrieval-Augmented Generation,检索增强生成) 是一种将强大的信息检索 (Information Retrieval, IR) 技术与生成式大语言模型 (LLM) 相结合的框架。检索指的是检索外部知识库,增强生成指的是将检索到的知识送给大语言模型以此来优化大模型的生成结果,使得大模型在生成更精确、更贴合上下文答案的同时,也能有效减少产生误导性信息的可能。

💡 一句话总结:RAG 就是让 LLM 学会了”开卷考试”,它既能利用自己学到的知识,也能随时查阅外部资料,主要也是为了解决存在的一些局限性。

RAG 概念最早是 2020 年 Meta(当时还叫 Facebook AI)的研究团队提出的。他们的思路很直接:与其让模型把所有东西都记在脑子里,不如教它”先查资料,再回答”。这样一来,模型的回答就有据可依了——既利用了大模型理解语义的能力,又能接入最新的、私有的知识库数据。

RAG 过程:索引和检索

RAG 过程分为两个不同阶段:索引检索

在索引阶段,文档会进行预处理,以便在检索阶段实现高效搜索。该阶段通常包括以下步骤:

索引过程通常是离线完成的,例如通过定时任务进行重新索引。对于动态需求,例如用户上传文档的场景,索引可以在线完成,并集成到主应用程序中。

RAG_processRAG_process

RAG 最适合的使用场景

RAG(检索增强生成)最适合用在 “答案依赖外部资料、且资料会变化/很长” 的场景:先从知识库检索相关内容,再让大模型基于检索结果生成回答,从而减少胡编、提升可追溯性。

下面列举几个最常见的场景:

RAG 技术演进

RAG 的技术架构经历了从简单到复杂的演进,大致可分为三个阶段:

Evolution_of_RAGEvolution_of_RAG

这三个阶段的具体对比如下表:

初级 RAG(Naive RAG)高级 RAG(Advanced RAG)模块化 RAG(Modular RAG)
流程离线: 索引 在线: 检索 → 生成离线: 索引 在线: …→ 检索前 → … → 检索后 → …积木式可编排流程
特点基础线性流程增加检索前后的优化步骤模块化、可组合、可动态调整
关键技术基础向量检索查询重写(Query Rewrite)、结果重排(Rerank)动态路由、查询转换、多路融合
局限性效果不稳定,难以优化流程相对固定,优化点有限系统复杂性高

“离线”指提前完成的数据预处理工作(如索引构建);”在线”指用户发起请求后的实时处理流程。

RAG 的核心优势和局限性

RAG 的核心优势和局限性可以从知识管理、工程落地和性能指标三个维度来分析:

核心优势

局限性与工程挑战