Чанкер и эмбеддер

Как работает чанкер и зачем нужен эмбеддер.

8 мин
По колено
14.03.2026

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

Всего в раге есть четыре обязательные сущности: чанкер, эмбеддер, векторная база данных, ретривер.

Чанкер — клац-клац.

Это сущность для дробления текста на куски перед отправкой этих кусков в эмбеддер для последующей векторизации и добавления в векторную базу данных. Такие куски называются чанки.

Отсюда и адаптированное название — «Нарезатель».

— Не боись, ща разберём все эти термины.

Смари, у тебя есть какой-то пдф с инструкцией про подключение, использование и ремонт холодильника, страниц на 100. Если загрузить в раг весь этот пдф в исходном виде, то при каждом запросе пользователя к ллмке про холодильник, раг будет подгружать в контекстное окно весь этот файл целиком.

Так вроде и отлично, да? Нет! Ты читал предыдущую статью про контекстное окно? Такое событие приведет к деградации ответов — они станут не точные, модель будет терять данные и тупить.

Как так?
Современные модели адекватно и чётко воспринимают информацию, когда её объём не превышает примерно 35% от размера контекстного окна в токенах. После этой отметки, чем больше подаём в контекст, тем более повышается вероятность получить не чёткий ответ, растёт стохастика.

— Ллмка это ведь просто 12 летний ребёнок, запомнивший весь интернет. Не надо на неё давить.

Если мы говорим о корпоративной разработке, пдф файлов точно будет много сотен и далеко не по 100 страниц. А если нужная инфа для ответа ещё и находится в нескольких файлах? Подавать в контекст модели 500 страниц текста? Нет, будет деградация.

Там много полезного, честно.
Там много полезного, честно.

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

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

Эмбеддер — нормально распределил.

Это маленькая моделька, обычно до 1б параметров, формирующая эмбеддинги для каждого токена текста чанка.

Адаптированный перевод будет выглядеть как «Оцифровщик». Такой перевод отразит суть его работы — перевести текст в цифры.

— Ух, написал как кандидат наук. Не будем так.

Эмбеддер берёт текст, разбивает его на токены и делает вектора для каждого из них. В статье Токен и токенизатор говорили о том, что такое токен, а в цикле Математика нейронов сформировали понимание векторов. В контексте рага, вектор называется «Эмбеддинг».

Сценариев работы у эмбеддера 2:

  • 1. Взять запрос пользователя, векторизовать его и передать в векторную базу данных для поиска релевантных кусков текста. Это базовый сценарий работы рага на проде.
  • 2. Взять чанки, сформировать для них вектора и отправить в векторную БД. Это сценарий, когда мы добавляем новый пдф в раг, чтоб модель смогла отвечать, используя его содержимое.

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

Вывод.

Чанкером нарезали текст на куски, стараясь соблюсти структуру повествования, а эмбеддером сформировали вектора для всех чанков.

Вне зависимости от сценария, после эмбеддера подключается векторная база данных.

Что это такое и какую функцию выполняет — простым языком без усложнений читай далее.