Генерация, дополненная поиском

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

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

С появлением больших языковых моделей исследования RAG первоначально фокусировались на использовании их способности к обучению в контексте, преимущественно затрагивая этап вывода. Последующие работы углубили анализ, постепенно интегрируя методы RAG в процесс тонкой настройки LLM. Учёные также изучают возможности улучшения языковых моделей на этапе предварительного обучения[3].

Парадигмы RAG

Развитие методов генерации с дополненным поиском начинается с базовой парадигмы Naive RAG, основанной на простом цикле индексации, извлечения и генерации. Парадигма Advanced RAG внедряет этапы предварительной и последующей обработки извлекаемой информации, направленных на повышение качества и релевантности контекста. Современный этап, парадигма Modular RAG, представляет собой гибкую и адаптивную архитектуру, позволяющую интегрировать новые функциональные модули, изменять паттерны взаимодействия компонентов и сочетать RAG с другими методами, такими как тонкая настройка, что обещает дальнейшее повышение точности, надежности и универсальности генеративных моделей при работе с внешними источниками знаний[3].

Базовый подход (Naive RAG)

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

  • Индексация (Indexing): На этом этапе происходит подготовка внешней базы знаний. Исходные данные, представленные в различных форматах, проходят процедуры очистки и извлечения текстового содержимого. Полученный текст сегментируется на информационные блоки (чанки). Каждый чанк преобразуется в векторное представление (эмбеддинг) с использованием предобученной модели эмбеддингов. Сгенерированные векторы вместе с соответствующими текстовыми фрагментами индексируются и сохраняются в специализированной векторной базе данных, оптимизированной для поиска по сходству.
  • Извлечение (Retrieval): При поступлении пользовательского запроса он векторизуется с использованием той же модели эмбеддингов, что и на этапе индексации. Затем система выполняет поиск в векторной базе данных, вычисляя метрику сходства (например, косинусное расстояние или скалярное произведение) между вектором запроса и векторами проиндексированных чанков. Извлекается заранее определенное количество (K) наиболее релевантных чанков, имеющих наивысший показатель сходства с запросом.
  • Генерация (Generation): На заключительном этапе формируется входной контекст (промпт) для большой языковой модели. Этот промпт обычно состоит из исходного пользовательского запроса и текстового содержимого извлеченных на предыдущем шаге K чанков. LLM обрабатывает данный промпт и генерирует конечный ответ. В процессе генерации модель может использовать как информацию из предоставленного контекста, так и свои внутренние параметрические знания, либо быть инструктирована строго придерживаться только извлеченных данных.

Несмотря на простоту, Naive RAG обладает рядом ограничений:

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

Advanced RAG

Advanced RAG нацелен на устранение недостатков, присущих базовым реализациям. Фундаментальное отличие заключается во внедрении техник, преимущественно для повышения качества и релевантности этапа информационного поиска (retrieval). Данные усовершенствования охватывают как предварительную обработку (pre-retrieval), так и постобработку (post-retrieval) относительно основного шага извлечения информации[3].

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

  • Сегментация данных методом скользящего окна (sliding window chunking).
  • Более гранулярная сегментация (fine-grained segmentation).
  • Включение и использование метаданных при индексации.
  • Оптимизация выравнивания векторных представлений (embedding alignment).
  • Использование гибридного поиска (hybrid search), сочетающего различные методы поиска (например, семантический и лексический).

Оптимизация запроса преследует цель повышения его информативности и точности посредством техник перефразирования (query rewriting), трансформации (query transformation) и расширения (query expansion).

Этап постобработки (Post-retrieval) активируется после извлечения набора потенциально релевантных контекстных фрагментов. Его задача – оптимизировать интеграцию этого контекста с исходным запросом перед подачей в генеративную языковую модель. Ключевые методы постобработки включают:

  • Переранжирование (Re-ranking): Изменение порядка извлеченных фрагментов для повышения их влияния на генерацию, часто путем размещения наиболее релевантных фрагментов в стратегически важных позициях промпта (например, в начале и конце).
  • Сжатие контекста (Context Compression): Методы, направленные на экстракцию наиболее существенной информации из извлеченных фрагментов и сокращение общего объема передаваемого контекста, что позволяет избежать превышения лимитов контекстного окна модели и снизить риск информационной перегрузки.

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

Modular RAG

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

