Agent八股文
什么是 RAG?RAG 的主要流程是什么?
一、RAG 的定义
RAG 全称 Retrieval Augmented Generation(检索增强生成),核心是给大模型挂载外部知识库,解决大模型的两大核心痛点:
- 知识滞后性:训练数据有时间截止点,无法获取最新信息
- 私有数据缺失:不了解企业内部文档、私有业务数据等未训练过的内容,本质是让大模型基于外部实时 / 私有知识 “开卷答题”,避免幻觉,提升回答准确性。
二、RAG 的核心流程(通俗版 + 专业版)
通俗记忆:找 → 缝 → 写
- 找:用户提问后,先不调用大模型,去向量数据库中检索和问题语义相关的资料片段
- 缝:把用户问题 + 检索到的相关资料,拼接成信息量更大的 Prompt
- 写:将拼接后的 Prompt 输入大模型,让大模型基于资料生成准确、无幻觉的回答
什么是 RAG 中的 Rerank?具体需要怎么做?
一、Rerank 是什么
Rerank(重排序)是 RAG 流程中,对初步检索返回的候选文档列表进行二次精准排序的步骤,核心是在检索速度和回答精度之间做平衡。
通俗类比(招聘流程)
- 初步检索(向量检索 / Bi-Encoder):相当于 HR 海选简历,速度快但筛选粗糙,只能按关键词 / 浅层语义匹配,选出 Top N(如 Top 100)候选文档,可能混入不相关内容。
- Rerank(重排序 / Cross-Encoder):相当于业务主管面试,对候选文档做深度语义校验,精准判断文档和用户问题的匹配度,从候选中筛选出真正相关的 Top K(如 Top 5),再喂给大模型生成答案。
二、核心价值
先用向量检索保证检索效率,再用 Rerank 保证召回精度,避免大模型因输入低质量、不相关的文档而产生幻觉、胡说八道,提升最终回答的准确性。
三、具体怎么做(执行步骤)
- 初步检索:用向量检索(Bi-Encoder 模型)快速从知识库中召回一批候选文档(如 Top 100),完成粗筛。
- 重排序计算:用 Rerank 模型(通常是 Cross-Encoder)对用户问题(Query)和每篇候选文档(Document)做深度交互计算,精准打分,衡量文档对问题的匹配度。
- 筛选与输出:按打分结果重新排序,筛选出匹配度最高的少量文档(如 Top 5),作为最终上下文输入大模型生成回答。
什么混合检索?在基于大模型的应用开发中,混合检索主要解决什么问题?
一、混合检索的定义
混合检索是 RAG 应用中的核心优化技术,指将向量检索(语义检索)和关键词检索(精确检索)两种方式结合,通过结果融合重排序,取长补短,大幅提升检索结果的全面性和准确性。
二、两种检索方式的优劣势对比
| 检索方式 | 核心优势 | 核心短板 |
|---|---|---|
| 向量检索(语义检索) | 擅长语义理解,能匹配同义 / 近义表达(如 “怎么减肥” 和 “如何瘦身”) | 难以精准匹配专有名词、特定术语(如 “iPhone 15”),易出现语义偏差 |
| 关键词检索(精确检索) | 精准匹配专有名词、关键词,准确率高 | 无法理解语义,无法匹配同义表达,漏召回率高 |
三、核心解决的问题
- 单一检索的固有缺陷:弥补向量检索 “精准度不足” 和关键词检索 “语义理解缺失” 的短板,兼顾语义匹配和精确匹配。
- 提升 RAG 检索质量:避免因检索结果不全、不准导致大模型产生幻觉,提升最终回答的准确性和全面性。
- 适配复杂查询场景:同时满足用户的语义化提问和专有名词查询需求,覆盖更多业务场景。
四、完整执行流程
- 并行检索:用户提问后,同时执行向量检索(输出语义匹配结果)和关键词检索(输出精确匹配结果)。
- 结果融合重排序:通过权重加权、RRF( reciprocal rank fusion)等算法,对两路结果进行融合、重排序,筛选出最优结果。
- 输入大模型:将融合后的优质结果作为上下文,喂给大模型生成最终回答。
RAG 的完整流程是怎么样的?
1. 离线索引阶段(准备阶段,前置工作)
目的是构建并入库可检索的知识向量,为在线问答做准备。
- 文档预处理:清洗原始文档,按逻辑切分成固定长度的文本块(如 300-500 字 / 块),保证语义完整且便于检索。
- 向量生成:使用 Embedding 嵌入模型,将每个文本块转换为固定维度的向量(数值数组),捕捉文本语义。
- 向量入库:将向量与元数据一起存入 Milvus、Pinecone 等向量数据库,并建立索引,等待检索。
2. 在线问答阶段(处理用户请求,核心流程)
目的是基于用户问题,精准获取知识并生成回答。
- 问题向量化:将用户的查询问题(Query),通过相同的 Embedding 模型转换为问题向量。
- 语义检索:拿着问题向量去向量数据库中进行相似度检索(如余弦相似度),召回最相关的 5-10 个文档块。
- 重排序(Rerank):对初步召回的候选结果进行二次排序,筛选出匹配度最高的 Top-K 文档,剔除无关内容。
- 生成回答:将用户问题 + 检索到的高质量上下文拼接成 Prompt,输入大模型,由大模型基于检索到的真实知识生成准确、可信的回答。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 TouHouQing's Blog!
评论



