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

您的位置:首页 > > 教程攻略 > ai资讯 >字节三面被问RAG原理,5分钟就出来了…

字节三面被问RAG原理,5分钟就出来了…

来源:互联网 更新时间:2026-08-25 14:32

图 1:RAG 技术在 QA 问题中的案例

一个简单的例子就能说清楚。想象一下,你问ChatGPT关于OpenAI CEO Sam Altman在几天内突然被解雇又复职的这档子事儿。因为模型训练的数据是有时间限制的,它很可能对此一无所知,只能无奈地告诉你“无法回答”。那么RAG是怎么做的呢?它先跑到外部的知识库里,把关于这个事件的新闻报道全部“扒”下来,然后把这些新闻和你最初的问题捏在一起,变成一个信息量很足的提示,再交给模型去生成一个有根有据的回答。这就是RAG的典型玩法。

02

RAG 技术范式发展

RAG这个概念最早是在2020年提出的,之后便进入了快车道。它的技术演进之路,可以清晰地划分为几个关键阶段。 在早期,大家的精力主要放在“预训练”上,想着怎么给模型先灌输一堆额外知识,让它变强。ChatGPT的出现,引爆了大家对大模型进行“上下文学习”的热情,直接推动了RAG的起飞。随着对LLMs潜能挖得更深,研究又开始聚焦于提升模型的“可控性”和“推理能力”,并且尝试在“微调”过程中做文章。

特别是GPT-4发布以后,RAG的玩法经历了一次大变革。研究的重心开始偏向于将RAG和微调策略结合起来,同时也没有放弃继续优化预训练的方法。

图 2:RAG 技术发展的科技树

从技术范式的角度来梳理,可以把RAG的发展总结为这么几个阶段: **1. 朴素RAG** 前面那个案例,就是最经典的RAG流程,我们叫它“朴素RAG”。它主要由三个步骤构成: * **索引**:把文档库切分成一个个短小的“块”,然后通过编码器把这些“块”转成向量索引。 * **检索**:根据用户提出的问题,计算问题和这些“块”的相似度,找到最相关的那些文档片段。 * **生成**:以检索到的上下文信息为基础,来生成问题的答案。 **2. 进阶RAG** 朴素RAG在实际操作中会遇到不少麻烦,比如检索质量不高、生成的答案不够靠谱、整个流程还能再优化。于是,“进阶RAG”应运而生。它在数据索引、检索前和检索后都加了额外的处理。比如,通过更精细的数据清洗、重新设计文档结构、添加元数据等方式,来提升文本的质量和检索效率。在检索前,可以对问题做重写、路由或扩充,来弥合问题和文档块之间的语义鸿沟。在检索后,则可以通过对检索结果进行重排序,来避免出现“在中间迷失”的现象;或者通过上下文筛选与压缩,来缩短处理窗口的长度。 **3. 模块化RAG** 随着RAG技术越玩越花,一些新的思路开始突破传统的“检索-生成”框架。我们将这一类统称为“模块化RAG”。它在结构上更自由、更灵活,可以加入更多特定的功能模块,比如查询搜索引擎、融合多个答案等等。技术上,它把检索和微调、强化学习等方法融合在一起。在流程上,RAG模块之间的设计和编排也出现了多种模式。当然,这三个范式并不是割裂的,而是继承与发展关系。进阶RAG可以看作是模块化RAG的一种特例,朴素RAG又是进阶RAG的一种特例。

图 3:RAG 范式对比图

03

如何进行检索增强?

RAG系统里有三个核心环节:检索、增强、生成。而“增强”是其中最核心的部分。要构建一个优秀的RAG系统,关键在于想清楚三个问题:检索什么?什么时候检?怎么用检索到的内容? **检索增强的阶段:** 在预训练、微调、推理这三个阶段都可以做检索增强。选择哪个阶段,决定了外部知识被模型“内化”的程度有多深,同时也会对计算资源提出不同的要求。 **检索增强的数据源:** 增强时可以用各种形式的数据。可以是非结构化的文本数据,比如段落、短语甚至单词。也可以是结构化的数据,比如带有索引的文档、知识图谱里的三元组。还有一种玩法是不依赖外部信息,而是直接拿大模型自己生成的内容来作为检索对象。 **检索增强的过程:** 一开始大家用的一次性检索。随着发展,逐渐出现了迭代检索、递归检索,以及智能的“自适应检索”——什么时候该去检索,由大模型自己来决定。

