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

Генерация, дополненная поиском (англ. Retrieval Augmented Generation, обычно сокращённо RAG) — это технология, позволяющая большим языковым моделям (БЯМ, англ. Large Language Model, LLM) извлекать и использовать новую информацию[1]. При использовании RAG языковые модели не отвечают на запросы пользователей, пока не обратятся к определённому набору документов. Эти документы дополняют информацию, полученную на этапе предварительного обучения БЯМ[2], и позволяют использовать доменно-специфическую или актуальную информацию, отсутствующую в наборе обучающих данных[2].[3] Это, например, помогает чат-ботам на базе БЯМ работать с внутренними данными организаций или формировать ответы на основании авторитетных источников.

RAG усиливает БЯМ, интегрируя механизм поиска информации перед генерацией ответа[4]. В отличие от традиционных моделей, полагающихся на статичный обучающий корпус, RAG извлекает релевантный текст из баз данных, пользовательских файлов и веб-источников[1]. Журнал Ars Technica отмечает: «RAG — это способ повысить точность больших языковых моделей, по сути, комбинируя работу БЯМ с веб-поиском или иным процессом обращения к документам, чтобы БЯМ придерживались фактических данных»[5]. Такой подход помогает снижать галлюцинации искусственного интеллекта[4][6], из-за которых чат-боты могут описывать несуществующие политики или советовать вымышленные судебные кейсы.

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

Впервые термин RAG был введён в научной публикации 2020 года[4], подготовленной компанией Meta[7].[3]

Индексирование

Обычно данные, к которым предполагается обращаться, преобразуются в эмбеддинги БЯМ — числовые представления в многомерном векторном пространстве. RAG совместим с неструктурированными (текст), полуструктурированными и структурированными (например, граф знания) данными[8]. Эмбеддинги сохраняются в векторной базе данных для последующего документного поиска[9].

undefined

Поиск

На пользовательский запрос сначала отвечает поисковик документов, выбирающий наиболее релевантные материалы для расширения запроса[2].[4] Сравнение осуществляется разными методами, исходя из типа индексирования[1]

Аугментация

Найденная актуальная информация внедряется в БЯМ с помощью prompt engineering — переформулирования исходного пользовательского запроса. В современных реализациях (с 2023 года) возможна автоматическая экспансия запроса на разные домены, обучение на прошлых поисковых сессиях и запоминание.

Генерация

Наконец, БЯМ генерирует результат, исходя как из пользовательского запроса, так и найденных документов.[2][10]. В ряде моделей возможны дополнительные этапы: повторная классификация документов, выбор релевантного контекста, тонкая настройка (fine-tuning) и др.

Совершенствования

Базовый процесс RAG совершенствуется на разных этапах.

Кодирование

Оптимизация процесса кодирования текста в плотные либо разрежённые векторы повышает эффективность поиска[11].

  • Повышение качества — за счёт оптимизации расчёта схожести: скалярные произведения улучшают скоринг, а поиск ближайших соседей (ANN) ускоряет обращение к базе[12].
  • Точность повышается при поддержке поздних интеракций: сравнение слов осуществляется после поиска для уточнения релевантности[13].
  • Гибридные подходы комбинируют плотные векторы с разрежёнными (one-hot), используя вычислительную эффективность разрежённых операций[11].
  • Отдельные техники фокусируются на уточнении отбора документов, комбинируя, например, разрежённые представления (SPLADE) с расширением запроса для лучшей релевантности[14].

Методы, ориентированные на поисковик (retriever)

Эти методы фокусируются на усилении качества поиска документов в векторных базах:

  • Предобучение поисковика методом Inverse Cloze Task (ICT) — предсказание пропущенного текста[15].
  • Прогрессивное увеличение обучающей выборки (метод DRAGON) — трудные «отрицательные» примеры для генерализации dense search[16].
  • Супервизированная оптимизация поисковика — минимизация дивергенции Кульбака—Лейблера между выборкой поисковика и вероятностями генератора[17].
  • Методы переупорядочивания позволяют уточнять сортировку выданных документов, повышая общую точность системы[18].

Языковая модель

Языковая модель Retro для RAG. Блок Retro состоит из слоёв внимания, chunked cross attention и слоя feed forward. Чёрные подписи — редактируемые данные, синие — алгоритм изменения.

