# AI 实战系列:检索增强生成 (RAG) 从入门到精通
课程说明:检索增强生成 (Retrieval Augmented Generation, RAG) 是一种优化大语言模型 (LLM) 输出的技术。通过将外部可靠的知识库与模型生成能力相结合,RAG 解决了模型处理超长文档、数据过时以及事实幻觉等核心痛点。
第一课:为什么需要 RAG?
1.1 处理超长文档的困境
当您需要分析数百页的财务报告或庞大的技术文档时,直接将所有文本塞进提示词(Prompt Stuffing)会面临以下限制:
- Token 限制:文档长度可能超出模型的上下文窗口。
- 性能下降:上下文越长,模型捕获关键细节的能力往往会减弱。
- 成本与延迟:过长的提示词会导致推理成本飙升且响应变慢。
1.2 RAG 的核心思路
RAG 不再尝试一次性处理所有信息,而是采用“按需检索”的模式:
- 预处理:将海量文档切分成更小的块(Chunks)。
- 检索:当用户提问时,仅找出与问题最相关的几个块。
- 增强生成:将提问与这些相关块一起交给 AI,让它基于事实回答。
第二课:文档切分策略 (Chunking Strategies)
切分质量直接决定了 RAG 系统的上限。如果切分不当(如将一句话从中间切断),AI 将无法获得完整的上下文。
2.1 基于大小的切分 (Size-Based)
最简单的方法,按照固定字符数切割。
- 优点:实现简单,通用于任何格式。
- 改进:引入重叠 (Overlap)。在相邻块之间保留一部分重复内容,确保语义的连续性。
2.2 基于结构的切分 (Structure-Based)
根据文档的自然结构(如 Markdown 的标题 #、段落 \n\n)进行切分。
- 优点:块的语义最完整,逻辑清晰。
2.3 基于语义的切分 (Semantic-Based)
利用自然语言处理技术,判断句子间的语义相关性,将意思相近的句子组合在一起。
- 优点:最精准,但计算成本最高。
第三课:语义搜索与向量化 (Embeddings)
3.1 什么是文本嵌入 (Text Embeddings)?
嵌入是将文本转换成一串数字(向量)的过程。这串数字代表了文本的“语义内涵”。
- 数值化语义:意思相近的文本,在向量空间中的距离也更近。
- 模型推荐:目前推荐使用 VoyageAI 等专业的嵌入模型服务。
3.2 向量数据库 (Vector Database)
专门用于存储和检索数值向量的数据库。它通过数学计算(如余弦相似度)快速找出与用户问题最匹配的文档块。
第四课:混合搜索 (Hybrid Search) —— 语义与词频的结合
单纯依靠语义搜索有时会漏掉特定术语(如工单 ID INC-2023-Q4-011)。
4.1 BM25 算法 (词频搜索)
传统的关键词搜索算法。它会对稀有的、独特的词给予更高的权重。
4.2 混合检索 (Retriever)
将**语义检索 (Vector)与词频检索 (BM25)**并行运行,然后使用 RRF (Reciprocal Rank Fusion, 倒数排名融合) 算法合并结果。这能兼顾“意思相近”和“词汇匹配”。
第五课:进阶优化:重排序 (Re-ranking)
即使混合检索找到了相关块,排名也不一定百分之百准确。
- 核心逻辑:先用快速检索找出前 N 个候选块,再调用 Claude 等强大的模型对这 N 个块进行精准评分和重新排序。
- 效率技巧:在重排时给文档分配 ID,让模型只返回 ID 序列,避免重复输出全文。
第六课:上下文检索优化 (Contextual Retrieval)
核心痛点:独立的文本块往往丢失了原始文档的背景信息(例如:这个段落属于哪一章?讨论的是哪个项目?)。
6.1 做法
在存入数据库前,让 AI 为每个块写一段简短的“背景说明”并拼接在一起。
- 做法示例:原本只是“该项目由于资金问题停工”,优化后变为“【背景:这是关于 2024 年度基础设施建设报告的总结部分】该项目由于资金问题停工”。
知识自测 (Quiz)
Q1: BM25 算法是如何对搜索词进行优先级排序的? A. 只考虑每句话的第一个词 B. 优先考虑长单词 C. 给所有词分配相同的权重 D. 对在文档中出现频率较低(更具体、罕见)的词给予更高的重要性权重
Q2: 语义搜索 (Semantic Search) 与词频搜索 (Lexical Search) 的主要区别是什么? A. 语义搜索更快 B. 词频搜索需要更多算力 C. 语义搜索仅适用于短文档 D. 语义搜索使用嵌入向量理解含义,而词频搜索寻找精确的词汇匹配
Q3: 向量数据库的主要优化方向是什么? A. 压缩大文件以节省空间 B. 备份原始文档 C. 存储传统的传统关系型表格 D. 存储、比较和检索数值型嵌入向量 (Embeddings)
Q4: 什么是检索增强生成 (RAG)? A. 一种生成随机文本输出的系统 B. 一种将大文档切块并在回答问题时仅检索相关片段的技术 C. 一种提高 AI 模型处理速度的方法 D. 一种从头开始训练大语言模型的方法
Q5: 上下文检索 (Contextual Retrieval) 解决的是什么问题? A. 文档太小没有用 B. 搜索结果返回太慢 C. 文本块在切分后丢失了与其所在文档背景的联系 D. 嵌入模型太贵
Q6: 什么是文本嵌入 (Text Embedding)? A. 文档要点的摘要 B. 文本语义特征的数值表示 C. 存储在数据库中的原始文本 D. 文本文件的压缩版本
Q7: 在 RAG 系统中,倒数排名融合 (RRF) 的作用是什么? A. 将文档切分成块 B. 根据检索到的文本生成回答 C. 合并并对来自多种检索方法的结果进行重新排名 D. 将文本转换为嵌入向量
Q8: 什么时候“基于结构的切分”效果最好? A. 文档非常短时 B. 面对没有格式的纯文本文件时 C. 面对格式良好、有清晰标题和段落层次的文档时 D. 当您追求最快的处理速度时
测验答案 (Answers)
- D
- D
- D
- B
- C
- B
- C
- C