news 2026/5/5 14:04:11

RAG上下文构建完全指南:从召回策略到最佳实践,一篇搞定!建议收藏

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
RAG上下文构建完全指南:从召回策略到最佳实践,一篇搞定!建议收藏

文章探讨了RAG系统中构建上下文的关键问题,特别是当语义召回的多个chunk来自不同段落时如何选择上下文内容。分析了直接使用召回chunk与召回完整段落两种方案的优缺点,指出应根据文档长度、场景需求选择折中方案。有时为减少token消耗并提升模型准确性,还需对召回数据进行语义合并。强调了上下文构建不是非此即彼的关系,而应根据实际需求灵活处理。


RAG中召回策略有多种多样,但同样构建上下文也有很多方法。

之前在社群有过一次关于关键字和语义检索的讨论,不过当时两个人好像不在一个频道上,他说他的关键字召回,我说我是语义召回,然后讨论到了怎么chunk的问题。

在关键字召回中,需要根据段落和语句进行分词,如jieba分词库;因此一般情况下会使用段落和句子的chunk方式,但是在语义检索中,分词会使用多种组合策略,如标题,段落,句子,长度等;使用不同的检索方式需要用到不同的chunk策略才能达到最好的效果。

然后这里对方又提了一个问题,你是怎么构建上下文的?

当时看到这句话就觉得好莫名其妙,肯定是用召回的数据做上下文啊;但是仔细一想好像又不太对,然后他又问你是怎么做chunk和文档的关联关系的,看到这里发现事情好像远远没有自己想的那么简单。之后,他又问了一句,你会根据chunk的内容,再次召回完整段落吗?

OK,这时就发现问题出在哪了,应该用什么构建上下文?

怎么构建上下文

在RAG中,构建上下文是很重要的一件事,也是整个RAG流程中的最后一步;一般情况下,都会用问题,历史记录,系统提示词以及召回的文档一起构建上下文。

但现在这个问题就出在召回的文档上,应该召回哪些文档?

从语义召回的角度来说,召回文档肯定是根据语义进行召回,召到那些数据就用那些数据做上下文,或者再进行一次rerank重排,之后再做上下文。

但是这里有个问题,假如说你的一个文档有十个段落,然后每个段落被拆分成三个chunk,这时就有三十个chunk,然后你根据语义召回时,召回了其中的五个chunk,然后这五个chunk分别位于其中的三个段落中。

这时,就出现了一个问题,如果从语义相似度的角度出发,应该使用这五个chunk做上下文,因为它们语义相似度最高;但是这里不知道大家有没有想过这样一个问题?

从正常的逻辑上来讲,每个段落的内容相关度应该是最高的;因此,理论来说语义相似度召回的数据也应该是在一个或两个段落中;但是现在的问题是,语义最相关的出现在了其中的三个段落中,也就是说相关性最高的段落中有一部分数据是语义无关的?这里是不是就矛盾了?

说到这里可能很多人觉得很绕,那我们就说的直白点;理论上来说,我们召回了五个chunk,然后这五个chunk存在三个段落中;这时,理论上我们应该把这三个段落的完整内容拿来做上下文,因为段落之间肯定是高度相关的内容。

但事实上,我们可能很多人只是用这五个chunk做上下文,而不是考虑把这三个段落的内容全部拿出来做上下文。所以,这时我们应该怎么选才合适?

其实,这两者之间并不是非此即彼的关系,理论上来说我们可以选择任何一种方式,也可以采用两者混合的方式;举例来说,如果一个文档段落数据长短不一,长的有几百上千字,短的才几十上百字;如果按照统一的段落构建上下文,这时可能会出现大量的噪音数据,并且会严重影响到模型的生成质量和加快token消耗。

所以,根据chunk召回完整段落内容,可以根据不同的场景选择折中的方案,而不是一棒子打死,必须使用某种方式。并且,有时为了减少token消耗,提升模型的准确性,我们可能还会对召回的数据做语义合并,尽量减少上下文的长度。

​最后

我在一线科技企业深耕十二载,见证过太多因技术更迭而跃迁的案例。那些率先拥抱 AI 的同事,早已在效率与薪资上形成代际优势,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在大模型的学习中的很多困惑。

我整理出这套 AI 大模型突围资料包:

  • ✅AI大模型学习路线图
  • ✅Agent行业报告
  • ✅100集大模型视频教程
  • ✅大模型书籍PDF
  • ✅DeepSeek教程
  • ✅AI产品经理入门资料

