文章详细介绍了RAG应用中文本chunking的方法与策略,包括无感知型与感知型两大类拆分方式,以及如何根据不同应用场景选择合适的chunking方法。通过实验比较了各种策略的性能,指出小chunk(200-400 token)无重叠策略在大多数场景下表现最佳,并提供了针对不同类型文档和嵌入模型的实践建议,帮助开发者优化RAG系统的检索准确性和效率。
RAG 文本chunking方法

Chunking是LLM应用(如RAG、语义搜索、智能体)中的关键预处理步骤,核心是将长文本拆分为语义连贯、适配模型能力的“片段(Chunk)”,以优化向量存储效率与检索相关性。
一、Chunking的基础与必要性
1. 定义
在LLM应用语境中,Chunking 是将大文本(如文章、PDF、对话)拆分为更小片段(Chunks)的过程,需平衡两个目标:
- 片段足够大,包含完整语义信息(避免“无上下文则无意义”);
- 片段足够小,适配嵌入模型的上下文窗口,降低应用延迟与成本。
2. 为什么必须Chunking?
两份研究均指出,Chunking的必要性源于模型限制与检索有效性双重需求:
- 适配嵌入模型的上下文窗口:所有嵌入模型(如llama-text-embed-v2、text-embedding-3-small)有固定token上限(如1024、8196 token),超量文本会被截断,导致关键信息丢失,影响检索准确性。
- 确保检索相关性:若Chunk不含完整语义(如拆分在句子中间),或包含过多无关内容,会导致检索时“漏相关”或“误判无关”——例如语义搜索中,Chunk需能独立回答用户查询(“人类能理解的Chunk,LLM也能理解”)。
- 解决长上下文LLM的痛点:即使是Claude 4 Sonnet(200k窗口)等长上下文模型,也存在“中间信息丢失(Lost-in-the-middle)”问题,且大Chunk会增加推理延迟与成本,Chunking可精准传递关键信息。
二、Chunking核心策略分类
根据文本拆分逻辑,Chunking策略可分为无感知型(不考虑语义/结构)与感知型(基于语义、文档结构),两类策略在Pinecone与Chroma研究中均有详细覆盖:
| 策略类型 | 具体方法 | 核心逻辑与工具 | 适用场景 |
|---|---|---|---|
| 无感知型 | 固定大小Chunking(Fixed-size) | 按固定token数拆分(通常匹配嵌入模型窗口,如llama-text-embed-v2用1024 token),需精准估算不同模型的token化差异。 | 通用场景(如无结构文本),Pinecone推荐作为“初始策略”。 |
| 内容感知型 | 句子/段落拆分(Simple Sentence/Paragraph) | 按语法边界拆分(句号、换行),工具包括NLTK(句子分词器)、spaCy(复杂句分割),避免截断语义。 | 句子级检索(如短问答、分类)。 |
| 内容感知型 | 递归字符拆分(Recursive Character) | LangChain实现:按优先级分隔符(\n\n→\n→.→)拆分,平衡“固定大小”与“语义连贯”。 | 半结构化文本(如博客、报告),Chroma实验中表现稳定。 |
| 文档结构感知型 | 基于格式的拆分(PDF/HTML/Markdown/LaTex) | 保留原始文档结构:PDF提取标题/表格,HTML按<p>/<title>标签,Markdown按标题/列表,LaTex按章节/公式。 | 结构化文档(学术论文、金融报告、网页),工具包括LangChain解析器、Pinecone Assistant。 |
| 语义感知型 | Kamradt语义拆分(Semantic Chunking) | 1. 拆分为句子;2. 生成句子窗口的嵌入;3. 计算相邻窗口的语义距离,距离突变处为Chunk边界(默认95%分位数阈值)。 | 长文档(如书籍),但默认策略Chunk大小不固定,易超模型窗口。 |
| 语义感知型 | 聚类语义拆分(ClusterSemanticChunker,Chroma提出) | 1. 先拆为50token小片段并嵌入;2. 动态规划最大化片段内语义相似度,生成固定大小Chunk(如200/400 token)。 | 需“全局语义最优”的场景(如专业文档检索)。 |
| LLM驱动型 | 上下文Chunking(Contextual Retrieval,Pinecone提及) | 用Claude等LLM生成“文档摘要+Chunk上下文描述”,附在Chunk后嵌入,保留长文档全局信息。 | 超长篇文档(如数百页报告),避免上下文丢失。 |
| LLM驱动型 | LLM直接拆分(LLMChunker,Chroma提出) | 向GPT-4o/Llama 3提示“标记Chunk拆分索引”(如split_after: 3,5),直接按语义逻辑拆分。 | 复杂语义场景(如多主题对话、小说),召回率最优。 |
三、Chunking评估框架与核心指标
传统IR基准(如MTEB、BEIR)聚焦“文档级检索”,无法评估Chunking效果。Chroma团队提出token级评估框架,填补了这一空白,成为Chunking性能对比的核心标准。
1. 评估数据集生成(Chroma创新)
为确保客观性,Chroma采用“LLM生成+过滤”的合成数据集流程:
- 生成查询与摘录:向GPT-4输入语料(如国情咨文、金融报告),生成“事实查询+精准摘录”(摘录需是语料原文,避免幻觉);
- 过滤优化:
- 去重:计算查询嵌入的余弦相似度,过滤相似度>0.7的重复查询;
- 相关性筛选:过滤“查询-摘录”余弦相似度<0.4的无效对(确保摘录与查询强相关);
- 语料覆盖:涵盖5类典型数据(结构化:国情咨文、Wikitext;非结构化:聊天记录;专业领域:金融报告、Pubmed论文),总规模32.8万token,472个有效查询。
2. 核心评估指标(token级)
Chroma提出以“token相关性”为核心的指标体系,弥补传统文档级指标的不足:
- 召回率(Recall):
检索到的相关token数 / 总相关token数,衡量“是否漏检关键信息”; - 精度(Precision):
检索到的相关token数 / 总检索token数,衡量“是否引入无关信息”; - 交并比(IoU):基于Jaccard相似度,
(相关且检索到的token数) / (相关token数 + 检索token数 - 交集),综合评估“相关性与效率”(避免重复token干扰); - Precision_Ω:假设所有含相关token的Chunk均被检索时的精度,代表“理论最优效率”。
四、关键实验结果与核心洞察
Chroma团队基于上述框架,对13种Chunking策略(含6种现有策略、3种改进策略、4种新策略)进行了系统评估,结合Pinecone的实践建议,得出以下关键结论:
1. 不同策略的性能对比(基于text-embedding-3-large)
| 策略 | 最优配置 | 召回率(%) | 精度(%) | IoU(%) | 核心优势 |
|---|---|---|---|---|---|
| LLMChunker(新) | ~240 token无重叠 | 91.9±26.5 | 3.9±3.2 | 3.9±3.2 | 召回率最高,适配复杂语义 |
| ClusterSemanticChunker(新) | 200 token无重叠 | 87.3±29.8 | 8.0±6.0 | 8.0±6.0 | 精度与IoU最优,语义连贯 |
| RecursiveCharacter | 200 token无重叠 | 88.1±30.1 | 7.0±5.6 | 6.9±5.6 | 稳定性强,适配多场景 |
| Kamradt(原始) | ~660 token无重叠 | 83.6±36.8 | 1.5±1.6 | 1.5±1.6 | 语义拆分但Chunk大小不可控 |
| OpenAI默认(TokenText) | 800 token重叠400 | 87.9±31.7 | 1.4±1.1 | 1.4±1.1 | 效率差,不推荐 |
2. Chunk大小与重叠的影响
- Chunk大小:小Chunk(200-400 token)精度更高(减少无关信息),大Chunk(800 token)召回率略升但精度骤降(信息稀释);
- 重叠率:重叠(如400 token重叠200)会导致“重复token检索”,IoU显著下降(无重叠时IoU通常是重叠的2-3倍),仅在小模型窗口(如all-MiniLM-L6-v2)中需少量重叠维持召回。
3. 嵌入模型与语料的适配性
- 模型差异:
- 大模型(text-embedding-3-large):对Chunk策略更鲁棒,LLMChunker与Cluster优势明显;
- 轻量模型(all-MiniLM-L6-v2):需更小Chunk(200-250 token),Recursive与Cluster表现更优;
- 语料差异:
- 结构化语料(国情咨文、Wikitext):Recursive与Cluster策略表现稳定;
- 非结构化语料(聊天记录):LLMChunker召回率最高(95.7%);
- 专业语料(金融、Pubmed):Cluster策略在精度上领先(金融:22.1%,Pubmed:14.8%)。
4. 长上下文LLM的Chunking启示
Pinecone指出,即使是200k窗口的模型(如Claude 4 Sonnet),也需Chunking:
- 避免“中间信息丢失”:长文档中关键信息易被模型忽略,小Chunk可精准定位;
- 降低成本与延迟:大Chunk会增加向量存储量与LLM推理时间,小Chunk可减少无效token处理。
五、实践建议
结合两份研究的结论,Chunking策略选择需遵循“先通用后优化,按场景适配”的原则:
- 初始策略选择:优先采用RecursiveCharacter(200-400 token无重叠),适配80%以上通用场景(如博客、报告),LangChain实现简单且性能稳定;
- 专业场景适配:
- 结构化文档(PDF/HTML/LaTex):用文档结构感知型Chunking(保留标题、表格等元信息);
- 长文档(书籍/论文):用ClusterSemanticChunker(200 token) 平衡精度与语义;
- 复杂语义(多主题对话):用LLMChunker最大化召回率;
- 评估与迭代:
- 测试范围:128-1024 token(小Chunk测精度,大Chunk测召回);
- 核心指标:优先看IoU(综合效率),RAG场景需兼顾召回(>85%)与精度(>3%);
- 后期优化:采用“Chunk扩展”(检索时获取相邻Chunk),在低延迟基础上补充上下文,避免小Chunk的语义割裂。
六、局限性与未来方向
- 当前局限:
- Chroma数据集规模较小(32.8万token),LLM生成的查询风格单一;
- 未考虑Chunking时间成本(如LLMChunker耗时是Recursive的10倍以上);
- 未来方向:
- 结合人类标注数据优化评估;
- 开发“动态Chunking”(根据文本语义密度自动调整大小);
- 整合Chunking与向量索引优化(如分层索引)。
七、如何系统学习掌握AI大模型?
AI大模型作为人工智能领域的重要技术突破,正成为推动各行各业创新和转型的关键力量。抓住AI大模型的风口,掌握AI大模型的知识和技能将变得越来越重要。
学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。
这里给大家精心整理了一份
全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享!

1. 成长路线图&学习规划
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
这里,我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。可以说是最科学最系统的学习成长路线。

2. 大模型经典PDF书籍
书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。(书籍含电子版PDF)

3. 大模型视频教程
对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识。

4. 大模型行业报告
行业分析主要包括对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。

5. 大模型项目实战
学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

6. 大模型面试题
面试不仅是技术的较量,更需要充分的准备。
在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。

全套的AI大模型学习资源已经整理打包,有需要的小伙伴可以
微信扫描下方优快云官方认证二维码,免费领取【保证100%免费】

2702

被折叠的 条评论
为什么被折叠?



