RAG-системы в трёх наших кейсах

Всем привет, это Андрей Соколов, руководитель команды обучения моделей с внешним контекстом в Яндекс R&D. В этом посте я на примере трёх наших продуктов расскажу, как устроены RAG-системы и какие подходы работают на практике.

Алиса

Это универсальный ассистент, который работает с пользовательскими запросами. Здесь RAG используется как дополнительная веб-выдача: прежде чем дать ответ, Алиса идёт в поиск за актуальной информацией.

Как мы оцениваем качество

У нас есть три типа бенчмарков:

Multi-Hop QA — насколько модель хорошо работает с несколькими документами одновременно
Атрибуция — умеет ли она цитировать текст и понимать, откуда именно взята информация
Подтверждённость — как она выделяет релевантные данные среди всех остальных

Но чтобы оценивать E2E-качество, этих бенчмарков недостаточно. А если мы замаксим какой-нибудь из них, вся продуктовая система может развалиться.

Поэтому мы проводим замеры: асессоры размечают ответы модели по разным критериям. Проблема в том, что показывать им весь контекст очень дорого и долго. Но как тогда оценивать его утилизацию?

Решение — искать баланс

Если асессорские метрики растут, а подтверждённость падает, модель перестаёт утилизировать контекст. Когда происходит обратная ситуация, модель просто занимается копипастом. Так что нужна золотая середина.

Затем наступает черёд end-to-end-замеров: A/B-экспериментов и улучшений на конечном пользователе. Кроме этого, мы оцениваем робастность и проверяем, не теряем ли мы качество, когда контекста становится больше.

Нейросаппорт

Это классический ассистент, который подключается к бизнесу и даёт ответы пользователям на основе базы знаний. В отличие от Алисы, здесь RAG действует по принципу закрытой генерации и работает с внутренней документацией. Но здесь возникает проблема: в данных часто хранится NDA-информация, а модель может слить её пользователю.

Поэтому в контексте можно выделить небезопасные и приватные чанки, а затем собрать бенчмарк и оценить процент инцидентов. Дообучать будем с SFT: соберём репрезентативный набор из 10 тысяч семплов с описанием поведения.

Затем подключаем RLHF: собираем пары хороших/плохих ответов, учим ревард-модели детектить инциденты, запускаем условные PPO/GRPO. В итоге получаем примерно 19% роста качества относительно промптируемых моделей.

Нейроюрист

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

Сделаем агента — единую языковую модель, точку входа, которую мы сможем дообучать и улучшать. Для этого можно собрать среду с необходимыми инструментами и симулировать общение с пользователем:

Походы в базы знаний
Обращение к документам
Рассуждение

Модель получает observation и выдаёт ответ. Всё сохраняется в виде трейса, который отправляется на оценку ревардов: правильно ли дёрнулись тулы, насколько хорошо написан ответ, не ходила ли моделька по кругу. Затем всё агрегируется, а модель обновляется через policy update.

Какие выводы я сделал

Каждая RAG-система уникальна

Изменения одного компонента влияют на все остальные

Не существует универсального способа оценивать качество

Один из ключевых аспектов RAG — устойчивость и безопасность

LLM нужно продолжать обучать и модифицировать

А полную запись моего доклада смотрите на ютубе и в VK Видео.

Подписывайтесь:
emoji @Yandex4ML
emoji @YandexML
18
🔥 8
4
116 4.7K

Обсуждение 0

Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.

Обсудить в Telegram