Модули:

  • Модуль поиска (Search module): Обеспечивает прямой поиск информации по различным источникам данных.
  • RAG-Fusion: Реализует стратегии множественных запросов для повышения эффективности поиска.
  • Модуль памяти (Memory module): Использует возможности памяти большой языковой модели (LLM) для улучшения контекстуализации.
  • Модуль маршрутизации (Routing): Предназначен для навигации по разнообразным источникам данных, позволяя системе выбирать наиболее подходящий источник для конкретного запроса.
  • Модуль предсказания (Predict module): Генерирует контекст с помощью LLM, который затем может быть использован в процессе поиска или генерации.
  • Модуль адаптации задач (Task Adapter module): Позволяет настраивать RAG-систему для выполнения различных downstream-задач, оптимизируя ее производительность для конкретных приложений.

Паттерны взаимодействия

  • Rewrite-Retrieve-Read: Переписывание запроса перед поиском для повышения его релевантности.  
  • Generate-Read: Генерация гипотетического ответа или документа, который затем используется для поиска дополнительной информации.  
  • Recite-Read: Извлечение конкретных фактов или фрагментов текста, которые затем используются для поиска более подробной информации.  
  • Гибридные стратегии поиска: Комбинирование различных методов поиска (например, семантического и полнотекстового) для повышения точности и полноты извлечения информации.  
  • Подзапросы (Sub-queries): Разбиение сложного запроса на несколько более простых подзапросов, результаты которых затем объединяются.
  • Hypothetical Document Embeddings (HyDE): Использование LLM для генерации гипотетического документа на основе запроса, а затем использование векторного представления этого документа для поиска релевантной информации.  

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

Преимущества RAG

Использование RAG предоставляет ряд существенных преимуществ для улучшения больших языковых моделей.

Повышенная точность и надежность: RAG обеспечивает доступ LLM к самым актуальным и надежным фактам, что значительно снижает вероятность генерации неверного или вводящего в заблуждение контента. За счет обоснования ответов на внешних, проверенных источниках информации, RAG гарантирует, что LLM оперирует наиболее точными данными[4].

Уменьшение галлюцинаций: Одним из ключевых преимуществ RAG является минимизация риска "галлюцинаций" — генерации LLMs вымышленной или неточной информации. Предоставляя LLM конкретные, извлеченные факты, RAG значительно снижает вероятность создания ответов, не основанных на реальных данных[4].

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

Повышение доверия пользователей: RAG способствует повышению доверия пользователей к сгенерированному контенту за счет предоставления источников информации, использованных для формирования ответа. Возможность проверить источники информации позволяет пользователям убедиться в достоверности полученных сведений[5].

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

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

Проблемы и ограничения RAG

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

  • Точность извлечения данных: Нерелевантный поиск информации, когда система извлекает документы, не содержащие правильного ответа может ухудшить ответ LLM. Обеспечение поиска наиболее релевантных и актуальных документов, особенно для неоднозначных запросов или запросов в узкоспециализированных областях, остается сложной задачей[6].
  • Необходимость предварительно обработанных данных: RAG требует наличия большой базы данных предварительно обработанных данных, что может стать затратным обязательством.
  • Увеличение задержки: Дополнительные этапы, связанные с процессом RAG, как правило, приводят к увеличению задержки при генерации ответов.
  • Ограничение размера контекста: Динамическое извлечение данных увеличивает количество токенов в подсказке, что может стать проблемой при работе с большими документами в условиях ограниченного размера контекстного окна и в целом способности модели работать с большим контекстом. Ограничение длины контекста потребует от RAG системы извлекать только наиболее релевантные части текста, вместо целых документов, что повышает вероятность пропуска важной информации.
  • Стоимость инференса: В случае работы с платными LLM через API-сервисы RAG могут увеличить кратно стоимость инференса из-за увеличения размера подсказки за счет добавленной информации. Это проблема усиливается, чем менее релевантная информация извлекается системой RAG.
  • Зависимость от качества данных: RAG испытывает трудности с интеграцией разнообразных источников данных и поддержанием релевантности, а его выходные данные ограничены качеством доступных баз знаний.
  • Потенциально устаревшая информация: Если внешняя база знаний не поддерживается должным образом, RAG может использовать устаревшую информацию, что является одной из основных проблем, которую изначально должна решать система RAG[7].
  • RAG-системы могут воспроизводить предвзятости, присутствующие в извлеченных наборах данных, что приводит к необъективным результатам. Устранение этих предвзятостей является постоянной проблемой, требующей внимания при разработке и обучении RAG-моделей[7].
  • Несоответствие плотности знаний и избыточное извлечение. Иногда отбор знаний исключительно на основе пользовательского запроса может привести к несоответствию плотности знаний и избыточному извлечению повторяющейся информации, что снижает эффективность RAG[8].
  • Обработка больших и динамично растущих наборов данных требует разработки эффективных алгоритмов поиска, что представляет собой значительную проблему в плане масштабируемости и эффективности RAG-систем. Высокие вычислительные затраты, связанные с поиском и генерацией, могут затруднять развертывание RAG в реальном времени[6].
  • Безопасность. Одним из ключевых недостатков RAG является его зависимость от внешних источников данных, которые могут быть подвержены атаке отравления (data poisoning) и внедрению вредоносных инструкций (prompt injection), что повышает риск манипуляции генерируемой моделью информацией. Требуется комплексная система безопасности.

