Техники и методы

Чанкинг

Чанкинг — разбиение длинного текста на небольшие фрагменты (чанки) для последующей векторизации и хранения в базе данных; от стратегии разбиения напрямую зависит, насколько точно RAG-система сопоставляет вопрос с нужным отрывком.

Чанкинг — обязательный этап подготовки данных в RAG-пайплайнах: исходные документы делятся на фрагменты, каждый из которых получает собственный embedding и сохраняется в векторной базе. Размер и способ разбиения напрямую определяют качество последующего поиска.

Существуют несколько стратегий чанкинга: фиксированный размер (fixed-size, например 512 токенов с перекрытием 50–100 токенов для сохранения контекста на границах), семантический (разбиение по абзацам, разделам, предложениям), иерархический (хранение крупных и мелких чанков параллельно для разных типов запросов) и рекурсивный, реализованный в LangChain RecursiveCharacterTextSplitter. Перекрытие между соседними чанками предотвращает потерю смысла на стыках.

Слишком крупные чанки содержат «шум», снижающий точность векторного поиска; слишком мелкие теряют контекст, необходимый для понимания. Неоптимальный чанкинг — одна из главных причин деградации качества ответов в RAG-системах на практике.

В 2025–2026 годах набирают популярность адаптивные подходы: семантическое разбиение на основе детектирования тематических границ (semantic chunking) и метод «late chunking», при котором документ сначала кодируется целиком, а затем делится на части — это позволяет сохранить глобальный контекст в каждом фрагменте. Фреймворки LlamaIndex и LangChain предоставляют десятки стратегий чанкинга из коробки.

Пример

При индексировании корпуса юридических договоров каждый документ разбивается на чанки по 400 токенов с перекрытием 80 токенов на границе клаузул, чтобы поисковый запрос по конкретному условию находил релевантный пункт целиком.

Связанные термины

← Глоссарий