【学习记录】RAG学习记录笔记


前言
近期在学习与AI相关的一些核心理论,感受到现阶段RAG(Retrieval-Augmented Generation,检索增强生成) 已成为解决模型“幻觉”和“知识滞后”问题的首选架构。因此整理了自己的学习笔记/相关基础知识,期待一起学习与进步~
视频学习参考:
【RAG 工作机制详解——一个高质量知识库背后的技术全流程】https://www.bilibili.com/video/BV1JLN2z4EZQ?vd_source=5ad88c34d8895798685be888fefe121d



一、 RAG 知识全景架构图 (Architecture)

为了清晰展示 RAG 的完整链路,结合所学梳理出了以下数据流转架构图。从左至右,涵盖了离线数据处理到在线问答生成的全过程。

在线检索与生成 (Inference Pipeline)

离线数据准备 (Data Pipeline)

转化向量

倒排索引

Query 向量化

Top K 粗排

Top N 精排

Prompt + Question

原始文档/PDF/表格

文档清洗与多模态解析

切片 Chunking

Embedding 模型

向量数据库 Vector DB

关键词索引 Keyword Index

用户提问 Query

Query 改写/优化

Embedding 模型

混合检索 Hybrid Search

重排 Reranking

构建 Context Prompt

大语言模型 LLM

最终答案生成

(注:左侧流程决定了知识库的质量,右侧流程决定了回答的精准度)


二、 业务实例:RAG 是如何工作的?

为了通俗理解,我们以企业 HR 政策咨询机器人为业务模型:

  • 场景设定:公司有 500 页复杂的《员工手册》,用户提问:“北京出差餐补标准是多少?”
  1. 检索 (Retrieval):系统不依赖模型内置记忆,而是将问题转化为向量(Vector),在数学空间中寻找距离最近的信息。
  2. 定位 (Match):系统召回了 3 个相关片段(如:一类城市定义、餐补金额表、职级对应表)。
  3. 增强 (Augment):系统将这些片段填入预设的 Prompt 模板中:“请严格基于以下资料:[片段A, B, C] 回答用户问题。”
  4. 生成 (Generate):LLM 进行逻辑推理后输出:“根据手册,北京属一类城市,餐补为 100 元/天。”

三、 核心技术栈选型(2025 年版参考)

如果需要参与技术选型评估。那么以下是目前的业界标准配置参考(如有误欢迎指正交流):

1. Embedding 模型(数据的“翻译官”)

Embedding 的质量直接决定了“能不能通过语义搜到”。

  • 评估标准:参考 MTEB (Massive Text Embedding Benchmark) 排行榜。
  • 主流选择
  • OpenAI (text-embedding-3):闭源,效果好,适合快速验证 MVP。
  • BGE (BAAI General Embedding):北京智源开源,中文语义理解极佳,国内企业落地首选。
  • Jina AI:支持 8k 长文本,适合处理法律文档、财报等长内容。
2. 向量数据库(RAG 的“外挂硬盘”)
  • Milvus:开源界的“老大哥”,功能强大,适合大规模数据私有化部署,金融、国企大厂常用。
  • Pinecone:云原生 (SaaS),开箱即用,对开发者极度友好,适合海外业务。
  • Elasticsearch (ES):传统搜索霸主,最新版已支持向量搜索,优势在于原生支持混合检索
3. 应用编排框架
  • LangChain:最流行的大模型应用开发框架,组件丰富,但学习曲线稍陡。
  • LlamaIndex:专注于数据索引和检索 (Data-centric),在处理复杂数据结构(如表格、层级文档)时,RAG 效果往往优于 LangChain。

四、 补充:决定 RAG 效果的关键细节

1. 切片策略 (Chunking Strategy)

文档怎么切,直接决定了答案的完整性。

  • 固定大小切分:每 500 字切一段。简单但容易切断语义。
  • 语义切分:按句号、段落或 Markdown 标题切分,保证语义完整。
  • 重叠切分 (Overlap):在切片之间保留 10%-20% 的重叠内容,确保上下文连贯。
2. 混合检索 (Hybrid Search) —— 解决“偏科”问题
  • 痛点:向量检索擅长语义理解(搜“苹果”能关联到“水果”),但不擅长精确匹配(搜产品型号“X-2024”可能搜不到)。
  • 解决方案向量检索 (Vector Search) + 关键词检索 (BM25),再通过 RRF (Reciprocal Rank Fusion) 算法融合排名。
