32 lines
1.6 KiB
Markdown
32 lines
1.6 KiB
Markdown
---
|
||
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 大小的上限约束
|