Нарезка документов для RAG: почему чанки важнее модели

Плохой ответ RAG-системы почти всегда родом не из модели, а из нарезки. Разбираем, как резать регламенты, договоры, PDF-сканы и тикеты поддержки, что ломается на корпусе из десятков тысяч длинных документов и как понять, что виновата именно нарезка.

9 мин чтения

Качество ответа решается до модели

В RAG модель отвечает только по тем кускам, которые ей принесли. Если нужный абзац не попал в выборку, никакая замена модели этого не исправит: она не знает, что чего-то не хватает, и уверенно отвечает по тому, что есть.

Поэтому диагностику стоит начинать не с промпта, а с вопроса «а был ли правильный кусок в выдаче поиска вообще». В большинстве проектов, которые мы разбирали, ответ на этот вопрос и был диагнозом.

Что именно ломает длинный документ

Корпус из десятков тысяч длинных документов ломает две вещи сразу. Первая: у длинного текста один вектор бесполезен — усреднённый смысл стостраничного регламента не похож ни на один конкретный вопрос. Вторая: чем мельче куски, тем больше их всего, и тем чаще похожие по формулировке, но разные по смыслу фрагменты вытесняют друг друга из топа.

Отсюда практический ориентир: резать по смысловым границам документа, а не по числу символов, и держать размер куска таким, чтобы он отвечал на один вопрос целиком. Перекрытие между соседними кусками нужно ровно для того, чтобы мысль не разрывалась пополам — а не «на всякий случай».

Четыре стратегии нарезки, которые действительно различаются

Разница между ними не в моде, а в том, что становится единицей смысла.

  • По структуре документа — заголовки, пункты, статьи договора. Лучший вариант для регламентов и нормативки: границы уже расставлены автором.
  • Скользящее окно с перекрытием — когда структуры нет: расшифровки, переписка, старые PDF без разметки.
  • Родитель и потомок — ищем по мелким кускам, а в модель отдаём объемлющий раздел. Снимает конфликт «искать удобно мелким, отвечать нужно крупным».
  • Отдельная нарезка таблиц — строка с заголовками столбцов рядом. Таблица, разрезанная как текст, теряет смысл полностью и при этом продолжает уверенно находиться.

Разные источники — разные правила

Единая нарезка для всего корпуса — самая частая причина того, что «в целом работает, но на половине вопросов мимо». Тип источника определяет и границы, и то, что нужно положить рядом с текстом.

  • Регламенты и договоры: границы по пунктам, в метаданных — версия и дата вступления в силу, иначе система отвечает по отменённой редакции.
  • Тикеты поддержки: вопрос и решение в одном куске. Разрезанные по сообщениям, они превращаются в набор реплик без ответа.
  • Сканы и PDF: сначала распознавание и восстановление порядка колонок, только потом нарезка. Мусор на входе не лечится ни размером куска, ни моделью.
  • Вики и база знаний продукта: страница как единица, заголовок раздела как обязательный префикс куска.

Метаданные важнее ещё одного эмбеддинга

К каждому куску стоит хранить источник, раздел, версию, дату и права доступа. Это даёт три вещи сразу: фильтрацию до векторного поиска, ссылку на источник в ответе и возможность не показывать сотруднику то, что ему не положено.

Фильтр по метаданным обычно даёт больший прирост точности, чем переход на более дорогую модель эмбеддингов, и стоит несопоставимо дешевле в эксплуатации.

Как понять, что дело в нарезке

Нужен небольшой набор реальных вопросов с указанием, в каком документе лежит ответ. Дальше проверяется одно: попадает ли нужный фрагмент в топ выдачи поиска. Если попадает, а ответ всё равно плохой — проблема в промпте или модели. Если не попадает — виновата нарезка или индекс, и менять модель бессмысленно.

Такой набор из тридцати-пятидесяти вопросов собирается за день и потом окупается на каждом изменении конвейера. Без него любые правки нарезки — это спор двух мнений.

Коротко

Если правильный кусок не попал в выдачу поиска, ответ уже неверный — модель тут ни при чём.
Резать по смысловым границам источника, а не по числу символов.
Разным типам источников нужны разные правила нарезки: договор, тикет и таблица не режутся одинаково.
Метаданные у куска дают больше точности, чем более дорогая модель эмбеддингов.

Вопросы

Какой размер куска выбрать?

Тот, при котором кусок отвечает на один типичный вопрос целиком. Это свойство корпуса, а не универсальное число: у нормативки это пункт, у расшифровки встречи — смысловой блок на несколько реплик. Подбирается на наборе вопросов, а не по статье в интернете.

Нужно ли перекрытие между кусками?

Нужно там, где границы проведены механически: скользящее окно, расшифровки, тексты без структуры. Если резать по заголовкам и пунктам, перекрытие чаще вредит — оно раздувает индекс и заполняет топ выдачи почти одинаковыми фрагментами.

Что делать с таблицами и сканами?

Обрабатывать отдельной веткой конвейера. Таблицы — построчно, с заголовками столбцов в каждом куске. Сканы — сначала распознавание с восстановлением порядка колонок, и только потом нарезка. Общий путь для всего корпуса здесь всегда даёт худший результат.

Помогает ли гибридный поиск вместо векторного?

Часто да, особенно там, где важны точные термины: артикулы, номера статей, названия систем. Векторный поиск хорошо ловит смысл и плохо — точное совпадение редкого слова. Но гибрид не спасает нарезку: если нужный фрагмент разрезан пополам, его не найдёт ни один из двух методов.

Насколько большим может быть корпус?

Ограничение обычно не в объёме, а в разнородности. Десять тысяч однотипных регламентов ведут себя предсказуемо, а тысяча документов пятнадцати разных форматов требует нескольких веток обработки и куда большего внимания к метаданным.

Читать дальше

OpenAI Agent Builder закрывается: как перенести агента и ничего не сломать

OpenAI отключает Agent Builder 30 ноября 2026 года. Официальных путей два: Agents SDK, если агент живёт в вашем приложении, и ChatGPT Workspace Agents, если он нужен сотрудникам внутри ChatGPT. Экспорт в код есть, но граф процесса он не переносит. Поэтому миграция - это прежде всего проверка: собрать примеры реальных запросов до отключения и прогнать их на новой версии.

ИИ-агенты для бизнеса: какие задачи им поручать

ИИ-агенты для бизнеса полезны там, где нужно разбирать текст, выбирать следующий шаг и работать в нескольких системах. Начните с одного процесса: определите результат, разрешённые действия и способ проверки. Ниже - сценарии и таблица, с которыми можно отобрать задачу для пилота.

Сколько стоит ИИ-агент для бизнеса

Цена ИИ-агента складывается из разработки и расходов на работающий процесс. Тариф модели покрывает лишь часть затрат: остаются интеграции, повторные попытки, сопровождение и ручная проверка. Чтобы сравнить предложения, сначала определите результат, за который готовы платить.

Внедрение ИИ в бизнес: с чего начать пилот

Первый пилот должен ответить на конкретный вопрос: помогает ли система завершать выбранную задачу при допустимых расходах и ошибках? До разработки зафиксируйте исходный процесс и условия приёмки. Это даст основание для решения о запуске, доработке или остановке.

Собрали RAG, а он отвечает мимо? Посмотрим, что реально достаётся из вашего корпуса.