检索方式 原理 优势 劣势 适用场景
关键词检索 (Keyword) BM25 / 倒排索引 精确匹配专有名词、人名、型号 无法理解语义(搜“苹果”搜不到“水果”) 查型号、查具体人名、查错误码
向量检索 (Vector) Embedding / 语义相似度 语义理解能力强,支持模糊搜索 对精确数字、生僻词匹配效果差 开放式问答、意图识别、语义搜索
混合检索 (Hybrid) 向量 + 关键词 + RRF重排 取长补短,准确率最高 系统复杂度高,资源消耗略大 绝大多数生产环境的 RAG 系统
3. 策略博弈:召回 vs 重排 (Retrieval vs Reranking)
  • Step 1 召回:先快速捞出 50 条相关内容(速度快,精度中)。
  • Step 2 重排:引入 Cross-Encoder 模型,对这 50 条进行精细打分,选出最准的 3 条(速度慢,精度高)。
  • PM 决策点:在响应速度 (Latency)回答准确率 (Accuracy) 之间找平衡点。
4. 前沿视野:GraphRAG(知识图谱 + RAG)

传统的 RAG 将文档切片后,片段之间是独立的。面对“跨文档推理”或“全局性问题”(如:总结全书的主旨),传统 RAG 表现不佳。

GraphRAG 通过提取实体(Entity)和关系(Relation)构建知识图谱,能让大模型理解数据之间的关联性。


五、 职位思考:AI-PM 权衡三角 (Trade-offs)

与研发不同,PM 需要在业务约束下做决策。在 RAG 项目中,存在一个“不可能三角”:

  1. 成本 (Cost)
  • Token 消耗:召回的片段越多(Top K 越大),Prompt 越长,调用 GPT-4 等模型的费用越高。
  • 优化策略:使用缓存 (Caching),或对常见问题使用小模型。
  1. 延迟 (Latency)
  • Reranking(重排)虽然准,但会增加 200ms-500ms 的延迟。
  • 优化策略:在实时性要求高的 C 端场景,可能需要牺牲一部分重排精度。
  1. 质量 (Quality)
  • 更复杂的切片和更深的模型能提升质量,但会推高成本和延迟。

六、 RAG 效果评估体系 (Evaluation)

如何判断 RAG 做得好不好?不能只靠人工看。业界主流使用 RagasTruLens 框架进行量化评估:

  • 信实度 (Faithfulness):生成的答案是否完全基于检索到的上下文?(有没有瞎编?)
  • 答案相关性 (Answer Relevance):答案是否回答了用户的问题?(有没有答非所问?)
  • 上下文召回率 (Context Recall):检索到的内容是否包含了回答问题所需的所有信息?

思考与总结

RAG 像是通过“外挂知识库”让大模型具备了垂直领域的专业能力。

1. 决策逻辑::某些场景下,为什么选 RAG 而不是微调 (Fine-tuning)?

比如自己博客的例子:在面对企业私有知识库(如 500 页员工手册)时,为什么不是“把数据喂给大模型训练”?通过学习发现,比如在 B 端业务中,RAG 往往是比微调更优的 ROI(投资回报率)选择,核心逻辑不在于节省 Token,而在于以下三点:

  • 知识的时效性 (Freshness)

  • 微调:模型训练是静态的。一旦手册中的差旅标准从 100 元改为 120 元,微调模型需要重新训练,成本高且周期长。

  • RAG:只需更新向量数据库中的切片,毫秒级生效,完美适配动态业务。

  • 可解释性与溯源 (Grounding)

  • 微调:大模型是一个“黑盒”,可能会产生幻觉(一本正经地胡说八道),且很难给出信息来源。

  • RAG:可以明确告知用户“答案引用自手册第 12 页”,在 HR、法律、金融等严肃场景中,这种有据可依是上线的前提。

  • 能力解耦

  • 结论“微调学说话,RAG 学知识”。 学会利用大模型的强逻辑推理能力(Processor),配合 RAG 的动态知识库(Database),才是目前最优的架构组合。

2. 排查心法:如果大模型回答出错时,如何快速定责?

当 RAG 系统回答错误(例如用户问“北京餐补”,模型答“不知道”或答错)时,可以直接检查连接检索与生成的桥梁——最终 Prompt (Context)

排查路径图解:

上下文包含正确答案

上下文缺失或错误

用户反馈回答错误

检查最终 Prompt 上下文

生成层问题 Generation Issue

检索层问题 Retrieval Issue

优化 Prompt 指令

更换基座模型

检查粗排召回日志

检查重排 Rerank 策略

检查切片 Chunking 是否破碎

核心逻辑解析:

  • Step 1:看 Prompt(黄金检查点)
    这是检索系统提交给大模型的“最终试卷”。如果 Prompt 里已经包含了“北京餐补 100 元”的信息,说明检索全链路(切片+向量+重排)都是工作的
  • Step 2:定责
  • 如果 Prompt 里有答案,但模型答错:说明是**大模型(生成层)**理解能力不足或指令干扰,应优化 Prompt 或升级模型。
  • 如果 Prompt 里没答案:说明是检索层把信息弄丢了。此时才需要深入去查“是粗排没捞到?还是重排误删了?还是切片把关键信息切碎了?”。

总结:不要从源头(数据库)开始查,要从交接点(Prompt)开始查。这能将排查效率提升 50% 以上。


Logo

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

更多推荐