Применение RAG

Благодаря своей способности сочетать обширные знания больших языковых моделей с актуальной информацией из внешних источников, RAG находит широкое применение в самых разных областях. RAG находит применение во множестве контекстов, включая вопросно-ответные системы, анализ временных рядов с использованием агентных RAG-фреймворков, повышение фактичности в медицинских системах обработки изображений и языка, улучшение точности в юридических и политических приложениях, повышение качества автоматического распознавания речи (ASR), обеспечение многоязычного доступа к информации, а также в качестве инструментов помощи в написании научных работ, таких как LLM-Ref или сервисы типа OpenAI Deep Research.

Вопросно-ответные и консультационные системы

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

В критически важных областях, таких как медицина и юриспруденция, RAG демонстрирует значительный потенциал. В медицинских диагностических системах RAG может использоваться для поиска и интеграции последних исследований или специфических данных о пациентах для генерации точных диагностических предположений. Юридические консультационные системы могут применять RAG для поиска релевантных прецедентов или законодательных актов, чтобы предоставлять юридически обоснованные советы. Разработанная система Tc-Rag, представляющая собой Turing-Complete RAG, показывает превосходные результаты в медицинских вопросно-ответных задачах[9], что подчеркивает важность RAG для обеспечения точности и актуальности информации в этих областях.

Персонализированные рекомендации и реферирование документов

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

Оценка

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

Для систематической оценки RAG разработан ряд бенчмарк-тестов и инструментов. Эти средства предоставляют количественные метрики, которые не только измеряют производительность моделей, но и способствуют детальному анализу их возможностей в различных аспектах оценки. Ключевые бенчмарки — RGB, RECALL и CRUD — ориентированы на проверку базовых характеристик RAG. Современные автоматизированные инструменты, такие как RAGAS, ARES и TruLens, используют LLM для автоматического присвоения оценок качества[3].

Современные методы оценки RAG акцентируются на трёх ключевых показателях качества и четырёх важнейших способностях, которые в совокупности характеризуют два основных направления оценки: качество извлечения информации и генерации ответов. Релевантность контекста и устойчивость к шуму важны для оценки качества извлечения данных. Достоверность ответа, уместность ответа, отказ от ответа, интеграция данных и контрфактуальная устойчивость характеризуют качество генерации[10].

Показатели качества

  • Релевантность контекста (context relevance) — оценивает точность и специфичность извлекаемого контекста, обеспечивая соответствие вопросу и минимизацию затрат на обработку постороннего содержания.
  • Достоверность ответа (answer faithfulness) — гарантирует соответствие сгенерированного ответа фактической информации из извлечённого контекста, исключая противоречия.
  • Релевантность ответа (answer relevance) — требует прямой взаимосвязи между ответом и вопросом.

Проверяемые способности

Устойчивость к шуму (noise robustness) — свойство языковых моделей (LLM), позволяющее извлекать полезные данные из зашумленных документов, определяемых как релевантные вопросу, но лишённые информации об ответе (например, сообщения о лауреате Нобелевской премии по литературе 2021 года при запросе о премии 2022 года). Оценка точности LLM при различных уровнях шума (доля неинформативных документов) демонстрирует два ключевых вывода: 1) RAG существенно улучшает ответы моделей даже в условиях шума (например, ChatGPT сохраняет 96,33% точности при умеренном шуме); 2) при превышении 80% шума производительность закономерно снижается (ChatGPT — до 76%, ChatGLM2-6B — до 57,33%, p < 0,05). Анализ ошибок выявил три основные причины сбоев: трудности с идентификацией информации, разделённой в тексте значительными интервалами («длинная дистанция»), влияние спекулятивных данных, маркированных как неопределённые (например, перед анонсами Apple или «Оскара»), и концептуальная путаница из-за семантической близости терминов. Для повышения эффективности RAG требуется усовершенствование методов обработки объёмных документов и распознавания тонких различий в понятиях[10].

Отказ от ответа (negative rejection) — оценивает способность воздерживаться от генерации при отсутствии достаточной или необходимой информации, предоставленной RAG. В реальных ситуациях поисковые системы часто не могут найти документы, содержащие ответы. В таких случаях важно, чтобы модель могла отклонить запрос и избежать генерации вводящего в заблуждение контента. Модели склонны к формулированию выводов, основанных на неполных или неоднозначных данных, присутствующих в анализируемых документах, что может приводить к недостаточной обоснованности генерируемых утверждений. Другой распространённой неточностью является смешение семантически близких, но различных по значению понятий, встречающихся как в запросе пользователя, так и в исходных текстовых материалах[10].

