Что такое RAG: всестороннее введение в генерацию с дополнением поиска

Что такое RAG: всестороннее введение в генерацию с дополнением поиска

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

Введение

Retrieval Augmented Generation (RAG) представляет собой многообещающее решение для преодоления проблем, присущих работе с большими языковыми моделями (LLM), включая пробелы в предметных знаниях, проблемы с фактической точностью и галлюцинации. Интегрируя внешние источники знаний, такие как базы данных, RAG улучшает LLM, делая их особенно ценными в средах, насыщенных знаниями, или в предметно-ориентированных приложениях, требующих актуальных знаний. В отличие от других методов, RAG не требует переобучения LLM для конкретных задач, что является значительным преимуществом. Его недавняя популярность, особенно в диалоговых агентах, подчеркивает его актуальность.

Недавнее исследование Gao et al. (2023) дает ценные сведения о ключевых выводах, практических последствиях и передовых подходах RAG. В исследовании рассматриваются различные компоненты систем RAG, включая методы поиска, генерации и дополнения, а также их методологии оценки, приложения и связанные технологии.

Что такое RAG

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

Ключевые компоненты RAG

Процесс можно разбить на следующие этапы/компоненты:

  1. Ввод: это вопрос, задаваемый системе LLM. Без RAG LLM отвечает на этот вопрос напрямую.
  2. Индексация: при использовании RAG набор связанных документов индексируется. Это включает разбиение документов на фрагменты, создание эмбеддингов для этих фрагментов и их последующую индексацию в векторном хранилище. Во время вывода запрос аналогичным образом эмбеддируется.
  3. Поиск: релевантные документы извлекаются путем сравнения запроса с индексированными векторами, в результате чего выбираются «Релевантные документы».
  4. Генерация: извлеченные документы объединяются с исходным запросом для предоставления дополнительного контекста. Этот объединенный текст и запрос затем подаются в модель для генерации ответа, который становится окончательным выводом, предоставляемым пользователю.

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

Парадигмы RAG

В последние годы наблюдалась эволюция систем RAG от Naive RAG к Advanced RAG и Modular RAG. Этот прогресс был направлен на преодоление конкретных проблем, связанных с производительностью, стоимостью и эффективностью.

Naive RAG

Naive RAG работает через традиционный процесс индексации, поиска и генерации, описанный выше. По сути, он использует ввод пользователя для поиска релевантных документов, которые затем объединяются с запросом и передаются модели для генерации окончательного ответа. Если приложение включает многоходовое диалоговое взаимодействие, история разговора может быть интегрирована в запрос.

Однако Naive RAG имеет свои ограничения, включая проблемы с низкой точностью (приводящие к несоответствию извлеченных фрагментов) и низкой полнотой (неспособность извлечь все релевантные фрагменты). Существует также риск того, что LLM будет предоставлена устаревшая информация — основная проблема, которую системы RAG изначально призваны решать. Это может привести к галлюцинациям и генерации плохих, неточных ответов.

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

Advanced RAG

Advanced RAG предлагает решения недостатков, наблюдаемых в Naive RAG, особенно за счет повышения качества поиска. Это улучшение включает оптимизацию на этапах до поиска, поиска и после поиска.

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

Дальнейшее улучшение на этапе поиска может быть достигнуто за счет оптимизации самой модели эмбеддинга. Эта оптимизация напрямую влияет на качество контекстных фрагментов. Стратегии могут включать тонкую настройку эмбеддингов для улучшения релевантности поиска или использование динамических эмбеддингов, которые лучше улавливают контекстные нюансы (например, модель embeddings-ada-02 от OpenAI).

Оптимизация после поиска направлена на преодоление ограничений размера контекстного окна и управление шумной или отвлекающей информацией. Переранжирование — распространенный подход для решения этих проблем, включающий такие методы, как перемещение релевантного контекста к краям запроса или пересчет семантического сходства между запросом и релевантными текстовыми фрагментами. Методы сжатия запроса также могут помочь в управлении этими проблемами.

Modular RAG

Modular RAG, как следует из названия, улучшает функциональные модули в рамках архитектуры генерации с дополнением поиска. Он включает интеграцию таких модулей, как модуль поиска для поиска по сходству, и применение тонкой настройки в поисковике. Как Naive RAG, так и Advanced RAG можно рассматривать как частные случаи Modular RAG, состоящие из фиксированных модулей. Однако Extended RAG вводит дополнительные модули, такие как поиск, память, слияние, маршрутизация, прогнозирование и адаптер задач, каждый из которых решает отдельные задачи. Эти модули можно перенастраивать для адаптации к конкретным контекстам задач, что обеспечивает Modular RAG большее разнообразие и гибкость. Эта гибкость позволяет добавлять, заменять или настраивать модули в зависимости от требований задачи.

