--- id: document-chunking title: 文档分块 type: concept tags: [RAG, 数据预处理] sources: ["RAG从入门到精通系列1:基础RAG.md"] last_updated: 2026-04-16 --- ## Definition 文档分块(Chunking / Splitting)是将长文档切分为适合 LLM [[Context Window]] 大小的小块的过程,是 [[RAG]] Indexing 阶段的关键步骤。 ## Problem LLM 的 Context Window 有限(512~8192 token),无法一次处理整本手册或长文章,必须分块喂入。 ## Chunking Strategies | 策略 | 描述 | 适用场景 | |------|------|---------| | 固定长度 | 按 token 数切分(512/1024) | 通用,均匀 | | 段落切分 | 按自然段落边界切分 | 保留语义完整性 | | 递归切分 | 按层级递归切分(标题→段落→句子) | 结构化文档 | | 语义切分 | 按主题/意图边界切分 | 高质量检索 | | Overlap | 块间重叠(如 128 token 重叠) | 防止块边界信息丢失 | ## Key Parameters - **chunk_size**:每个块的最大 token 数(512~1024 常见) - **chunk_overlap**:块间重叠 token 数(通常 64~128) ## Tool Examples - LangChain:`RecursiveCharacterTextSplitter`、`RecursiveJsonSplitter`、`MarkdownHeaderTextSplitter` ## Connections - [[RAG]] ← 必经阶段(Indexing 流程的第一步) - [[向量检索]] ← 下游(分块后向量化,再检索) - [[Embedding]] ← 依赖(每个块独立 Embedding) - [[Context Window]] ← 约束来源(分块大小上限由 Context Window 决定) ## Quality Impact 分块质量直接影响 [[RAG]] 检索效果: - 块太大:Context 稀释有效信息,检索精度下降 - 块太小:丢失上下文,同一主题信息被割裂 - 重叠太小:块边界处的重要信息被截断