收藏 | RAG大模型构建实战:小白也能学会提升模型输出准确性与实时性
本文详细解析了RAG(检索增强生成)的构建流程与关键技术,通过阐述知识截止、幻觉等大模型痛点,介绍了向量数据库在语义存储与检索中的核心作用。文章深入探讨了文档采集、文本分块、向量生成等关键步骤,旨在帮助读者理解RAG如何通过外部知识库提升大模型输出结果的准确性与实时性,为想要提升大模型应用能力的程序员提供实用指南。
RAG的本质与底层逻辑
前文已经简单介绍了RAG相关知识,简单的可以表示为:
RAG = 检索(Retrieval)+ 生成(Generation)
在不修改大模型参数的情况下,通过外部知识库检索为大模型提供事实依据,让生成结果是基于事实而非模型自身的臆测。
核心痛点解决方案
知识截止:数据训练时大模型的“能力”的源泉,训练数据以外的知识对大模型来说是陌生的。数据存在时效性,模型在某个特定时间点之前所学习到的知识是有效的。
幻觉:模型根据自身的训练数据编造结果,一本正经的胡说八道。
成本:RAG之前,要增强模型能力就必须加入训练数据并重新训练模型,这样成本高、模型能力更新不及时。
图1:RAG架构示意图
RAG构建流程
外部知识包含各类结构化、非结构化信息,如:语音、图片、视频、各类文档(Word、PDF、Excel等)。在RAG中,是通过向量数据库来存储这些结构化、非结构化信息的,它不同于传统的关系型和非关系型数据库。
图2:RAG构建流程
向量数据库的相关背景知识
为什么要用向量数据库?
RAG的核心是:先找相关知识,再生成答案。而“找相关知识”的前提是需要理解信息的“含义”然后才能推理生成最终结果。因此,在存储时需要保留各种信息的语义,而不仅仅是保存信息内容。
传统数据库局限:主要通过关键词搜索的方式,匹配字面相似的信息,而无法匹配语义相似的信息。例如:“2025年营收增长多少”和“2025年Q1收入涨幅”的意思相同但表述不同,关键字匹配只能匹配其中一个。
直接输入LLM的问题:不经过处理直接把文档输入LLM会出现:容易超出上下文窗口;速度慢、成本高;无关信息会干扰答案生成。
向量数据库正是为解决传统数据库无法满足的“大规模语义检索”而产生的,它不是简单存储文本,而是存储文本的语义向量,并能非常高效的(毫秒级)找到与问题向量语义最相似的文本片段。
图3:向量数据库语义检索示意图
语义相似度示例
以下是问题与文档片段的语义相似度对比:
| 问题向量 | 文档向量 | 余弦相似度 |
|---|---|---|
| XX公司2025年总收入多少? | 营收23亿 | 0.92(高度相似) |
| 研发12亿 | 0.15(几乎无关) |
表1:语义相似度对比示例
向量数据库如何保留语义?
首先需要明确的是:语义的载体是“向量”,而非数据库本身。向量数据库本身不生产“语义”,它的核心作用是:
存储已经编码了语义的向量(由Embedding模型生成)
按“语义相似度”快速找到匹配的向量
简单说:Embedding模型是“语义翻译官”(把文字转语义向量),向量数据库是“语义仓库 + 语义检索”
文档采集
文档采集是RAG的基石,文档采集的质量直接决定了后续检索是否充足、准确。文档采集不仅仅是“上传文件”,它是一个将多格式、多来源的原始数据转化为纯净、结构化文本的复杂过程,它包含三个关键步骤:连接数据源 → 解析不同格式的文件 → 清洗与预处理。
连接与获取数据源
需要从不同的数据源获取数据,常见的数据源来自:
各类文档:PDF、Word、Excel、PPT、TXT等
云端/数据库:Notion、Confluence、Google Drive、SharePoint等
公开网页:技术文档、博客、行业报告等
PDF文档的解析策略
PDF是最常见的文档格式,但其内部结构千差万别,对解析工具的选择至关重要:
| 文档类型 | 推荐工具/技术 | 技术细节与适用场景 |
|---|---|---|
| 纯文本/排版简单 | PyMuPDF | 全能型库,不仅能提取文本,还能提取图片、元数据 |
| 扫描件/图片型 | Tesseract OCR | 使用OCR技术进行图片文字识别,支持多语言 |
| 高结构化需求 | Docling | 进阶工具,能精准识别文档的结构,转换为JSON格式 |
表2:PDF文档解析工具对比
文本分块(Chunking)
文本分块(Chunking)是RAG构建流程中承上启下的核心环节。如果说文档采集决定了数据的质量,那么文本分块策略就决定了知识的“颗粒度”。
简单来说,分块就是将长文档切分成适合模型处理的较小片段。这并非简单的“切蛋糕”,而是在语义完整性与检索精准度之间寻找最佳平衡点。
图4:文本分块策略示意图
分块的目的
适配模型窗口限制:无论是Embedding模型还是LLM,都有上下文长度限制,分块确保单个片段能被模型完整处理
提升检索信噪比:用户的问题通常是针对文档的某个具体细节,小颗粒度的分块能更精准地匹配实际意图
降低成本、延迟:处理和存储大量无用的长文本会显著增加计算成本和响应时间
分块策略对比
根据技术复杂度和适用场景,目前主流的分块策略主要分为以下几类:
基础策略
| 策略名称 | 核心原理 | 优点 | 缺点 |
|---|---|---|---|
| 固定大小 | 设定固定的字符数进行硬切分 | 实现简单,计算开销小 | 极易切断句子,破坏语义完整性 |
| 基于句子/段落 | 利用NLP工具识别句子边界切分 | 保证基本语义单元完整性 | 段落长短不一,块大小差异大 |
表3:基础分块策略对比
进阶策略
| 类型 | 核心思想 | 优点 | 缺点 |
|---|---|---|---|
| 递归字符分块 | 由粗到细的分隔符递归分割 | 最大程度保留语义完整性 | 复杂格式文档效果有限 |
| 基于文档结构 | 利用Markdown、HTML等天然结构切分 | 逻辑完整性极高 | 强依赖文档解析质量 |
| 语义分块 | 利用Embedding计算句子间语义相似度进行切分 | 语义最连贯,完整性高 | 计算成本高昂 |
| 滑动窗口 | 适当的块重叠,确保跨块语义不丢失 | 防止边界信息丢失 | 存储与计算成本激增 |
表4:进阶分块策略对比
向量生成(Embedding)
向量生成是连接“人类语言”与“机器计算”的纽带,它是将输入的文字转化为数字向量,从而可以通过计算实现“语义的相似度”。
图5:Embedding向量化过程
向量化步骤
当一段文本进入Embedding模型时,通过以下步骥对其向量化:
分词与嵌入层:对文本进行分词(Tokenization)处理;每个词被映射到一个初始的高维向量(Word Embedding)
上下文编码:(核心)通过Transformer自注意力机制,模型会分析每个词与句子中其他词的关系;经过多层(如BERT的12层)的计算,每个词的向量都融合了深层的上下文信息
池化与输出:为了得到整个句子的向量,模型通常会对所有词向量进行均值池化(Mean Pooling)或使用特殊CLS标记向量;最终输出一个固定长度的向量(如768维或1536维)
向量存储
将上一步生成的“语义向量”进行持久化存储,并构建向量索引以支持高效检索。这不仅仅是简单的“存数据”,而是一个涉及数据关联、索引构建和存储优化的系统过程。
存储步骥
向量数据库连接与初始化:初始化向量数据库的客户端,并指定或创建一个集合(Collection)或索引
数据插入:将准备好的“向量 + 文本 + 元数据”打包,写入数据库
构建索引(最耗时、最关键):缺乏索引的数据库在检索时会进行暴力搜索(时间复杂度O(N)),向量数据库通过构建近似最近邻(ANN)索引来提升检索效率
至此,RAG外部知识库就创建好了,其在不改变模型本身的情况下,通过“检索+生成”的协同,让大模型能够利用外部知识,从而生成更准确、更专业、更可信的结果。
最后
近期科技圈传来重磅消息:行业巨头英特尔宣布大规模裁员2万人,传统技术岗位持续萎缩的同时,另一番景象却在AI领域上演——AI相关技术岗正开启“疯狂扩招”模式!据行业招聘数据显示,具备3-5年大模型相关经验的开发者,在大厂就能拿到50K×20薪的高薪待遇,薪资差距肉眼可见!
业内资深HR预判:不出1年,“具备AI项目实战经验”将正式成为技术岗投递的硬性门槛。在行业迭代加速的当下,“温水煮青蛙”式的等待只会让自己逐渐被淘汰,与其被动应对,不如主动出击,抢先掌握AI大模型核心原理+落地应用技术+项目实操经验,借行业风口实现职业翻盘!
深知技术人入门大模型时容易走弯路,我特意整理了一套全网最全最细的大模型零基础学习礼包,涵盖入门思维导图、经典书籍手册、从入门到进阶的实战视频、可直接运行的项目源码等核心内容。这份资料无需付费,免费分享给所有想入局AI大模型的朋友!
👇👇扫码免费领取全部内容👇👇
部分资料展示
1、 AI大模型学习路线图
2、 全套AI大模型应用开发视频教程
从入门到进阶这里都有,跟着老师学习事半功倍。
3、 大模型学习书籍&文档
4、AI大模型最新行业报告
2025最新行业报告,针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。
5、大模型大厂面试真题
整理了百度、阿里、字节等企业近三年的AI大模型岗位面试题,涵盖基础理论、技术实操、项目经验等维度,每道题都配有详细解析和答题思路,帮你针对性提升面试竞争力。
6、大模型项目实战&配套源码
学以致用,在项目实战中检验和巩固你所学到的知识,同时为你找工作就业和职业发展打下坚实的基础。
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
- 👇👇扫码免费领取全部内容👇👇
这些资料真的有用吗?
这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理,现任上海殷泊信息科技CEO,其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证,服务航天科工、国家电网等1000+企业,以第一作者在IEEE Transactions发表论文50+篇,获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。
资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的技术人员,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】