图 4:RAG 核心组件的分类体系

04

RAG 和微调应该如何选择?

除了RAG,优化大模型的主要手段还有提示工程和微调。它们各有各的脾气,也各有各的适用场景。RAG就像是给了模型一本教科书,让它能够按需查资料,特别适合处理那些需要定制化信息检索的查询。而微调呢,更像是让学生把书本知识“内化”到脑子里,更适合去模仿特定的写作风格、结构或格式。微调能提升基础模型的知识、调整输出、教它理解复杂指令,从而提高模型的性能和效率。 但是,微调在整合新知识、快速适应新用例上就不那么灵光了。其实,RAG和微调并不是你死我活的关系,它们是互补的。很多时候,把它们俩加起来用,效果反而最好。

图 5:RAG 与其他大模型微调技术对比

05

如何评价 RAG?

评价一个RAG模型好不好,方法挺多的。主要看三个质量分:上下文相关性、答案忠实性和答案相关性。除此之外,还得看它的四种关键能力:对噪声的鲁棒性、能不能优雅地“拒答”、信息整合本领强不强,以及对抗“反事实”信息的能力。 这些评估维度里既有传统的量化指标,也有专门为RAG量身定做的标准。虽然目前还没统一标准,但已经有一些成熟的评估框架了,比如RGB和RECALL这样的基准测试,还有RAGAS、ARES和TruLens这类自动化评估工具,它们能帮我们全面衡量RAG的表现。 下面的表格汇总了传统量化指标在RAG评估中的应用,以及各种RAG评估框架都评估些什么,包括评估对象、维度和指标,对理解RAG模型的性能和潜在应用很有帮助。

06

未来 RAG 还有哪些发展前景?

RAG的发展势头正猛,未来还有哪些值得研究的方向?这里从三个方面展望一下: **1. RAG的垂直优化** 这个方向主要是为了解决RAG当前面临的几个硬骨头。比如,**长上下文**:检索到的内容太多,超出窗口限制怎么办?如果大模型的上下文窗口真的没有限制了,RAG又该怎么改进?然后是**鲁棒性**:检索到错误信息怎么办?如何过滤和验证?怎么提高模型对抗毒数据和噪声的能力?**与微调的协同**:怎么让RAG和FT完美配合?是串行、交替还是端到端?**Scaling-Law**:RAG模型是否也遵循规模法则?在什么场景下会出现“逆扩展定律”现象?**LLM的角色**:大模型既可以被用来检索,也可以生成,还可以评估。如何进一步挖掘它在RAG中的潜力?最后是**工程实践**:如何降低超大规模语料的检索时延?如何保证检索出来的内容不被大模型泄露? **2. RAG的多模态拓展** 如何把RAG不断演进的技术和思想,拓展到图片、音频、视频、代码等其他数据类型上?一方面,可以用来增强单一模态任务的能力;另一方面,可以用RAG的思路把不同模态的信息融合在一起。 **3. RAG的生态** RAG的应用早就超出了问答系统的范畴,它的影响力正在向更多领域渗透。现在,推荐系统、信息抽取、报告生成等任务都在拥抱RAG。与此同时,RAG的技术栈也在疯狂生长。除了大家熟知的Langchain和LlamaIndex等工具,市场上涌现出了更多针对性的RAG工具,它们有的面向特定场景做定制,有的想方设法降低使用门槛,有的则专注于提升性能,逐渐向生产环境靠拢。

图 6:RAG 的生态系统概览

更多详细内容,请参考原论文:

  • 论文原文:https://arxiv.org/abs/2312.10997
  • 官方仓库:https://github.com/Tongji-KGLLM/RAG-Survey
关于宇宙的好的网名有哪些
关于宇宙的好的网名有哪些

类型:角色扮演

大小:1

语言:简体中文

平台:互联网

游戏下载

热门手游

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