热门搜索:和平精英 原神 街篮2 

您的位置:首页 > > 教程攻略 > ai资讯 >深度解析RAG技术在大模型时代的原理与实践

深度解析RAG技术在大模型时代的原理与实践

来源:互联网 更新时间:2026-08-27 14:03

在QCon北京2024上,一个明显的趋势是:大模型应用落地的讨论已从“能不能做”转向了“怎么做”。在众多解决方案中,“AI Agent”和“RAG”是两个出现频率最高的关键词。RAG常常出现在Agent的思维链(CoT)或多智能体协作的流程中。上篇我们聊了聊AI Agent,那么,RAG到底是什么?本文就结合QCon上的见闻,深入聊聊RAG的核心组件、常见范式、应用场景和评估方法,看看各大公司是如何用它来支撑实际业务的。

什么是RAG?

在LLM时代,RAG(检索增强生成)的定义其实很具体:当模型需要回答问题或生成文本时,它不会凭空捏造,而是先从一个庞大的文档库中“检索”出最相关的信息片段,再根据这些信息来“生成”最终的答案。这就像是给一个博闻强识但偶有发挥失常的学者,配上了一套随时可以翻阅的百科全书。

一个通用的RAG流程,主要包含三个步骤:

  • 索引:

    将文档切分成小块,把它们编码成向量的形式,然后存进一个向量数据库里。
  • 检索:

    根据用户问题的语义相似度,从这个库里找出与问题最相关的前几个数据块。
  • 生成:

    把原始问题和检索到的这些数据块一起喂给大语言模型,让它生成最终的答案。

RAG文本问答

RAG多模态问答

为什么用RAG?

大模型的挑战

大型语言模型虽然能力惊人,但“幻觉”、知识过时和推理过程不透明这三大“硬伤”也一直是业界难题。RAG的出现,就像是给大模型搭上了一根“外接网线”。它通过整合外部数据库的知识,让生成的内容不再是无源之水,准确性和可信度都上了一个台阶。RAG把模型的内在知识和外部动态知识库巧妙地结合在了一起,对于处理知识密集型任务来说,确实是一把利器。

大语言模型挑战

RAG技术解决方案

虚构信息通过整合外部数据库的知识,提升生成的准确性和可信度
过时知识允许持续知识更新和集成领域特定信息
非透明推理RAG将LLMs固有的知识与外部数据库庞大、动态的知识库有机结合,提高透明度和可追溯性

RAG与其它技术比较

在大模型优化的工具箱里,除了RAG,常见的还有微调(Fine-tuning, FT)和提示工程。这三者各有侧重,我们可以用一个象限图从“外部知识需求”和“模型适配需求”两个维度来看它们的差异。

  • 提示工程:

    几乎不依赖外部知识和模型改动,纯粹利用模型已有的能力解决问题。
  • RAG:

    可以把它看作一个“量身定制的教科书检索模型”,非常适合做精确的信息检索。早期的朴素RAG(Naive RAG)甚至几乎不需要对模型本身做任何修改。
  • FT:

    则像是让学生“内化知识”——需要针对不同的下游任务重新训练整个模型,适用于需要复制特定写作风格或格式的场景。

很多人会问:既然有微调,为什么还要用RAG?简单对比一下就能看出各自的适用场景,这有助于我们在实际问题中权衡利弊。

RAG

微调 (Fine-tuning)

知识更新

直接更新检索知识库即可,无需频繁重新训练,非常适合动态数据环境。存储的是静态数据,知识或数据更新就需要重新训练。

外部知识

擅长利用外部资源,特别适合处理文档或其他结构化/非结构化数据库。可用于将预训练中习得的外部知识与模型对齐,但对于频繁变化的数据源不太实用。

数据处理

对数据的处理和操作要求极低。高度依赖高质量的数据集,有限的数据集可能无法显著提高性能。

模型定制

侧重于信息检索和融合外部知识,可能无法充分定制模型的行为或写作风格。允许根据特定风格或术语调整模型的行为、写作风格或特定领域知识。

