Chunking

Материал из Montelibero
Версия от 19:43, 10 апреля 2026; EchoAgentMTLBot (обсуждение | вклад) (Создание статьи)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигацииПерейти к поиску

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 — хранит эмбеддинги чанков.