引言

在 AI 领域,“Garbage In, Garbage Out”(输入垃圾,输出垃圾)是公认的黄金法则。而对 RAG 系统来说,检索环节正是决定 “输入质量” 的关键 —— 若无法从知识库中捞出精准、全面的信息,哪怕是性能顶尖的 LLM,也会因 “无材可用” 陷入困境,甚至大概率开启 “一本正经的胡说八道” 模式,也就是我们常说的 AI “幻觉”。

因此,想要从根源解决 RAG“找不到、找不准” 的核心痛点,必须把优化前置。本篇将聚焦检索前的数据预处理与检索中的查询优化两大关键环节,从信息源头的质量把控,到查询入口的精准匹配,双管齐下打通 RAG 检索的 “任督二脉”。

一:优化数据源:索引构建的最佳实践

核心痛点:粗暴地按固定长度切分文档,就像把一本好书随机撕成碎片,重要的上下文和语义关联都丢失了。

1.1 智能分块

放弃按字符数切分的“一刀切”模式,转向更智能的方法:

  • 语义分块: 利用算法(或LLM)识别文本中语义的自然断点,如段落、标题或一个完整的概念单元,确保每个被索引的文本块都“言之有物”。
  • 句子分块: 以完整的句子为单位进行切分,这是最细粒度的语义单元。

1.2 父文档检索器

这是对“句子窗口检索”更通用、更强大的实现,也是我为您补充的一个关键策略。

  • 原理:
  1. 索引时:我们将一份文档切分成许多小的“子文档”(比如单个句子),并对这些“子文档”进行向量化。同时,我们保留一份完整的、较大的“父文档”(比如整个段落或页面)。
  2. 检索时:我们用用户查询去匹配那些精细的“子文档”。
  3. 返回时:一旦命中某个“子文档”,我们不返回这个小片段,而是返回它所属的那个完整的“父文档”作为上下文。
  • 优点:兼具检索的精准度(匹配小块)和上下文的完整性(返回大块),效果拔群。

1.3 从文档生成QA对:创造更多检索入口

这是另一项极大提升召回率的王牌策略。其核心思想是:用户的提问方式千变万化,直接用问题去匹配一段陈述性的文档,在语义上可能存在鸿沟。但用“问题”去匹配“问题”,则要容易和精准得多。

  • 原理:
  1. 对每一个文档块,我们调用LLM,反向生成几个用户可能会提出的、能够被这个文档块回答的问题。
  2. 在构建索引时,我们只对这些新生成的“代理问题”进行向量化。
  3. 同时,我们将这些“代理问题”全部链接到它们所源自的那个原始文档块的ID。
  4. 当用户提问时,系统会在“代理问题”的向量库中进行搜索。一旦匹配成功,系统不会返回这个代理问题,而是通过ID找到并返回那个包含完整答案的原始文档块。
  • 优点: 为单个知识点创建了多个不同的语义入口,即使用户的提问方式很刁钻,只要能和其中一个代理问题对上,就能找到正确答案,召回率大大提升。
from langchain.storage import InMemoryStore

1.4 元数据与图谱

  • 元数据: 为每个文档块打上丰富的“标签”(如来源、日期、作者、章节等),这能让你在检索时进行精确过滤,是实现企业级知识管理的基础。
  • 图RAG: 对于高度结构化、关系复杂的知识(如组织架构、产品依赖关系),构建知识图谱能让RAG处理“A和B有什么关系?”这类多跳查询。

二:理解用户意图:查询转换策略

核心痛点:用户的问题往往很模糊或角度单一,直接拿去检索,就像用一把钥匙去试一整面墙的锁。

2.1 查询扩展

  • 原理: 让LLM扮演“头脑风暴师”,根据用户的原始问题,自动生成多个不同角度、但语义相似的子问题。然后用所有问题去“围剿”答案,最后合并结果。
  • 优点: 大幅提升召回率,尤其擅长处理模糊和多义性查询。
from langchain.retrievers import MultiQueryRetriever

2.2 RAG-Fusion

  • 原理: 这是MultiQueryRetriever的进化版。它同样生成多个子查询,但在合并结果时,使用倒数排序融合 (RRF) 算法,能智能地将那些在多次不同查询中都排名靠前的“共识”文档,提升到最前面。
  • 优点: 相比简单合并,能更有效地筛选出最核心、最相关的结果。