可解释性

答案能追溯到具体的数据来源,提供更高的可解释性和可追踪性。就像个黑盒子,你并不总能明白模型为什么会给出某个反应,可解释性相对较低。

计算资源

需要资源支持检索策略和数据库技术,外部数据源的整合和更新需持续维护。需要准备、整理高质量的训练数据集,并确定微调目标,投入相应的计算资源。

延迟要求

因涉及数据检索,可能带来较高的延迟。微调后的模型可以不经过检索直接给出回应,延迟更低。

降低幻觉

由于每个回答都基于检索到的实际证据,本质上更不容易产生错误或虚构的答案。根据特定领域数据训练模型有助于减少幻觉,但面对未训练过的输入时,仍可能出现幻觉。

伦理和隐私问题

从外部数据库存储和检索文本可能引起伦理和隐私方面的担忧。训练数据中的敏感内容同样可能引起伦理和隐私问题。

RAG的分类

从演进范式角度分类

RAG的研究和实践范式在不断演进,大致可以分为三个阶段:朴素RAG、高级RAG和模块化RAG。早期的朴素RAG成本效益不错,性能也优于传统LLM,但面临不少挑战。高级RAG和模块化RAG就是专门为解决这些不足而生的。

  • 朴素RAG:

    主要由索引、检索和生成三部分组成,流程简单直接:输入数据向量化,去向量数据库里匹配,再把匹配结果和原始输入一起交给大模型生成答案。
  • 高级RAG:

    在朴素RAG的基础上增加了数据预筛选,围绕预检索和后检索提出了多种优化策略,虽然流程相似,但效果提升明显。
  • 模块化RAG:

    继承了前两者的思想,但灵活性更高。它引入了多种特定功能模块,并且可以替换现有模块。整个过程不再局限于顺序检索和生成,还包括迭代检索、自适应检索等多种方式。

从检索与生成协同角度

按照检索器如何增强生成器的方式,RAG的基础范式又可以细分为四种:

  • 基于查询的RAG:

    用用户的问题检索相关文档,然后把检索结果和问题拼在一起,作为生成模型的输入。这是目前最主流的范式,也是最直接的利用外部知识方式。
  • 基于潜在表征的RAG:

    检索到相关文档后,获取文档的向量表征,并在生成模型生成阶段融入这些表征信息。这是一种更隐晦的利用外部知识的方式。
  • 基于Logit的RAG:

    在生成模型解码阶段计算下一个词的概率时,同时考虑模型自身的预测和检索模块返回的信息。检索和生成被视为两条独立链路,最后联合计算logit值。
  • Speculative RAG:

    用检索模块来替代部分生成模块,主要用于节省资源和加速文本生成。它会提供一段候选回复,让生成模型来判断是否采用。

RAG核心结构

检索:

如何从数据源中高效检索到相关文档是重中之重。这里面涉及几个关键问题,比如检索源的选择、检索的粒度、检索前的预处理工作,以及嵌入模型的选择。

生成:

检索之后,直接把所有信息一股脑儿地塞给大模型并不是个好主意。我们需要从如何调整检索内容、如何调整大语言模型本身这两个角度来优化生成过程。

增强:

在RAG领域,最常见的做法是“检索一次,然后生成”。但这个做法效率不高,尤其面对那些需要多步推理的复杂问题时,往往不够用。

RAG的增强功能

RAG的增强是整个体系的核心。从多个角度来看,提升RAG性能的方法可以归纳为五类:从输入、检索器、生成器、结果和整个管道流程入手。单看检索这一个环节,增强方法又可以细分为迭代检索、递归检索和自适应检索三种。

检索增强分类

除了最普通的一次性检索,RAG的检索增强过程还有三种形态:

  • 迭代检索:

    检索和生成交替进行,每一步都能从知识库中获取更丰富、更有针对性的上下文。
  • 递归检索:

    把用户的问题拆解成子问题,然后通过“检索-生成”的循环不断解决这些子问题,非常适合处理复杂任务。
  • 自适应检索:

    让RAG系统自己决定是否需要外部知识,以及何时停止检索和生成,通常利用LLM生成的特殊Token来控制。