С увеличением гибкости построения систем RAG было предложено множество методов оптимизации для уточнения конвейеров RAG:

  1. Исследование гибридного поиска: этот подход объединяет методы поиска, такие как поиск по ключевым словам и семантический поиск, для извлечения релевантной и контекстно-богатой информации, особенно полезной для обработки различных типов запросов и информационных потребностей.
  2. Рекурсивный поиск и механизм запросов: это включает рекурсивный процесс поиска, который начинается с небольших семантических фрагментов и постепенно извлекает более крупные фрагменты для обогащения контекста, находя баланс между эффективностью и богатством контекста.
  3. StepBack-prompt: этот метод подсказок позволяет LLM абстрагировать концепции и принципы, направляя рассуждения к более обоснованным ответам. Применение этого метода в рамках RAG позволяет LLM выходить за рамки конкретных примеров и при необходимости рассуждать более широко.
  4. Подзапросы: для различных сценариев могут использоваться различные стратегии запросов, такие как древовидные запросы или последовательный запрос фрагментов. Например, LlamaIndex предлагает механизм запросов с подвопросами, разбивающий один запрос на несколько вопросов, использующих различные релевантные источники данных.
  5. Гипотетические эмбеддинги документов (HyDE): HyDE генерирует гипотетический ответ на запрос, эмбеддирует его и использует для извлечения документов, похожих на гипотетический ответ, вместо использования самого запроса.

Структура RAG

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

Поиск

Поиск в системе RAG включает извлечение высоко релевантного контекста из поисковика, который можно улучшить различными способами:

Улучшение семантических представлений:

Совершенствование стратегий разбиения на фрагменты имеет решающее значение для выбора наиболее подходящей стратегии в зависимости от содержимого и требований приложения. Разные модели могут преуспевать с разными размерами блоков, например, sentence transformers для отдельных предложений и text-embedding-ada-002 для блоков, содержащих 256 или 512 токенов. Эксперименты с различными стратегиями разбиения являются обычной практикой для оптимизации поиска в системе RAG, с учетом таких факторов, как длина вопроса пользователя, приложение и лимиты токенов.

Тонкая настройка моделей эмбеддинга может потребоваться для специализированных доменов, чтобы обеспечить точное понимание запросов пользователей. Модели эмбеддинга, такие как BGE-large-EN, разработанные BAAI, могут быть донастроены для предметных знаний или конкретных последующих задач для оптимизации релевантности поиска.

Выравнивание запросов и документов:

Методы переписывания запросов, такие как Query2Doc, ITER-RETGEN и HyDE, фокусируются на уточнении запросов, которые лишены семантической информации или содержат неточные формулировки.

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

Выравнивание поисковика и LLM:

Тонкая настройка поисковиков использует сигналы обратной связи от LLM для уточнения моделей поиска. Примеры включают augmentation adapted retriever (AAR), REPLUG и UPRISE.

Включение внешних адаптеров, таких как PRCA, RECOMP и PKG, помогает в процессе выравнивания между поисковиками и LLM.

Генерация

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

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

Тонкая настройка LLM для RAG: дальнейшая оптимизация или тонкая настройка генератора гарантирует, что сгенерированный текст будет естественным и эффективно использует извлеченные документы, тем самым улучшая общую производительность системы RAG.

Дополнение

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

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

Этапы дополнения: Например, RETRO представляет собой систему, использующую дополнение поиска для крупномасштабного предварительного обучения с нуля путем включения дополнительного кодировщика на основе внешних знаний. Тонкая настройка также может быть интегрирована с RAG для улучшения и уточнения систем RAG. На этапе вывода используется множество методов для эффективной интеграции извлеченного содержимого для выполнения требований конкретной задачи и дальнейшего уточнения процесса RAG.

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

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

  1. Итеративный поиск включает выполнение нескольких циклов поиска для обогащения глубины и релевантности информации. Известные подходы, использующие этот метод, включают RETRO и GAR-meets-RAG.
  2. Рекурсивный поиск итеративно строит вывод одного шага поиска как вход для другого, обеспечивая более глубокое исследование релевантной информации для сложных запросов (например, академические исследования и анализ юридических кейсов). Известные подходы включают IRCoT и Tree of Clarifications.
  3. Адаптивный поиск настраивает процесс поиска в соответствии с конкретными требованиями, определяя оптимальные моменты и содержание для поиска. Известные подходы, использующие этот метод, включают FLARE и Self-RAG.