Интеграция данных (information integration) — анализирует умение интегрировать информацию из множества источников для сложных вопросов. Во многих случаях ответ на вопрос может содержаться в нескольких документах. Например, для вопроса "Кто чемпионы US Open 2022 в мужском и женском одиночном разряде?", два чемпиона могут упоминаться в разных документах. Для предоставления лучших ответов на сложные вопросы необходимо, чтобы большие языковые модели (LLM) обладали способностью интегрировать информацию. Языковые модели часто не следуют строго инструкциям и генерируют непредсказуемые ответы[10].

Контрфактуальная устойчивость (counterfactual robustness) — определяет распознавание и игнорирование заведомо ложных данных. Оценке подлежит ситуация, при которой LLM предоставляются инструкции с предупреждениями о потенциальных рисках в полученных данных. Даже когда языковые модели содержат необходимые знания и получают такие предупреждения о рисках, они склонны доверять и отдавать приоритет извлеченной информации над своими существующими знаниями. Тестовый набор бенчмарка RGB для включает примеры, на которые модели могут ответить напрямую, но внешние документы содержат фактические ошибки. Метрики: уровень обнаружения ошибок (Error detection rate) и уровень исправления ошибок (Error correction rate). По данным RGB бенчмарка: cложные вопросы более уязвимы к помехам от шума. Значительное снижение производительности наблюдается при коэффициенте шума 0,4, в то время как для простых проблем значительное снижение происходит только при коэффициенте шума 0,8. Анализ ошибок ChatGLM2-6B показал три типа уникальных ошибок при интеграции информации: ошибки слияния (28%), ошибки игнорирования (28%) и ошибки несоответствия (6%)[10].

Примечания

  1. What is Retrieval-Augmented Generation (RAG)? (амер. англ.). Google Cloud. Дата обращения: 30 марта 2025.
  2. What is retrieval-augmented generation (RAG)? (амер. англ.). IBM Research (9 февраля 2021). Дата обращения: 30 марта 2025.
  3. 1 2 3 4 5 Yunfan Gao, Yun Xiong, Xinyu Gao, Kangxiang Jia, Jinliu Pan, Yuxi Bi, Yi Dai, Jiawei Sun, Meng Wang, Haofen Wang. Retrieval-Augmented Generation for Large Language Models: A Survey. — 2024-03-27. — doi:10.48550/arXiv.2312.10997.
  4. 1 2 RAG: Ваше полное руководство по извлечению улучшенного генерации. www.getguru.com. Дата обращения: 30 марта 2025.
  5. Merritt, Rick. What Is Retrieval-Augmented Generation aka RAG? (амер. англ.). NVIDIA Blog (31 января 2025). Дата обращения: 30 марта 2025.
  6. 1 2 3 4 Shailja Gupta, Rajesh Ranjan, Surya Narayan Singh. A Comprehensive Survey of Retrieval-Augmented Generation (RAG): Evolution, Current Landscape and Future Directions. — 2024-10-03. — doi:10.48550/arXiv.2410.12837.
  7. 1 2 Retrieval Augmented Generation (RAG) for LLMs – Nextra (англ.). www.promptingguide.ai. Дата обращения: 31 марта 2025.
  8. Xinke Jiang, Ruizhe Zhang, Yongxin Xu, Rihong Qiu, Yue Fang, Zhiyuan Wang, Jinyi Tang, Hongxin Ding, Xu Chu, Junfeng Zhao, Yasha Wang. HyKGE: A Hypothesis Knowledge Graph Enhanced Framework for Accurate and Reliable Medical LLMs Responses. — 2024-04-19. — doi:10.48550/arXiv.2312.15883.
  9. Xinke Jiang, Yue Fang, Rihong Qiu, Haoyu Zhang, Yongxin Xu, Hao Chen, Wentao Zhang, Ruizhe Zhang, Yuchen Fang, Xu Chu, Junfeng Zhao, Yasha Wang. TC-RAG:Turing-Complete RAG's Case study on Medical LLM Systems. — 2024-08-17. — doi:10.48550/arXiv.2408.09199.
  10. 1 2 3 4 5 Jiawei Chen, Hongyu Lin, Xianpei Han, Le Sun. Benchmarking Large Language Models in Retrieval-Augmented Generation. — 2023-12-20. — doi:10.48550/arXiv.2309.01431.
Prefix: a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9

Portal di Ensiklopedia Dunia

Kembali kehalaman sebelumnya