一文讲清构建高效RAG系统:从零到一掌握五种分块技术,零基础小白收藏这一篇就够了!!
分块是构建高效RAG系统的核心,直接影响检索质量和生成结果。文章详细介绍了五种分块技术:固定分块(适合结构未知文档)、递归分块(保留语义边界)、语义分块(基于内容相似度)、结构化分块(利用文档固有结构)和延迟分块(查询时动态切分)。每种方法都有其适用场景和优缺点,选择合适的分块策略能显著提升RAG系统性能,减少"幻觉",充分发挥系统潜力。
前言
分块(Chunking)是构建高效RAG(检索增强生成)系统的核心。从固定分块、递归分块到语义分块、结构化分块和延迟分块,每种方法都在优化上下文理解和准确性上扮演了关键角色。这些技术能大幅提升检索质量,减少“幻觉”(hallucination),并充分发挥你的RAG pipeline的潜力。

在我近一年构建可扩展AI系统的经验中,我发现RAG系统的成功大多取决于检索(retrieval)。你如何切分和存储文档——也就是分块(chunking)——往往是成功背后的隐形推手。
引言
RAG(Retrieval-Augmented Generation)pipeline的性能很大程度上取决于你如何切分文档(分块)。在这篇文章中,我会带你了解RAG的流程,重点讲讲分块在其中的位置,然后深入探讨固定分块、递归分块、语义分块、基于结构的分块和延迟分块这五种技术,包括它们的定义、权衡和伪代码,帮你选择适合自己场景的方法。
RAG工作流程(高层次概览)
标准流程如下:

-
文档摄取与分块
拿来大份文档(PDF、HTML、纯文本) → 切分成小块(chunk) → 计算embeddings → 存储到vector DB中。
-
查询与检索
用户输入查询 → 将查询转为embedding → 检索top-k最相似的块(通过cosine similarity)。
-
增强与提示构建
将检索到的块(加上metadata)注入到LLM的提示中,通常会用模板和过滤器。
-
生成
LLM基于检索到的上下文和模型先验知识生成答案。
因为生成器(generator)只能看到你喂给它的内容,检索质量直接决定了结果。如果分块不合理或无关紧要,哪怕最好的LLM也救不回来。这就是为什么很多人说RAG的成功70%靠检索,30%靠生成。
在深入探讨技术之前,先说说为什么好的分块不是可有可无的:
- Embedding和LLM模型有context window限制,你没法直接处理超大文档。
- 分块需要语义连贯。如果你在句子或概念中间切开,embedding会变得杂乱或误导。
- 如果分块太大,系统可能会漏掉细粒度的相关内容。
- 反过来,如果分块太小或重叠太多,你会存储冗余内容,浪费计算和存储资源。
接下来,我们来探索五种主流的分块技术,从最简单到最复杂。
1. 固定分块(Fixed Chunking)
按固定大小(按token、单词或字符)把文本切成等大的块,通常块之间会有重叠。
这是RAG项目的良好起点,适合文档结构未知或内容单一的场景(比如日志、纯文本)。
实现代码示例:
def fixed_chunk(text, max_tokens=512, overlap=50): tokens = tokenize(text) chunks = [] i = 0 while i < len(tokens): chunk = tokens[i : i + max_tokens] chunks.append(detokenize(chunk)) i += (max_tokens - overlap) return chunks
2. 递归分块(Recursive Chunking)
先按高层边界(比如段落或章节)切分。如果某个块还是太大(超过限制),就递归地进一步切分(比如按句子),直到所有块都在限制范围内。
适合半结构化文档(有章节、段落),你想尽量保留语义边界,同时控制块大小。
它能尽量保留逻辑单元(段落),避免不自然的切分,生成适合内容变化的多种块大小。
递归分块示例(LangChain):
from langchain.text_splitter import RecursiveCharacterTextSplitter# 示例文本text = """输入文本占位符..."""# 定义递归分块器text_splitter = RecursiveCharacterTextSplitter( chunk_size=200, # 每个块的目标大小 chunk_overlap=50, # 块之间的重叠以保持上下文连贯 separators=["\n\n", "\n", " ", ""] # 递归切分的优先级)# 切分文本chunks = text_splitter.split_text(text)# 显示结果for i, chunk in enumerate(chunks, 1): print(f"Chunk {i}:\n{chunk}\n{'-'*40}")
这能确保后续embedding和检索时,不会丢失边界处的关键上下文。
3. 语义分块(Semantic Chunking)
根据语义变化来切分文本。用embeddings(比如sentence embeddings)决定一个块的结束和下一个块的开始。如果相邻段落的相似度很高,就把它们放在一起;当相似度下降时,就切分。
适合需要高检索精度的场景(法律文本、科学文章、支持文档),但要注意embedding和相似度计算的成本,定义相似度阈值也需要仔细调整。
实现代码示例:
from sentence_transformers import SentenceTransformer, utilmodel = SentenceTransformer("all-MiniLM-L6-v2")def semantic_chunk(text, sentence_list, sim_threshold=0.7): embeddings = model.encode(sentence_list) chunks = [] current = [sentence_list[0]] for i in range(1, len(sentence_list)): sim = util.cos_sim(embeddings[i-1], embeddings[i]).item() if sim < sim_threshold: chunks.append(" ".join(current)) current = [sentence_list[i]] else: current.append(sentence_list[i]) chunks.append(" ".join(current)) return chunks
4. 基于结构的分块(Structure-based Chunking)
利用文档的固有结构(比如标题、副标题、HTML标签、表格、列表项)作为自然的切分边界。
比如,每个章节或标题可以成为一个块(或者再递归切分)。
适合HTML页面、技术文档、类似Wikipedia的内容,或任何有语义标记的内容。
根据我的经验,这种策略效果最好,尤其是结合递归分块时。
但它需要解析和理解文档格式,如果章节太大,可能会超过token限制,可能需要结合递归切分。
实现提示:
5. 延迟分块(Late Chunking / 动态/查询时分块)
定义
延迟分块是指推迟文档的切分,直到查询时才决定。不是提前把所有内容切好,而是存储更大的段落甚至整个文档。收到查询时,只对相关段落动态切分(或过滤)。这样做的目的是在embedding时保留完整上下文,只在必要时切分。
Weaviate将延迟分块描述为“颠倒传统的embedding和chunking顺序”。
- 先用长上下文模型对整个文档(或大段)做embedding。
- 然后池化并创建块的embeddings(基于token范围或边界线索)。
概念流程:
- 在索引中存储大段或整个文档。
- 查询时,检索1-2个最相关的段落。
- 在这些段落中,动态切分(比如语义或重叠)出匹配查询的部分。
- 过滤或排序这些块,喂给生成器。
这种方法就像编程中的late binding,推迟到有更多上下文时再决定。

