--- title: "Split" type: concept tags: [rag, document-processing, chunking, text-splitting] last_updated: 2025-01-16 --- ## Definition Split(文档块/文本片段)是 Indexing 阶段将长文档切分后的产物,每个 Split 的 token 数量满足 Embedding Model 的 Context Window 限制,同时尽可能保持语义完整性。 ## Why Splitting Matters Embedding Model 的 Context Window 有限(通常 512~8192 token),无法直接处理整篇长文档,因此必须切分。切分质量直接影响检索效果: - **Split 过大**:超过 Context Window 无法处理,即使能处理也引入过多噪声 - **Split 过小**:语义不完整,检索到的片段无法支撑 LLM 生成准确答案 - **Split 不重叠**:相邻片段边界处的重要信息可能被切分点切断 ## Common Splitting Strategies 1. **Fixed-size Split**:按固定 token 数切分(简单但可能切断句子) 2. **Sentence-aware Split**:按句子或段落切分(语义更完整) 3. **Recursive Split**:递归地按换行符→句子→单词逐级切分(平衡粒度与完整性) 4. **Semantic Split**:按语义相似度聚类后切分(最理想但实现复杂) ## In RAG Pipeline - **Indexing 阶段输出**:每个文档切分为多个 Split,分别 Embedding 后入库 - **Retrieval 阶段处理**:用户问题检索到的是 Split 粒度的文档块,而非整篇文档 ## Related Concepts - [[Indexing]] — Split 是 Indexing 阶段的产物 - [[Embedding]] — 每个 Split 独立进行向量化 - [[Context Window]] — Split 大小的上限约束