Перепроектирование языковой модели с учётом поисковика позволяет гораздо меньшей (по размеру) сети достигать сопоставимой перплексии по сравнению с более крупными аналогами[19]. Такой подход (модель Retro) требует затрат на обучение с нуля, которых избегал классический RAG; идея состоит в заложении доменной экспертизы на этапе тренировки, чтобы эффективно распределять ресурсы модели. На иллюстрации показана архитектура модели.

Оригинальная Retro трудновоспроизводима, для этого были введены упрощённые модификации (Retro++), поддерживающие контекстуальный RAG[20].

Фрагментация

Фрагментация — разбиение данных на сегменты/векторы для эффективной работы поисковика[9].

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

Выделяют три основных подхода:

  • Фиксированная длина c перекрытием — быстро и просто; помогает удерживать семантический контекст.
  • Фрагментация по синтаксическим границам (например, по предложениям; поддерживается инструментами spaCy, NLTK).
  • Разделение по формату — например, код лучше разбивать по функциям/классам, HTML — сохранять таблицы/картинки, PDF — учитывать внутренние блоки. Библиотеки Unstructured и Langchain автоматизируют этот подход.

Графы знаний

Вместо документов для векторизации и поиска возможно использовать графы знаний. Контент (тексты, книги и др.) преобразуется в граф с помощью модели, затем подграфы векторизуются, заносятся в базу и используются как источник сведений, аналогично стандартному RAG. Графовая структура упрощает поиск релевантных связей для генерации ответа, и иногда такой подход называется GraphRAG[21].

Гибридный поиск

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

Оценка и бенчмарки

Системы RAG оцениваются по метрикам качества поиска и точности генеративного вывода. Наиболее востребованные наборы: BEIR для разных задач извлечения фактов, Natural Questions и Google QA для оценки качества открытых вопросов.

Проблемы

RAG не полностью решает проблему галлюцинаций БЯМ. По мнению Ars Technica, «это не универсальное решение: БЯМ всё ещё могут выдавать галлюцинации, даже используя исходный материал»[5].

Хотя RAG и увеличивает точность генерации, он не избавляет от повторного обучения. Также БЯМ слабо распознают ситуации, когда знаний недостаточно для корректного ответа: модели могут выдавать догадки вместо признания своей неуверенности[1]. RAG-системы способны «доставать» корректные, но вводящие в заблуждение источники, что приводит к смысловым ошибкам. Возможна компиляция противоречивых данных из разных источников, из-за чего формируются ответы с устаревшими и актуальными деталями одновременно. Как указывает MIT Technology Review, причина — в неверной трактовке системой полученных данных[2].