适用场景:
- 大型文档集(技术报告、长篇内容),跨段落的上下文很重要。
- 文档内容经常变化的系统,避免重新切分节省时间。
- 高风险或精度敏感的RAG应用(法律、医疗、监管),误解代词或引用可能代价高昂。
听起来很高级,但它也有成本。
对整个文档(或大段)做embedding计算成本高,可能需要支持长token限制的模型。
查询时的计算成本和潜在延迟也会更高。
普通人如何抓住AI大模型的风口?
为什么要学AI大模型
当下,⼈⼯智能市场迎来了爆发期,并逐渐进⼊以⼈⼯通⽤智能(AGI)为主导的新时代。企业纷纷官宣“ AI+ ”战略,为新兴技术⼈才创造丰富的就业机会,⼈才缺⼝将达 400 万!
DeepSeek问世以来,生成式AI和大模型技术爆发式增长,让很多岗位重新成了炙手可热的新星,岗位薪资远超很多后端岗位,在程序员中稳居前列。

与此同时AI与各行各业深度融合,飞速发展,成为炙手可热的新风口,企业非常需要了解AI、懂AI、会用AI的员工,纷纷开出高薪招聘AI大模型相关岗位。
AI大模型开发工程师对AI大模型需要了解到什么程度呢?我们先看一下招聘需求:

知道人家要什么能力,一切就好办了!我整理了AI大模型开发工程师需要掌握的知识如下:
大模型基础知识
你得知道市面上的大模型产品生态和产品线;还要了解Llama、Qwen等开源大模型与OpenAI等闭源模型的能力差异;以及了解开源模型的二次开发优势,以及闭源模型的商业化限制,等等。

