Когда вы спрашиваете голосовой помощник о погоде, курсе валют и пробках на дороге, он ищет в интернете свежие данные, извлекает их, после чего «оборачивает» в стандартную фразу и сообщает вам. Помогает ему в этом RAG — Retrieval Augmented Generation, что можно перевести как генерация (ответа) с использованием дополнительной информации.
Технически это метод программного дополнения вывода (большой) языковой модели данными из внешних источников. Его можно применить в задачах, где ИИ требуется постоянно оперировать свежими данными. Также этот метод позволяет адаптировать LLM под собственные базы знаний без необходимости дообучать её.
Например, RAG используют для подключения LLM в режиме реального времени к новостным каналам и лентам социальных сетей, дополнения выдачи поисковых систем актуальной информацией.
Несмотря на простую идею, внутреннее устройство RAG довольно сложно. Прежде, чем добавить данные в свой ответ, необходимо найти релевантную информацию в базе знаний. Для этого информация хранится в виде векторных представлений, которые позволяют выполнять семантический поиск.
Для этого приходится перефразировать запросы, разбивать их на фрагменты, ранжировать поисковую выдачу и делать много другой алгоритмической работы. Это и есть Retrieval — отдельное искусство «найти нужное дерево в лесу».
Подробнее о RAG читайте в этой статье.