Примечания

  1. 1 2 3 4 5 What is retrieval-augmented generation? (англ.). IBM (22 августа 2023). Дата обращения: 7 марта 2025. Архивировано 23 августа 2023 года.
  2. 1 2 3 4 5 Why Google's AI Overviews gets things wrong (англ.). MIT Technology Review (31 мая 2024). Дата обращения: 7 марта 2025. Архивировано 1 июня 2024 года.
  3. 1 2 Рахул Сингхал. The Power Of RAG: How Retrieval-Augmented Generation Enhances Generative AI (англ.). Forbes (30 ноября 2023). Дата обращения: 7 марта 2025. Архивировано 30 ноября 2023 года.
  4. 1 2 3 4 Douwe Kiela, Patrick Lewis, Ethan Perez, Aleksandra Piktus, Fabio Petroni, Vladimir Karpukhin, Naman Goyal, Heinrich Küttler, Mike Lewis, Wen-Tau Yih, Tim Rocktäschel, Sebastian Riedel (2020). “Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks”. Advances in Neural Information Processing Systems [англ.]: 9459—9474. ISBN 978-1-7138-2954-6. Дата обращения 2025-03-07.
  5. 1 2 Can a technology called RAG keep AI models from making stuff up? (англ.). Ars Technica (6 июня 2024). Дата обращения: 7 марта 2025. Архивировано 6 июня 2024 года.
  6. Джон Тьюроу, Дауэ Кийела. RAG Inventor Talks Agents, Grounded AI, and Enterprise Impact (англ.). Madrona (26 марта 2025). Дата обращения: 7 марта 2025. Архивировано 27 марта 2024 года.
  7. Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks (англ.). Meta AI (2020). Дата обращения: 7 марта 2025. Архивировано 31 октября 2020 года.
  8. Yunfan Gao, Yun Xiong, Xinyu Gao, Kangxiang Jia, Jinliu Pan, Yuxi Bi, Yi Dai, Jiawei Sun, Meng Wang, Haofen Wang (2023). “Retrieval-Augmented Generation for Large Language Models: A Survey”. arXiv [англ.]. arXiv:2312.10997. Дата обращения 2025-03-07.
  9. 1 2 Шринивасан Санкар. Retrieval Augmented Generation(RAG) — A quick and comprehensive introduction (англ.). ai-bites.net (13 февраля 2024). Дата обращения: 7 марта 2025. Архивировано 15 февраля 2024 года.
  10. Patrick Lewis, Ethan Perez, Aleksandra Piktus, Fabio Petroni, Vladimir Karpukhin, Naman Goyal, Heinrich Küttler, Mike Lewis, Wen-tau Yih (2020). “Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks”. Advances in Neural Information Processing Systems [англ.]. 33: 9459—9474. arXiv:2005.11401. Дата обращения 2025-03-07.
  11. 1 2 Yi Luan, Jacob Eisenstein, Kristina Toutanova, Michael Collins (26 апреля 2021). “Sparse, Dense, and Attentional Representations for Text Retrieval”. Transactions of the Association for Computational Linguistics [англ.]. 9: 329—345. arXiv:2005.00181. DOI:10.1162/tacl_a_00369. Дата обращения 2025-03-15.
  12. Information retrieval (англ.). Microsoft (10 января 2025). Дата обращения: 15 марта 2025. Архивировано 10 января 2025 года.
  13. Omar Khattab, Matei Zaharia (2020). “ColBERT: Efficient and Effective Passage Search via Contextualized Late Interaction over BERT”. SIGIR. DOI:10.1145/3397271.3401075.
  14. Laboratory for Analytic Sciences in TREC 2024 Retrieval Augmented Generation Track (англ.). NIST TREC 2024 (2024). Дата обращения: 15 марта 2025.
  15. Кентон Ли. Latent Retrieval for Weakly Supervised Open Domain Question Answering (англ.) (2019). Дата обращения: 7 марта 2025.
  16. Sheng-Chieh Lin, Akari Asai, Minghan Li, Barlas Oguz, Jimmy Lin, Yashar Mehdad, Wen-tau Yih, Xilun Chen (2023). “How to Train Your Dragon: Diverse Augmentation Towards Generalizable Dense Retrieval”. EMNLP. arXiv:2302.07452.
  17. Weijia Shi, Sewon Min, Michihiro Yasunaga, Minjoon Seo, Rich James, Mike Lewis, Luke Zettlemoyer, Wen-tau Yih. REPLUG: Retrieval-Augmented Black-Box Language Models // Proceedings of the 2024 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies (Volume 1: Long Papers) : [англ.]. — июнь 2024. — P. 8371–8384. — doi:10.18653/v1/2024.naacl-long.463.
  18. Ori Ram, Yoav Levine, Itay Dalmedigos, Dor Muhlgay, Amnon Shashua, Kevin Leyton-Brown, Yoav Shoham (2023). “In-Context Retrieval-Augmented Language Models”. Transactions of the Association for Computational Linguistics [англ.]. 11: 1316—1331. arXiv:2302.00083. DOI:10.1162/tacl_a_00605. Дата обращения 2025-03-16.
  19. Себастьян Боргео. Improving language models by retrieving from trillions of tokens (англ.) (2021). Дата обращения: 7 марта 2025.
  20. Boxin Wang, Wei Ping, Peng Xu, Lawrence McAfee, Zihan Liu, Mohammad Shoeybi, Yi Dong, Oleksii Kuchaiev, Bo Li (2023). “Shall We Pretrain Autoregressive Language Models with Retrieval? A Comprehensive Study”. EMNLP [англ.]: 7763—7786. DOI:10.18653/v1/2023.emnlp-main.482. Дата обращения 2025-03-07.
  21. Darren Edge, Ha Trinh, Newman Cheng, Joshua Bradley, Alex Chao, Apurva Mody, Steven Truitt, Dasha Metropolitansky, Robert Osazuwa Ness (2024). “From Local to Global: A Graph RAG Approach to Query-Focused Summarization”. arXiv [англ.]. arXiv:2404.16130. Дата обращения 2025-03-07.