了解这些技术的目的在于建立与算法工程师的共通语言,确保能够沟通项目需求,同时具备管理AI项目进展、合理分配项目资源、把握和控制项目成本的能力。
产品经理还需要有业务sense,这其实就又回到了产品人的看家本领上。我们知道先阶段AI的局限性还非常大,模型生成的内容不理想甚至错误的情况屡见不鲜。因此AI产品经理看技术,更多的是从技术边界、成本等角度出发,选择合适的技术方案来实现需求,甚至用业务来补足技术的短板。
AI Agent
现阶段,AI Agent的发展可谓是百花齐放,甚至有人说,Agent就是未来应用该有的样子,所以这个LLM的重要分支,必须要掌握。
Agent,中文名为“智能体”,由控制端(Brain)、感知端(Perception)和行动端(Action)组成,是一种能够在特定环境中自主行动、感知环境、做出决策并与其他Agent或人类进行交互的计算机程序或实体。简单来说就是给大模型这个大脑装上“记忆”、装上“手”和“脚”,让它自动完成工作。
Agent的核心特性
自主性: 能够独立做出决策,不依赖人类的直接控制。
适应性: 能够根据环境的变化调整其行为。
交互性: 能够与人类或其他系统进行有效沟通和交互。

对于大模型开发工程师来说,学习Agent更多的是理解它的设计理念和工作方式。零代码的大模型应用开发平台也有很多,比如dify、coze,拿来做一个小项目,你就会发现,其实并不难。
AI 应用项目开发流程
如果产品形态和开发模式都和过去不一样了,那还画啥原型?怎么排项目周期?这将深刻影响产品经理这个岗位本身的价值构成,所以每个AI产品经理都必须要了解它。

看着都是新词,其实接触起来,也不难。
从0到1的大模型系统学习籽料
最近很多程序员朋友都已经学习或者准备学习 AI 大模型,后台也经常会有小伙伴咨询学习路线和学习资料,我特别拜托北京清华大学学士和美国加州理工学院博士学位的鲁为民老师(吴文俊奖得主)
给大家准备了一份涵盖了AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频 全系列的学习资料,这些学习资料不仅深入浅出,而且非常实用,让大家系统而高效地掌握AI大模型的各个知识点。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
适学人群
应届毕业生: 无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。
零基础转型: 非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界。
业务赋能突破瓶颈: 传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型。
AI大模型系统学习路线
在面对AI大模型开发领域的复杂与深入,精准学习显得尤为重要。一份系统的技术路线图,不仅能够帮助开发者清晰地了解从入门到精通所需掌握的知识点,还能提供一条高效、有序的学习路径。
- 基础篇,包括了大模型的基本情况,核心原理,带你认识了解大模型提示词,Transformer架构,预训练、SFT、RLHF等一些基础概念,用最易懂的方式带你入门AI大模型
- 进阶篇,你将掌握RAG,Langchain、Agent的核心原理和应用,学习如何微调大模型,让大模型更适合自己的行业需求,私有化部署大模型,让自己的数据更加安全
- 项目实战篇,会手把手一步步带着大家练习企业级落地项目,比如电商行业的智能客服、智能销售项目,教育行业的智慧校园、智能辅导项目等等

但知道是一回事,做又是另一回事,初学者最常遇到的问题主要是理论知识缺乏、资源和工具的限制、模型理解和调试的复杂性,在这基础上,找到高质量的学习资源,不浪费时间、不走弯路,又是重中之重。
AI大模型入门到实战的视频教程+项目包
看视频学习是一种高效、直观、灵活且富有吸引力的学习方式,可以更直观地展示过程,能有效提升学习兴趣和理解力,是现在获取知识的重要途径

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
海量AI大模型必读的经典书籍(PDF)
阅读AI大模型经典书籍可以帮助读者提高技术水平,开拓视野,掌握核心技术,提高解决问题的能力,同时也可以借鉴他人的经验。对于想要深入学习AI大模型开发的读者来说,阅读经典书籍是非常有必要的。
600+AI大模型报告(实时更新)
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
AI大模型面试真题+答案解析
我们学习AI大模型必然是想找到高薪的工作,下面这些面试题都是总结当前最新、最热、最高频的面试题,并且每道题都有详细的答案,面试前刷完这套面试题资料,小小offer,不在话下

AI时代,企业最需要的是既懂技术、又有实战经验的复合型人才,**当前人工智能岗位需求多,薪资高,前景好。**在职场里,选对赛道就能赢在起跑线。抓住AI这个风口,相信下一个人生赢家就是你!机会,永远留给有准备的人。
如何获取?
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)