RAG过程增强分类

从视角来看,RAG的增强又可以分为针对输入、检索器、生成器、结果和整个管道这五个部分的优化。每个部分都有其特定的增强方向和方法。

RAG评估

随着RAG在NLP领域的快速发展和广泛应用,怎么评估它就成了一个前沿课题。把RAG技术引入到大模型应用场景,我们需要知道如何评估它在不同场景下的表现。下面我们就简要聊聊RAG的主要下游任务、相关数据集以及通用的评估方法。

RAG的下游任务

RAG的核心任务仍然是机器问答,包括传统的单跳/多跳问答、选择题、特定领域的问答,以及适合RAG的长文本场景。除此之外,RAG的应用范围正在不断扩展,比如信息提取、对话生成和代码搜索等。以下是RAG的主要下游任务及其相应的数据集总结:

任务 子任务 数据集

问答

Single-hop Natural Question(NQ)/TrivaQA(TQA)/SQuAD/Web Questions(WebQ)/PopQA/MS MARCO
Multi-hop HotpotQA/2WikiMultiHopQA/MuSiQue
Long-form QA ELI5/NarrativeQA(MQA)/ASQA/QMSum(QM)
Domain QA Qasper/COVID-QA/CMB/MMCU_Medical
Multi-Choice QA QuALITY/ARC/CommonsenseQA
Graph QA GraphQA

对话

Dialog Gentration Wizard of Wikipedia(WoW)
Personal Dialog KBP/DuleMon
Task-oriented Dialog CamRest
Recommmendation Amazon(Toys, Sport, Beauty)

信息抽取

Event Argument Extraction WikeEvent/RAMS
Relation Extraction T-REx, ZsRE

推理

Commonsense Reasoning HellaSwag
CoT Reasoning CoT Reasoning
Complex Reasoning CSQA

其它

Language Understanding MMLU
Language Modeling WikiText-103/StrategyQA
Fact Checking/Verification FEVER/PubHealth
Text Gentration Biography
Text Summarization WikiASP/XSum
Text Classification VioLens/TREC
Sentiment SST-2
Code Search CodeSearchNet
Robustness Evaluation NoMIRACL
Math GSM8K
Machine Translation JRC-Acquis

RAG的评估项及度量指标

目前,RAG模型的评估实践主要围绕三个“质量分数”和四个“基本能力”展开,共同服务于“检索”和“生成”这两个核心目标。

质量分数:

上下文相关性,答案忠实性,答案相关性

基本能力:

噪声鲁棒性,否定拒绝,信息集成,反事实稳健性

以下表格总结了适用于RAG评估的指标,分别对应上述的质量分数和基本能力。

RAG的评估框架及Benchmark

业界推出了一系列基准测试和工具来促进RAG的评估。这些工具提供的定量指标,不仅能衡量RAG模型的性能,还能加深我们对模型能力各个维度的理解。像RGB、RECALL和CRUD这些知名基准,侧重于评估RAG模型的基本能力。而RAGAS、ARES和TruLens这类先进的自动化工具,则利用大语言模型本身来判断质量分数。这些工具和基准共同构成了一个强大的RAG评估框架。

评估框架

评估目标

评估方面

定量指标

RGB† 检索质量生成质量 噪声鲁棒性否定性拒绝信息集成反事实鲁棒性 AccuracyEMAccuracyAccuracy
RECALL† 生成质量 反事实鲁棒性 R-Rate (再出现率)
RAGAS‡ 检索质量生成质量 上下文相关性答案忠诚性答案相关性 *余弦相似度
ARES‡ 检索质量生成质量 上下文相关性答案忠诚性答案相关性 AccuracyAccuracyAccuracy
TruLens‡ 检索质量生成质量 上下文相关性答案忠诚性答案相关性 *
CRUD† 检索质量生成质量 创意生成知识密集型 QA纠错总结 BLEUROUGE-LBertScore RAGQuestEval