На рисунке ниже представлено всестороннее представление исследований RAG, иллюстрирующее различные аспекты дополнения, включая этапы, источники и процессы.

Оценка RAG

Оценка производительности моделей RAG в различных сценариях приложений имеет решающее значение для понимания и оптимизации их эффективности. Традиционно оценка систем RAG была сосредоточена на измерении их производительности в последующих задачах с использованием специфических для задачи метрик, таких как F1 и EM. RaLLe является известной структурой, используемой для оценки больших языковых моделей с дополнением поиска в задачах, интенсивно использующих знания.

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

Оценка структуры RAG обычно фокусируется на трех основных показателях качества и четырех способностях. Показатели качества включают измерение релевантности контекста (точность и специфичность извлеченного контекста), верности ответов (верность ответов извлеченному контексту) и релевантности ответов (релевантность ответов заданным вопросам). Кроме того, четыре способности помогают оценить адаптируемость и эффективность системы RAG: устойчивость к шуму, отрицательное отклонение, интеграция информации и устойчивость к контрфактам. Ниже приведена сводка метрик, используемых для оценки различных аспектов системы RAG:

Для оценки моделей RAG используются различные бенчмарки, такие как RGB и RECALL. Для автоматизации процесса оценки систем RAG были созданы инструменты, такие как RAGAS, ARES и TruLens. Некоторые из этих систем используют LLM для определения некоторых показателей качества, как определено выше.

Проблемы и будущее RAG

В этом обзоре мы рассмотрели различные аспекты исследований RAG и различные стратегии улучшения его компонентов поиска, дополнения и генерации. Вот несколько проблем, выделенных Gao et al., 2023, по мере того как мы продолжаем развивать и улучшать системы RAG:

  1. Длина контекста: По мере того, как LLM постоянно расширяют размер окна контекста, адаптация RAG для обеспечения захвата высоко релевантного и критически важного контекста представляет собой проблему.
  2. Устойчивость: Решение проблем с контрфактической и враждебной информацией имеет решающее значение для измерения и повышения устойчивости систем RAG.
  3. Гибридные подходы: Продолжающиеся исследования направлены на лучшее понимание того, как оптимизировать использование как RAG, так и точно настроенных моделей.
  4. Расширение ролей LLM: Растет интерес к увеличению роли и возможностей LLM для дальнейшего улучшения систем RAG.
  5. Масштабирующие законы: Исследование законов масштабирования LLM и их применение к системам RAG остается областью, требующей дальнейшего понимания.
  6. Готовый к производству RAG: Разработка систем RAG производственного уровня требует инженерного совершенства в различных областях, включая производительность, эффективность, безопасность данных и конфиденциальность.
  7. Мультимодальный RAG: В то время как исследования RAG были в основном сосредоточены на текстовых задачах, растет интерес к расширению модальностей для поддержки более широкого спектра областей, таких как изображения, аудио, видео и код.
  8. Оценка: Создание сложных приложений с RAG требует тонких метрик и инструментов оценки для оценки контекстуальной релевантности, креативности, разнообразия содержимого, фактической точности и многого другого. Кроме того, существует потребность в улучшенных исследованиях интерпретируемости и инструментах для RAG.

Как интегрировать RAG с большими языковыми моделями

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

Посмотрите, как интегрировать вашу LLM с техникой RAG в нашем блоге: Пошаговое руководство по интеграции Retrieval-Augmented Generation (RAG) с большими языковыми моделями

Источник: novita.ai

Заключение

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

novita.ai — универсальная платформа для безграничного творчества, предоставляющая доступ к более чем 100 API. От генерации изображений и обработки языка до улучшения аудио и манипуляции видео — недорогая оплата по мере использования освобождает вас от хлопот с обслуживанием GPU, пока вы создаете свои собственные продукты. Попробуйте бесплатно.

Рекомендуемое чтение

В чем разница между LLM и GPT

Прогнозы лидерборда LLM 2024 раскрыты

Novita AI LLM Inference Engine: максимальная пропускная способность и самый дешевый вывод