AI认知篇4:RAG技术全流程
前言
这是我的agent系列文章的第4篇,该系列分为三部分:
- AI认知篇:详细讲解相关基础概念
- AI实践篇:分享诸如skills怎么写、怎么ai coding、怎么写好prompt等的最佳实践
- AI八股篇:分享我自己整理的应付大模型应用开发岗位必备的八股笔记
如果觉得有帮助,欢迎关注我并期待后续文章!预期是日更哦!当天没更可能是因为太累了,周末会弥补的。
在大模型应用落地的浪潮中,我们常常面临一个核心矛盾:大模型博学但“失忆”,且容易“胡编乱造”。它不知道我们公司昨天的会议纪要,也不了解最新的内部产品文档。为了解决这个问题,检索增强生成(RAG, Retrieval-Augmented Generation) 成为了当前构建私有知识库、智能客服系统的标准答案。
很多人以为RAG就是“调个API、存个向量库”那么简单,但实际落地时往往发现检索不准、回答混乱。今天,我想结合最近的实战经验,和大家深入拆解一个高质量RAG系统背后的完整技术链路,聊聊那些决定成败的关键细节。
一、核心逻辑:为什么是RAG?
在RAG出现之前,想让大模型懂私有数据,主要靠微调(Fine-tuning)。但微调成本高、周期长,且难以实时更新数据。一旦业务文档变了,模型就得重新训练。
RAG提供了一种更优雅的“开卷考试”模式:
- 不修改模型参数:保留大模型通用的推理能力。
- 外挂知识库:将私有数据转化为向量索引。
- 实时检索:用户提问时,先去知识库里找相关片段,再连同问题一起喂给大模型。
这样,模型就能基于最新的事实依据回答问题,大幅减少幻觉,且数据更新只需刷新索引,无需重训模型。
二、离线阶段:打造高质量的“知识索引”
RAG的效果上限,其实在数据预处理阶段就已经决定了。如果灌进去的数据是垃圾,检索出来的必然是垃圾(Garbage In, Garbage Out)。
1. 数据加载与清洗(Data Loading & Cleaning)
这一步的目标是将非结构化数据(PDF、Word、Markdown、网页等)转化为纯净的文本。
- 多格式解析:需要针对不同文件格式使用专门的解析器。例如,PDF中的表格、页眉页脚往往是噪音,需要特殊处理;代码文件则需要保留缩进和结构。
- 噪声过滤:去除无关的特殊字符、乱码、重复的版权声明等,确保进入后续流程的是高纯度文本。
2. 文本分块(Chunking):最关键的策略
直接将整篇文档向量化是不可行的,因为大模型的上下文窗口有限,且长文本会稀释关键信息的权重。如何切分是RAG中最具艺术感的环节。
- 固定长度切分:最简单的方法,按字符数或Token数切分。但容易切断句子语义,导致检索到的片段“没头没尾”。
- 语义分块:更高级的策略。利用段落标记、标题层级或递归字符分割(Recursive Character Text Splitter),尽量保持语义单元的完整性。
- 重叠窗口(Overlap):这是必选动作。相邻的两个块之间必须保留一部分重叠内容(如10%-20%),防止关键信息正好被切在边界上。
- 粒度选择:块太大,包含噪音多,影响相似度计算;块太小,丢失上下文。通常200-500 Token是一个经验上的甜蜜点,具体需根据业务文档类型调整。
3. 向量化(Embedding)
计算机不懂文字,只懂数字。我们需要通过**嵌入模型(Embedding Model)**将每个文本块转化为一串高维向量。
- 语义映射:这个向量空间非常神奇,语义相似的文本(如“如何重置密码”和“忘记密码怎么办”),其向量距离会非常近。
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
内容包含: 1.后端八股大全:多一句没有少一句不行的最精简八股整理,完全可以应付校招八股拷打! 2.速成项目话术:目前有魔改苍穹外卖项目话术(额外扩展了很多技术亮点),能速成拿去面试,后面会更新agent开发等等热门高质量项目话术 3.智力题超详细题解汇总; 4.面试时非技术问题话术整理,绝对震惊面试官一年; 5.算法lc hot100全题系列题解:绝对通俗易懂。 欢迎订阅!

查看4道真题和解析