什么是 RAG?RAG 的主要流程是什么?

一、RAG 的定义

RAG 全称 Retrieval Augmented Generation(检索增强生成),核心是给大模型挂载外部知识库,解决大模型的两大核心痛点:

  1. 知识滞后性:训练数据有时间截止点,无法获取最新信息
  2. 私有数据缺失:不了解企业内部文档、私有业务数据等未训练过的内容,本质是让大模型基于外部实时 / 私有知识 “开卷答题”,避免幻觉,提升回答准确性。

二、RAG 的核心流程(通俗版 + 专业版)

通俗记忆:找 → 缝 → 写

  1. :用户提问后,先不调用大模型,去向量数据库中检索和问题语义相关的资料片段
  2. :把用户问题 + 检索到的相关资料,拼接成信息量更大的 Prompt
  3. :将拼接后的 Prompt 输入大模型,让大模型基于资料生成准确、无幻觉的回答

什么是 RAG 中的 Rerank?具体需要怎么做?

一、Rerank 是什么

Rerank(重排序)是 RAG 流程中,对初步检索返回的候选文档列表进行二次精准排序的步骤,核心是在检索速度和回答精度之间做平衡。

通俗类比(招聘流程)
  • 初步检索(向量检索 / Bi-Encoder):相当于 HR 海选简历,速度快但筛选粗糙,只能按关键词 / 浅层语义匹配,选出 Top N(如 Top 100)候选文档,可能混入不相关内容。
  • Rerank(重排序 / Cross-Encoder):相当于业务主管面试,对候选文档做深度语义校验,精准判断文档和用户问题的匹配度,从候选中筛选出真正相关的 Top K(如 Top 5),再喂给大模型生成答案。

二、核心价值

先用向量检索保证检索效率,再用 Rerank 保证召回精度,避免大模型因输入低质量、不相关的文档而产生幻觉、胡说八道,提升最终回答的准确性。

三、具体怎么做(执行步骤)

  1. 初步检索:用向量检索(Bi-Encoder 模型)快速从知识库中召回一批候选文档(如 Top 100),完成粗筛。
  2. 重排序计算:用 Rerank 模型(通常是 Cross-Encoder)对用户问题(Query)和每篇候选文档(Document)做深度交互计算,精准打分,衡量文档对问题的匹配度。
  3. 筛选与输出:按打分结果重新排序,筛选出匹配度最高的少量文档(如 Top 5),作为最终上下文输入大模型生成回答。

什么混合检索?在基于大模型的应用开发中,混合检索主要解决什么问题?

一、混合检索的定义

混合检索是 RAG 应用中的核心优化技术,指将向量检索(语义检索)和关键词检索(精确检索)两种方式结合,通过结果融合重排序,取长补短,大幅提升检索结果的全面性和准确性。

二、两种检索方式的优劣势对比

检索方式 核心优势 核心短板
向量检索(语义检索) 擅长语义理解,能匹配同义 / 近义表达(如 “怎么减肥” 和 “如何瘦身”) 难以精准匹配专有名词、特定术语(如 “iPhone 15”),易出现语义偏差
关键词检索(精确检索) 精准匹配专有名词、关键词,准确率高 无法理解语义,无法匹配同义表达,漏召回率高

三、核心解决的问题

  1. 单一检索的固有缺陷:弥补向量检索 “精准度不足” 和关键词检索 “语义理解缺失” 的短板,兼顾语义匹配和精确匹配。
  2. 提升 RAG 检索质量:避免因检索结果不全、不准导致大模型产生幻觉,提升最终回答的准确性和全面性。
  3. 适配复杂查询场景:同时满足用户的语义化提问和专有名词查询需求,覆盖更多业务场景。

四、完整执行流程

  1. 并行检索:用户提问后,同时执行向量检索(输出语义匹配结果)和关键词检索(输出精确匹配结果)。
  2. 结果融合重排序:通过权重加权、RRF( reciprocal rank fusion)等算法,对两路结果进行融合、重排序,筛选出最优结果。
  3. 输入大模型:将融合后的优质结果作为上下文,喂给大模型生成最终回答。

RAG 的完整流程是怎么样的?

1. 离线索引阶段(准备阶段,前置工作)

目的是构建并入库可检索的知识向量,为在线问答做准备。

  1. 文档预处理:清洗原始文档,按逻辑切分成固定长度的文本块(如 300-500 字 / 块),保证语义完整且便于检索。
  2. 向量生成:使用 Embedding 嵌入模型,将每个文本块转换为固定维度的向量(数值数组),捕捉文本语义。
  3. 向量入库:将向量与元数据一起存入 Milvus、Pinecone 等向量数据库,并建立索引,等待检索。

2. 在线问答阶段(处理用户请求,核心流程)

目的是基于用户问题,精准获取知识并生成回答。

  1. 问题向量化:将用户的查询问题(Query),通过相同的 Embedding 模型转换为问题向量。
  2. 语义检索:拿着问题向量去向量数据库中进行相似度检索(如余弦相似度),召回最相关的 5-10 个文档块。
  3. 重排序(Rerank):对初步召回的候选结果进行二次排序,筛选出匹配度最高的 Top-K 文档,剔除无关内容。
  4. 生成回答:将用户问题 + 检索到的高质量上下文拼接成 Prompt,输入大模型,由大模型基于检索到的真实知识生成准确、可信的回答。