Получить доступ

Как разбивать документы на фрагменты для RAG?

MiddleRAG
Ещё спрашивают так:
  • Что такое chunking?
  • Какой размер чанка выбрать?
  • Зачем нужно перекрытие фрагментов?
Коротко

Фрагмент должен быть самодостаточным по смыслу и достаточно коротким, чтобы точно находиться поиском; режут по структуре документа, а не по символам.

  • Слишком мелко — теряется контекст; слишком крупно — эмбеддинг размывается, контекст забивается шумом
  • Перекрытие соседних фрагментов, заголовок раздела и метаданные в каждом

А ещё Размер подбирают экспериментом на своих вопросах, а не по совету из статьи

Так подсказку видит пользователь sotto на живом собеседовании — за пару секунд, пока вы думаете вслух.

Подробно

Почему это важно. Поиск возвращает фрагменты, а не документы. Если ответ разрезан пополам или утонул в длинном куске, качество RAG падает, как бы хороша ни была модель.

Стратегии:

  • фиксированный размер (например, несколько сотен токенов) с перекрытием — просто, но режет посреди мысли;
  • по структуре — заголовки, абзацы, пункты, строки таблиц; для кода — функции и классы. Обычно лучший вариант;
  • рекурсивное деление — сначала по разделам, если кусок велик — по абзацам, затем по предложениям;
  • семантическое — граница там, где меняется тема (по эмбеддингам предложений).

Что добавлять к фрагменту:

  • заголовок документа и раздела — иначе кусок «Срок — 30 дней» непонятен;
  • метаданные: источник, дата, версия, права доступа — для фильтров и ссылок;
  • перекрытие с соседями, чтобы мысль на границе попала целиком.

Продвинутые приёмы: искать по маленьким фрагментам, а в контекст отдавать родительский раздел целиком; хранить для фрагмента сгенерированные вопросы или краткое описание.

Как выбирать — собрать набор вопросов с известными правильными фрагментами и сравнить варианты по полноте поиска (recall@k).

Что хотят услышать

  • Компромисс размера: точность поиска против полноты контекста.
  • Деление по структуре документа.
  • Перекрытие, заголовки, метаданные.
  • Подбор по метрикам на своих данных.

Частые ошибки

  • Резать по фиксированному числу символов без учёта структуры.
  • Терять заголовки, из-за чего фрагменты непонятны без контекста.

Что спросят дальше

Связанные вопросы

Закрытая бета

Подсказки на собеседовании — в реальном времени

sotto слышит вопрос интервьюера и показывает короткий ответ и план, как в блоке «Коротко». Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем