大家好,我是朝暮,大厂研发高管,全栈工程师。专注AI工具、智能体、编程。
引言
大模型也要外挂
2025年是大模型场景爆发的元年,随着时间推移,大众对于大模型的应用需求不再局限于泛化知识。此时,你是否思考过,怎样才能更好地结合企业或个人的私域数据,打造出专属智脑呢?不少人在搭建知识库时可能会遇到这样的困扰:为何自己搭建的知识库表现欠佳,如同“人工智障”,而别人的却宛如真正的“人工智能”?其实,答案就藏在RAG(Retrieval-Augmented Generation,检索增强生成)技术里,它也被大家俗称为大模型的“外挂”。
RAG这个名字,想必很多朋友并不陌生,甚至有人已经在Coze、Dify、Fastgpt等SAAS服务中使用过。可能有人会觉得,这不过就是把文档扔给大模型处理,没什么特别的。但实际上,如果你这么想,可就低估了它的复杂性。
今天,我们将深入分析RAG的核心原理,探寻让大模型回答更加精准的通关秘诀。
一、什么是RAG以及如何解决幻觉问题
什么是RAG
RAG 是一种结合检索(Retrieval)和生成(Generation)的技术,主要用于让 AI 在回答问题或生成内容时,能够更好地利用外部知识库,而不是完全依赖于自身预训练的知识。
举个例子,你如果问大模型自己公司的经营数据状况,它可能回答不上来,或者会一本正经的胡说八道。但是如果你将企业的经营数据外挂在它上面,它就能基于这部分数据进行分析回答。
RAG如何解决幻觉
AI 幻觉是指 AI 生成的内容与事实不符或缺乏依据。RAG 通过以下方式减少幻觉:
-
精准检索外部知识 RAG通过向量数据库检索与问题高度相关的权威数据(如企业文档、学术论文等),替代模型依赖自身参数生成答案的模式。例如,医疗问答场景中优先引用最新医学指南而非模型记忆。
-
多级过滤机制 采用混合检索(语义+关键词)、重排序(Rerank)等技术优化结果。例如,阿里云通过元数据标注(文档类型、时效性)提升检索精度,过滤过时或低质信息。
二、RAG的工作原理及如何构建
1、RAG的工作原理
-
索引阶段 将外部知识(如文档、数据库等)分割为文本块,通过嵌入模型(如BERT)转换为向量并存入向量数据库。这一过程需考虑分块粒度、元数据标注等优化手段。
-
检索阶段 用户提问时,模型将问题向量化,通过相似度计算(如余弦距离)从向量库中检索最相关的文本块。先进技术可能结合混合检索(向量+关键词)和重排序(Rerank)优化结果。
-
生成阶段 将检索到的上下文与用户提问整合为提示词(Prompt),输入大模型生成最终答案。此过程可结合对话历史、多模态数据等。
2、RAG的构建流程
-
准备数据:根据实际业务需求整理相关的数据材料,包括但不限于:text、word,xlxs、csv、markdown、pdf等,其中text的文本处理起来最友好,其他需要额外转换处理。
-
数据分片:整理好的数据需要进行分片,就是将长文本切割成独立的一小段,方便存储。
-
数据向量:切割好的文本需要调用量化模型,通过相似度计算(如余弦距离),生成对应的向量数据。目前,比较对中文优化的量化模型有nomic-embed-text(768维度)、bge-large-zh(1024维度)。
-
建立索引:将向量数据存储在向量库中,我们需要设置检索规则,是混合检索(向量+关键字)还是Rerank(重排序)。
三、分块的重要性及五个维度
1、分块的重要性
在RAG(检索增强生成)系统中,分块(Chunking)是构建高效知识库和优化模型性能的核心环节。分块就像是小孩的营养餐,如果营养跟不上身体发育必然会出现问题。比如:在12345的问答场景中,我们将问题和答案分到两个不同的块中,检索时只匹配到了问题,这个时候大模型自然无法基于正确答案去推理生成。
2、RAG的分块重要性主要体现在以下五个维度:
-
提升检索效率与精度:分块通过将长文本切割为合理大小的片段,使向量嵌入更聚焦于局部语义。用户查询的向量与分块后的内容在维度上更匹配,相似度计算更精准,从而提高召回结果的相关性。
-
保障语义与上下文的完整性:过大的块可能导致语义模糊(如多个主题混杂),而过小的块可能丢失上下文(如拆散完整句子)。理想的分块策略需在两者间平衡,确保每个块包含独立语义单元。
-
优化生成质量与可解释性:分块为模型提供精准的上下文锚点,限制其基于可信数据生成答案。实验显示,当分块内容覆盖用户问题75%以上时,模型幻觉率降低60%。
-
灵活适应多场景需求:分块技术可处理非文本数据(如图片、表格),例如对图像生成摘要后再分块检索,实现跨模态知识融合。
-
解决长文本处理的固有难题:大模型的输入(Tokens)长度有限,分块允许系统在单次请求中整合多段相关文本,避免因长文本截断导致信息遗漏。
四、五大分块策略及选型建议
1、五大分块策略
1. 固定大小分块(Fixed Size Chunking)
将文本按固定字符数或Token数量均匀分割,可设置相邻块间的重叠比例(如保留20%重叠内容),避免关键信息被切断。
优点:实现简单,适合标准化文本处理,分块大小统一,便于批量计算和存储优化。
缺点:可能破坏段落逻辑,导致语义断层,无法自适应不同内容结构。
2. 语义分块(Semantic Chunking)
通过嵌入模型计算句子/段落的语义相似性,将高相似度的内容合并为块。计算每个句子的嵌入向量,根据余弦相似度阈值(如低于0.7时切分)动态划分。
优点:生成语义连贯的完整思想单元,检索准确率提升40%以上。
缺点:计算成本高(需多次嵌入计算),相似度阈值需人工调优。
3. 递归分块(Recursive Chunking)
分层使用分隔符(如段落→句子→词语)迭代分割文本:优先按高级分隔符(如\n\n)切分,若块仍超过预设大小,改用次级分隔符(如\n或,)递归切割。
优点:保留自然语言边界(如完整句子),动态适应不同文本复杂度。
缺点:分割结果大小仍存在波动,对无明确结构的文本效果有限。
4. LLM分块(LLM-Driven Chunking)
利用大语言模型理解文本逻辑,自动生成独立语义块,提取原始文本中的核心命题(如“Greg went to the park”),通过提示工程指导LLM合并关联命题。
优点:模仿人类阅读时的分块逻辑,支持跨语言、多模态内容处理。
缺点:生成延迟高(依赖LLM推理),存在模型幻觉风险。
5. 文档接口分块(Document-Structured Chunking)
基于文档固有结构(如标题、章节、表格)定义分块边界,Markdown按#标题层级分割,PDF按段落/表格定位。
优点:保持文档逻辑完整性,支持代码/表格等特殊格式。
缺点:依赖清晰的文档结构,对扫描版PDF等非结构化文档无效。
2、策略对比与选型建议
实践建议:
-
上手快:优选固定分块,简单粗暴,适合通用。
-
结构化:必选接口分块,慢工出细活,避免逻辑断裂。
-
平衡质量与效率:语义分块+递归分块组合,中规中矩,平衡效率与质量。
-
不差钱,多模态:选择LLM分块,大力出奇迹,但需监控幻觉率。
每种策略的侧重都不同,个人实际使用下来感觉固定分块+语义分块效果不错,但还是需要结合实际情况多尝试,最终的选择还是取决于内容的性质、嵌入模型的能力和计算资源等。
五、结语
说到底,RAG不是把文件一传了事那么简单。它更像是一个精密运转的“知识加工厂”——光有原材料(文档)可不够,得靠分块、检索、生成这些技术环节的默契配合。
就像我们切菜不能乱剁,文档分块得讲究策略:有的按段落切,有的按语义分,甚至还要给每块文档打上“小标签”(元数据)方便精准匹配问题。
关注我,赠送DeepSeek 从入门到精通全套资料,以及AI破局三天实战营,连续三天硬核直播。有素人做AI副业从0到百万的案例,有AI数字人口播带货、AI代写带货等热门项目。直接领卡即可免费参加。