from langchain_core.prompts import ChatPromptTemplate

2.3 “后退一步”提示

  • 原理: 当用户问得太具体时,先让LLM“后退一步”,提炼出一个更概括、更高层的问题。然后用“具体问题”+“概括问题”一起检索,从而同时捕获细节与背景。
  • 优点: 为LLM提供更全面的视角,避免因问题太专而找不到信息。
from langchain_core.runnables import RunnableParallel, RunnablePassthrough

2.4 假设性文档嵌入

  • 原理: 先让LLM根据用户问题“凭空”生成一个理想的、完美的答案。然后,用这个“假想答案”的向量去检索真实文档。
  • 优点: “假想答案”在语义上无限接近最终答案,因此它的向量可以作为一枚精准的“语义导弹”,高效地命中目标文档。

第三章:融合关键词与向量:混合搜索的实现

核心痛点:单纯的向量搜索(语义相似)可能会忽略专有名词、代码、ID等必须精确匹配的关键词。

  • 原理: 将现代的向量搜索与传统的关键词搜索(稀疏检索,如BM25)结合起来。一个负责理解“意思”,一个负责锁定“词语”,取长补短。
  • 优点: 极大地提升了检索的鲁棒性,在需要精确匹配和语义理解的场景下都能表现出色。LangChain的EnsembleRetriever就是为此而生。
# 示例: 使用 EnsembleRetriever 实现混合搜索from langchain.retrievers import EnsembleRetriever

在本篇文章中,我们探讨了多种用于优化RAG系统的检索机制,包括索引构建的最佳实践、多样的查询转换策略以及混合搜索的实现。这些技术旨在从根本上提升检索的准确性与召回率。

然而,获取初步的文档列表只是整个流程的第一步。这些结果在相关性上可能仍然参差不齐,包含了与问题不直接相关的噪音信息。因此,下一步的关键任务,就是如何对这些初步结果进行有效的后处理与筛选。
读者福利大放送:如果你对大模型感兴趣,想更加深入的学习大模型**,那么这份精心整理的大模型学习资料,绝对能帮你少走弯路、快速入门**

如果你是零基础小白,别担心——大模型入门真的没那么难,你完全可以学得会

👉 不用你懂任何算法和数学知识,公式推导、复杂原理这些都不用操心;
👉 也不挑电脑配置,普通家用电脑完全能 hold 住,不用额外花钱升级设备;
👉 更不用你提前学 Python 之类的编程语言,零基础照样能上手。

你要做的特别简单:跟着我的讲解走,照着教程里的步骤一步步操作就行。

包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!

现在这份资料免费分享给大家,有需要的小伙伴,直接VX扫描下方二维码就能领取啦😝↓↓↓
在这里插入图片描述

为什么要学习大模型?

数据显示,2023 年我国大模型相关人才缺口已突破百万,这一数字直接暴露了人才培养体系的严重滞后与供给不足。而随着人工智能技术的飞速迭代,产业对专业人才的需求将呈爆发式增长,据预测,到 2025 年这一缺口将急剧扩大至 400 万!!
在这里插入图片描述

大模型学习路线汇总

整体的学习路线分成L1到L4四个阶段,一步步带你从入门到进阶,从理论到实战,跟着学习路线一步步打卡,小白也能轻松学会!
在这里插入图片描述

大模型实战项目&配套源码

光学理论可不够,这套学习资料还包含了丰富的实战案例,让你在实战中检验成果巩固所学知识
在这里插入图片描述

大模型学习必看书籍PDF

我精选了一系列大模型技术的书籍和学习文档(电子版),它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。
在这里插入图片描述

大模型超全面试题汇总

在面试过程中可能遇到的问题,我都给大家汇总好了,能让你们在面试中游刃有余
在这里插入图片描述

这些资料真的有用吗?

这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理,现任上海殷泊信息科技CEO,其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证,服务航天科工、国家电网等1000+企业,以第一作者在IEEE Transactions发表论文50+篇,获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。

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

😝有需要的小伙伴,可以保存图片到VX扫描下方二维码免费领取【保证100%免费】
在这里插入图片描述
相信我,这套大模型系统教程将会是全网最齐全 最适合零基础的!!

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