Chunking
Материал из Montelibero
Chunking — разбиение документа на фрагменты (chunks) для последующей обработки через Embedding и RAG.
Зачем
Документ целиком не помещается в контекстное окно и плохо кодируется в один эмбеддинг (теряются детали). Chunking решает это: документ делится на куски, каждый кодируется отдельно, поиск идёт по кускам.
Методы
- Fixed-size — фиксированный размер (например, 500 токенов) с перекрытием (overlap 50 токенов). Просто, но может разрывать смысл.
- Sentence-based — по границам предложений. Сохраняет смысл, но размер варьируется.
- Paragraph-based — по абзацам. Лучше для структурированных текстов.
- Semantic chunking — разбиение по смыслу (embedding similarity между соседними предложениями). Наиболее точно, но дороже.
Перекрытие (Overlap)
Overlap — часть текста, повторяющаяся между соседними кусками. Нужна, чтобы не терять контекст на границах. Типично: 10–20% от размера куска.
Параметры
- Chunk size — размер куска (обычно 200–1000 токенов).
- Overlap — перекрытие (обычно 50–200 токенов).
- Метод — как определяются границы.
Баланс: слишком большие куски → потеря деталей. Слишком маленькие → потеря контекста.
Связанные понятия
- Embedding — каждый чанк кодируется в эмбеддинг.
- RAG — chunking — первый шаг в RAG pipeline.
- Vector database — хранит эмбеддинги чанков.