Цепочка RAG для вывода
В этой статье описывается процесс, который происходит при отправке пользователем запроса в приложение RAG в режиме онлайн. После обработки данных конвейером данных он подходит для использования в приложении RAG. Ряд или цепочка шагов, вызываемых во время вывода, обычно называется цепочкой RAG.
- (Необязательно) Предварительная обработка запросов пользователей. В некоторых случаях запрос пользователя предварительно обрабатывается, чтобы сделать его более подходящим для запроса векторной базы данных. Это может включать форматирование запроса в шаблоне, используя другую модель для перезаписи запроса или извлечения ключевых слов для получения. Выходные данные этого шага — это запрос извлечения, который будет использоваться в следующем шаге.
- Получение. Чтобы получить вспомогательные сведения из векторной базы данных, запрос извлечения преобразуется в внедрение с помощью той же модели внедрения, которая использовалась для внедрения блоков документов во время подготовки данных. Эти эмбединги позволяют сравнить семантическое сходство между запросом извлечения и неструктурированными блоками текста, используя такие меры, как косинусное сходство. Затем блоки извлекаются из векторной базы данных и ранжируются на основе того, как они похожи на внедренный запрос. Возвращаются первые результаты (наиболее похожие).
- Расширение запроса. Запрос, который будет отправлен в LLM, формируется путем расширения запроса пользователя с извлеченным контекстом в шаблоне, который указывает модели, как использовать каждый компонент, часто с дополнительными инструкциями по управлению форматом ответа. Процесс итерации правильного шаблона запроса называется инженерией запросов.
- LlM Generation: LLM принимает дополненный запрос, который включает запрос пользователя и извлекает вспомогательные данные в качестве входных данных. Затем он создает ответ, основанный на дополнительном контексте.
- (Необязательно) После обработки: ответ LLM может обрабатываться дальше, чтобы применить дополнительную бизнес-логику, добавить ссылки или иначе уточнить созданный текст на основе предопределенных правил или ограничений.
Как и в конвейере данных приложения RAG, существует множество последовательных решений по проектированию, которые могут повлиять на качество цепочки RAG. Например, определение количества блоков для получения на шаге 2 и их объединение с запросом пользователя на шаге 3 может значительно повлиять на способность модели создавать качественные ответы.
Во всей цепочке процессов могут применяться различные меры контроля, чтобы обеспечить соответствие корпоративным политикам. Это может включать фильтрацию для подходящих запросов, проверку пользовательских разрешений перед тем, как получить доступ к источникам данных, и применение методов модерации контента к созданным ответам.