Skip to main content

Чанкінг документів (Chunking Strategies)(Стратегії розбиття тексту та семантичної сегментації)

Методологія декомпозиції масивних документів і кодових баз на інформаційно самодостатні фрагменти (чанки) для генерації векторних ембеддінгів та точного пошуку в RAG-системах.

1. Огляд концепції та системна проблема

Ембеддінг-моделі (наприклад, text-embedding-3-large або bge-m3) мають жорстко обмежену довжину вхідного вікна (від 512 до 8192 токенів). Навіть якщо модель технічно здатна прийняти великий PDF-документ цілком, вона стискає всю інформацію в єдиний вектор фіксованої розмірності (наприклад, 1536 чисел).

Якщо не проводити гранулярний чанкінг:

  1. Семантичне усереднення (Vector Dilution): Вектор 50-сторінкового документа стає настільки загальним, що втрачає деталі конкретних функцій чи конфігурацій.
  2. Неможливість точної вибірки в RAG: Пошукова система підтягне весь гігантський документ у контекст генеративної LLM, миттєво вичерпавши бюджет токенів.
  3. «Вбивство» структури при наївному розрізанні: Фіксований поділ за кількістю символів (Character Splitting) розриває слова навпіл, відокремлює заголовок функції від її реалізації та знищує таблиці.

Чанкінг (Chunking) — це фундамент RAG-інженерії: він перетворює монолітний сирий текст на колекцію інформаційно самодостатніх, взаємопов'язаних смислових блоків.

2. Архітектурна таксономія та ментальна модель

Залежно від структури даних виділяють чотири архітектурні рівні чанкінгу:

  • 1. Фіксований чанкінг із перекриттям (Fixed-Size Sliding Window): Найпростіший підхід: текст нарізається блоками по $N$ токенів із перекриттям у $M$ токенів. Швидкий, але часто порушує логічні межі абзаців.
  • 2. Рекурсивний символьний чанкінг (Recursive Character Splitting): Ієрархічний підхід (стандарт LangChain/LlamaIndex). Алгоритм намагається розрізати текст спочатку за подвійним перенесенням рядка (\n\n), якщо шматок завеликий — за одинарним (\n), далі за крапкою (. ) і лише в крайньому разі за пробілом.
  • 3. Семантичний чанкінг (Semantic / Embedding-Distance Chunking): Текст розбивається на окремі речення. Для кожного генерується вектор, і обчислюється косинусна подібність між сусідніми реченнями. Кордон чанка встановлюється в точках різкого перепаду семантики (зміна теми розмови).
  • 4. Синтаксичний AST/Markdown чанкінг (Structural Chunking): Враховує синтаксичне дерево документа: розбиває Markdown строго за рівнями заголовків (#, ##, ###), зберігаючи хлібні крихти, а програмний код — за вузлами класів та функцій через Tree-sitter.

3. Технічний пайплайн та внутрішня механіка

Конвеєр професійного чанкінгу складається з 4 етапів:

  1. Document Ingestion & Pre-cleaning (Очищення): Видалення невидимих спецсимволів, уніфікація переносів рядків (\r\n -> \n) та нормалізація кодування Unicode (NFC).
  2. Boundary Detection (Визначення кордонів): Парсер будує синтаксичне дерево (AST) або знаходить безпечні точки розрізу (розділи Markdown, порожні рядки між функціями).
  3. Window Formatting & Overlap Calculation (Нарізка та накладання): Текст групується у блоки розміром 500–700 токенів. До початку кожного наступного чанка додається буфер перекриття (10–15%) від попереднього.
  4. Metadata Enrichment & Context Injection (Збагачення контекстом): До кожного чанка додається префікс із метаданими: [File: api/auth.ts | Class: AuthService | Method: validateToken] Це гарантує, що вектор фрагмента буде знайдено навіть за запитом, де назва методу не згадується в його тілі.

4. Практичні інженерні сценарії в продакшені

01. Індексація кодової бази репозиторію через Tree-sitter

Кожен файл TypeScript парситься в синтаксичне дерево. Окремий чанк формується для кожного експортованого інтерфейсу та кожної функції. Якщо функція займає 20 рядків, вона стає самостійним чанком разом із коментарем JSDoc і списком імпортованих типів.

02. Обробка складних таблиць та фінансових звітів

Звичайна нарізка розриває рядки таблиці, позбавляючи числа сенсу. Професійний чанкінг конвертує кожен рядок таблиці у самодостатній текстовий рядок: «У 2024 році виручка підрозділу Cloud склала $35B, що на 15% більше ніж у 2023», формуючи вектори з високою пошуковою точністю.

03. Парсинг API-документації (OpenAPI / Swagger)

Кожен маршрут (наприклад, POST /v1/payments) виділяється в окремий чанк, що містить шлях, HTTP-метод, опис параметрів, зразок відповіді та коди помилок, що дозволяє агенту безпомилково генерувати клієнтський код.

5. Підводні камені, типові помилки та безпека

  • Проблема «підвішених займенників» (Dangling Pronouns): Якщо речення «Ця функція вимагає прав адміністратора» потрапило в чанк 2, а сама назва функції залишилася в чанку 1, модель не зможе відповісти на запит. Завжди використовуйте метадані зі збагаченням батьківським контекстом (Parent Document Retrieval).
  • Роздування векторної бази від зайвого Overlap: Перекриття понад 25% призводить до дублювання інформації в базі даних, збільшує вартість індексації та підвантажує ідентичні фрагменти в топ результатів.
  • Втрата контексту структури (Loss of Lineage): Чанк без зазначення імені файлу та номера рядка перетворюється на безіменний шум, ускладнюючи генерацію точних посилань у відповідях агента.
/ Часті запитанняSchema.org FAQPage

FAQ: Чанкінг документів (Chunking Strategies)

Маленькі чанки (100–300 токенів) дають дуже точний векторний пошук, але можуть втрачати контекст усієї думки. Великі чанки (1000–2000 токенів) зберігають повну картину, проте їхні ембеддінги стають «розмитими», через що семантична подібність до конкретного вузького запиту падає. Золотий стандарт для технічних текстів — 400–800 токенів.
/ Внутрішня перелінковка
Всі терміни
Промптинг & RAG

RAG (Retrieval-Augmented Generation)

Архітектурний патерн корпоративного AI, що динамічно збагачує контекстне вікно моделі релевантними верифікованими знаннями із зовнішніх сховищ (векторних баз, графів, повнотекстових індексів) перед генерацією фінальної відповіді.

Читати термін
Промптинг & RAG

Векторні ембеддінги (Dense Embeddings)

Математична проєкція тексту, коду чи мультимодальних даних у щільний багатовимірний числовий вектор, де кут і геометрія між координатами відображають їхню смислову спорідненість.

Читати термін
Промптинг & RAG

Гібридний пошук (Dense + Sparse Search)

Архітектура ретривелу в сучасних RAG-системах, що поєднує семантичний векторний пошук (Dense Embeddings) із класичним повнотекстовим індексуванням за ключовими словами (Sparse / BM25) через алгоритми злиття рангів (RRF).

Читати термін
Промптинг & RAG

Markdown AST для агентів (Abstract Syntax Tree)

Ієрархічне деревоподібне представлення розмітки Markdown (стандарт mdast / Unified.js), що дозволяє програмним системам та AI-агентам детерміновано аналізувати, трансформувати та безпечно редагувати технічний контент без використання крихких регулярних виразів.

Читати термін