完整的大模型学习和面试资料已经上传带到CSDN的官方了,有需要的朋友可以扫描下方二维码免费领取【保证100%免费】👇👇
​​

为什么说现在普通人就业/升职加薪的首选是AI大模型?

人工智能技术的爆发式增长,正以不可逆转之势重塑就业市场版图。从DeepSeek等国产大模型引发的科技圈热议,到全国两会关于AI产业发展的政策聚焦,再到招聘会上排起的长队,AI的热度已从技术领域渗透到就业市场的每一个角落。


智联招聘的最新数据给出了最直观的印证:2025年2月,AI领域求职人数同比增幅突破200%,远超其他行业平均水平;整个人工智能行业的求职增速达到33.4%,位居各行业榜首,其中人工智能工程师岗位的求职热度更是飙升69.6%。

AI产业的快速扩张,也让人才供需矛盾愈发突出。麦肯锡报告明确预测,到2030年中国AI专业人才需求将达600万人,人才缺口可能高达400万人,这一缺口不仅存在于核心技术领域,更蔓延至产业应用的各个环节。

​​

资料包有什么?

①从入门到精通的全套视频教程⑤⑥

包含提示词工程、RAG、Agent等技术点

② AI大模型学习路线图(还有视频解说)

全过程AI大模型学习路线

③学习电子书籍和技术文档

市面上的大模型书籍确实太多了,这些是我精选出来的

④各大厂大模型面试题目详解

⑤ 这些资料真的有用吗?

这份资料由我和鲁为民博士共同整理,鲁为民博士先后获得了北京清华大学学士和美国加州理工学院博士学位,在包括IEEE Transactions等学术期刊和诸多国际会议上发表了超过50篇学术论文、取得了多项美国和中国发明专利,同时还斩获了吴文俊人工智能科学技术奖。目前我正在和鲁博士共同进行人工智能的研究。

所有的视频教程由智泊AI老师录制,且资料与智泊AI共享,相互补充。这份学习大礼包应该算是现在最全面的大模型学习资料了。

资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。


智泊AI始终秉持着“让每个人平等享受到优质教育资源”的育人理念‌,通过动态追踪大模型开发、数据标注伦理等前沿技术趋势‌,构建起"前沿课程+智能实训+精准就业"的高效培养体系。

课堂上不光教理论,还带着学员做了十多个真实项目。学员要亲自上手搞数据清洗、模型调优这些硬核操作,把课本知识变成真本事‌!

​​​​

如果说你是以下人群中的其中一类,都可以来智泊AI学习人工智能,找到高薪工作,一次小小的“投资”换来的是终身受益!

应届毕业生‌:无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。

零基础转型‌:非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界‌。

业务赋能 ‌突破瓶颈:传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型‌。

👉获取方式:

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓**

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 9:04:33

未来5年IT人才需求前瞻?哪些方向爆发?哪些岗位会萎缩?编程语言如何选择?就业/空窗期/大龄程序员如何解决?

未来5年IT人才需求前瞻?哪些方向爆发?哪些岗位会萎缩?编程语言如何选择?就业/空窗期/大龄程序员如何解决? 未来5年IT人才需求前瞻与职业发展策略 一、需求爆发方向 人工智能与机器学习 深度学习模型优化(…

作者头像 李华
网站建设 2026/5/1 0:29:45

大数据领域的创新应用案例

大数据领域的创新应用案例:用数据魔法改写行业未来 关键词:大数据、创新应用、数据驱动、行业变革、智能决策 摘要:本文通过8大真实行业案例,深入解析大数据如何从"数据垃圾"变身"数字石油"。我们将用"快…

作者头像 李华
网站建设 2026/5/4 14:16:41

AI原生语音识别避坑指南:常见问题与解决方案

AI原生语音识别避坑指南:常见问题与解决方案 关键词:AI原生语音识别、字错率(WER)、口音适配、远场拾音、噪声鲁棒性 摘要:本文以“AI原生语音识别”为核心,结合开发者实际开发场景,系统梳理了语…

作者头像 李华
网站建设 2026/5/4 12:04:28

计算机大数据毕设实战-基于django+大数据平台的食物营养成分分析与推荐系统的设计与实现基于Django打造食物营养数据可视化分析系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/4/29 22:30:02

C++中的过滤器模式

1、非修改序列算法这些算法不会改变它们所操作的容器中的元素。1.1 find 和 find_iffind(begin, end, value):查找第一个等于 value 的元素,返回迭代器(未找到返回 end)。find_if(begin, end, predicate):查找第一个满…

作者头像 李华