RAG - новый метод общения с LLM

RAG - новый метод общения с LLM
06 Янв, 2024

Не так давно смотрел контент какого-то форума (сорри, запамятовал какого точно), так вот там был выпуск с Михаилом Барщевским (заслуженный юрист России) и каким-то дядькой из Яндекса. Предметом их дискуссии было создание цифровой личности. В итоге оба спикера согласились с тем, что создание цифровой личности обречено на провал, так как факты безудержно меняются (вчера омары были хуже крыс, теперь деликатесы), а знания, заложенные в языковую модель, якобы неизменны... Видимо, дядьки не знают о RAG.

RAG, или Retrieval-Augmented Generation - это метод общения с языковой моделью, который включает механизм поиска данных из базы знаний и включения этих данных в запрос для улучшения качества и релевантности генерации текста. 

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

Пользователь задает вопрос: "Как улучшить производительность запросов в Django ORM?"
Вместо того чтобы давать общий ответ, система использует RAG для поиска актуальной информации, обращаясь к недавним статьям, обсуждениям на форумах или официальной документации Django (к тому источнику знаний, который вы заложили в пайплайн).
Используя собранную информацию, RAG формирует контекст, например: "Для оптимизации запросов в Django ORM рекомендуется использовать методы select_related и prefetch_related, что помогает сократить количество обращений к базе данных и ускорить время ответа при работе со связанными объектами."
В итоге языковая модель получает запрос что-типо такого:
"Ответь на вопрос: {question_user} с учетом контекста: {result_RAG}",
а в контексте нашего примера: 
"Ответь на вопрос: Как улучшить производительность запросов в Django ORM? с учетом контекста: Для оптимизации запросов в Django ORM рекомендуется использовать методы select_related и prefetch_related, что помогает сократить количество обращений к базе данных и ускорить время ответа при работе со связанными объектами."

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

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