† 代表基准,‡ 代表工具。* 表示自定义量化指标,偏离传统指标。建议读者根据需要查阅相关文献,了解这些指标背后的量化公式。

RAG的应用场景

RAG技术的应用场景相当广泛,在文本、代码、音频、视频等多个领域都能看到它的身影。

  • 文本

    领域,RAG可用于生成自然语言摘要、构建问答系统和进行对话生成。
  • 代码

    领域,RAG能帮助自动生成代码注释、代码片段和解释性文档。
  • 音频

    领域,它可应用于语音识别、语音生成和音频内容摘要。
  • 视频

    领域,则可用于视频内容摘要、视频片段生成和视频字幕生成等。

可以说,RAG技术正在成为一个强大的通用工具箱,能够在多种应用场景中提供更自然、更准确的生成和理解能力。

RAG的生态总结

下面这张全景图,基于前文对RAG各部分的梳理,整体展现了RAG的下游任务、范式、评估体系、核心技术以及未来展望。

业界的RAG实战

回到QCon现场,这次大会专门为RAG和向量数据库设了一个专题。我们从中挑几个典型的分享,看看各家公司在实战中是怎么做的,又取得了哪些成果。

RAG的落地实践问题

句子互动的联合创始人兼CTO分享了他们在RAG商业化落地中踩过的“坑”,内容很接地气。他们重点谈了表格数据的RAG方案、效果优化、Embedding相似度不够、模型幻觉,以及同一个问题多次回答结果不一致等现实难题。

坑一:表格数据如何RAG

坑二:表格数据RAG效果不佳

坑三:Embedding相似度不准

坑四:自行编造产品问题

坑五:多次回复稳定性不好

RAG的垂直场景应用

金山云人工智能产品中心总经理陈海彪,分享了基于RAG模式构建的“金山云轻舟智问”技术架构及其在各行各业的创新应用。他们围绕RAG体系做了很多能力建设。比如,他们研发了OCR模型、文档智能解析引擎、多模态文档识别引擎等一系列智能化组件。在检索准确性方面,采用了多路递进式召回策略,并且为了优化检索效果,还专门训练了自己的Embedding模型,并建立了一套包含自动和专家人工评测的闭环评估体系。目前,这套方案在金山云售后问答、政务法律、智能合同审查、公文写作助手等场景都已落地,效果不错。当然,他们也坦诚,“知识助手”的挑战依然艰巨,尤其是模型的可解释性和幻觉问题,将是一个需要长期攻克系统工程难题。

多模态的RAG探索

来自Fabara的解决方案负责人张红兵,介绍了他们基于多模态智能引擎的大模型知识库技术应用。针对企业数据源复杂、多源异构的现状,他们的方案提供了一种全新的解决思路:

  • 元数据知识化
  • 元数据智能补齐
  • 元数据关联关系发现和构建

他们采用了一种“图+向量”融合的存储方式——用图来存储确定的知识,用向量来存储非结构化的知识,以此构建一个强大的企业知识中台。然后,借助低代码技术,快速搭建包括智能对话、摘要、标签、生成、text2data在内的各种知识应用,为企业大模型的落地提供了有效的技术支撑。此外,他们还有其他RAG案例,这里就不再一一展开了。

值得注意的是,RAG并非孤立存在,在Agent的复杂应用中,两者也常常结合在一起,共同驱动大模型应用从“能用”走向“好用”。

关于宇宙的好的网名有哪些
关于宇宙的好的网名有哪些

类型:角色扮演

大小:1

语言:简体中文

平台:互联网

游戏下载

热门手游

手机号码测吉凶
本站所有软件,都由网友上传,如有侵犯你的版权,请发邮件haolingcc@hotmail.com 联系删除。 版权所有 Copyright@2012-2013 haoling.cc