Искусственный интеллект

Глубокое погружение в Retrieval-Augmented Generation в LLM

mm
Retrieval Augmented Generation Illustration using Midjourney

Представьте, что вы аналитик и у вас есть доступ к Большой Языковой Модели. Вы рады перспективам, которые она приносит в ваш рабочий процесс. Но затем вы спрашиваете ее о последних ценах на акции или текущей ставке инфляции, и она отвечает вам:

“Извините, но я не могу предоставить данные в реальном времени или после даты окончания обучения. Мои последние данные обучения относятся только к январю 2022 года.”

Большая Языковая Модель, несмотря на свою лингвистическую мощь, не может понять концепцию “сейчас“. А в быстро меняющемся мире “сейчас” – это все.

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

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

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

OpenAI’s ChatGPT Получает Обновление Просмотра

Недавнее объявление OpenAI о возможности просмотра ChatGPT является значительным шагом в направлении Retrieval-Augmented Generation (RAG). С помощью ChatGPT, которая теперь может искать в интернете актуальную и авторитетную информацию, она отражает подход RAG к динамическому получению данных из внешних источников для обогащения ответов.

https://twitter.com/OpenAI/status/1707077710047216095

В настоящее время доступно для пользователей Plus и Enterprise, OpenAI планирует внедрить эту функцию для всех пользователей скоро. Пользователи могут активировать ее, выбрав “Browse with Bing” в opción GPT-4.

Chatgpt New Browsing Feature

Chatgpt New ‘Bing’ Browsing Feature

 Промышленный Инжиниринг Не Достаточен

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

  1. Ясность: Хорошо определенный промпт исключает двусмысленность. Он должен быть прямым, обеспечивая, чтобы модель понимала намерение пользователя. Эта ясность часто переводится в более связные и релевантные ответы.
  2. Контекст: Особенно для обширных входных данных, размещение инструкции может повлиять на выход. Например, перемещение инструкции в конец длинного промпта может часто привести к лучшим результатам.
  3. Точность в Инструкции: Сила вопроса, часто передаваемая через “кто, что, где, когда, почему, как” фреймворк, может направить модель к более сфокусированному ответу. Кроме того, указание желаемого формата выхода или размера может еще больше уточнить выход модели.
  4. Обработка Неопределенности: Важно направить модель на то, как реагировать, когда она не уверена. Например, инструктируя модель отвечать “Я не знаю”, когда она не уверена, можно предотвратить генерацию неточных или “галлюцинированных” ответов.
  5. Последовательное Мышление: Для сложных инструкций направление модели на систематическое мышление или разбиение задачи на подзадачи может привести к более полным и точным выходам.

В отношении важности промптов в направлении ChatGPT, всесторонняя статья может быть найдена в статье на Unite.ai.

Проблемы в Генеративных Моделях ИИ

Промышленный инжиниринг включает в себя тонкую настройку директив, данных модели, для улучшения ее производительности. Это очень экономически эффективный способ повысить точность приложений Генеративного ИИ, требующий только незначительных изменений кода. Хотя промышленный инжиниринг может значительно улучшить выходы, важно понять внутренние ограничения больших языковых моделей (LLM). Две основные проблемы – галлюцинации и пробелы в знаниях.

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

Hallucinations in LLM

  • Пробелы в Знаниях: Каждая модель LLM имеет дату окончания обучения, после которой она не знает о событиях или развитиях. Это ограничение означает, что знания модели заморожены на момент ее последней даты обучения. Например, модель, обученная до 2022 года, не будет знать о событиях 2023 года.
Knowledge cut-off in LLMS

Knowledge cut-off in LLM

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

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

Введение в Retrieval-Augmented Generation

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

RAG-фреймворк работает структурированным образом:

Входной Промпт

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

Получение из Внешних Источников

Вместо того, чтобы直接 генерировать ответ на основе своего обучения, модель, с помощью компонента поиска, ищет через внешние источники данных. Эти источники могут варьироваться от баз знаний, баз данных и хранилищ документов до интернет-доступных данных.

Понимание Получения

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

  1. Индексирование: Вероятно, наиболее сложная часть всего пути RAG – это индексирование вашей базы знаний. Процесс индексирования можно разделить на две фазы: загрузку и разделение. В инструментах, таких как LangChain, эти процессы называются “загрузчиками” и “разделителями“. Загрузчики получают контент из различных источников, будь то веб-страницы или PDF-файлы. Как только контент получен, разделители затем разделяют этот контент на небольшие фрагменты, оптимизируя их для встраивания и поиска.
  2. Запрос: Это действие по извлечению наиболее релевантных фрагментов знаний на основе поискового термина.

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

Встраивания являются центральными для того, как Большые Языковые Модели (LLM) понимают язык. Когда люди пытаются артикулировать, как они выводят смысл из слов, объяснение часто возвращается к внутреннему пониманию. Глубоко внутри наших когнитивных структур мы признаем, что “ребенок” и “малыш” являются синонимами, или что “красный” и “зеленый” обозначают цвета.

Улучшение Промпта

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

Генерация Выхода

С улучшенным промптом в руках модель затем генерирует выход или ответ. Этот ответ не основан только на обучении модели, но также информирован реальными данными, полученными в реальном времени.

Retrieval-Augmented Generation

Retrieval-Augmented Generation

Архитектура Первой RAG LLM

Исследовательская работа, опубликованная Meta в 2020 году “Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks” предоставляет подробный взгляд на эту технику. Модель Retrieval-Augmented Generation дополняет традиционный процесс генерации внешним механизмом поиска или получения. Это позволяет модели получать релевантную информацию из обширных корпусов данных, улучшая ее способность генерировать контекстно-точные ответы.

Вот как это работает:

  1. Параметрическая Память: Это ваша традиционная языковая модель, такая как seq2seq-модель. Она была обучена на обширных данных и знает многое.
  2. Непараметрическая Память: Думайте об этом как о поисковой системе. Это плотный векторный индекс, скажем, Википедии, который можно получить с помощью нейронного поиска.

Когда они объединены, эти две создают точную модель. Модель RAG сначала получает релевантную информацию из своей непараметрической памяти, а затем использует свои параметрические знания, чтобы дать связный ответ.

RAG ORIGNAL MODEL BY META

Original RAG Model By Meta

1. Двухэтапный Процесс:

Модель RAG LLM работает в двухэтапном процессе:

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

2. Плотное Получение:

Традиционные системы получения часто полагаются на разреженные представления, такие как TF-IDF. Однако модель RAG LLM использует плотные представления, где как запрос, так и документы встраиваются в непрерывное векторное пространство. Это позволяет проводить более тонкие сравнения сходства, захватывая семантические отношения за пределами простого совпадения ключевых слов.

3. Генерация Последовательности к Последовательности:

Полученные документы служат расширенным контекстом для модели генерации. Эта модель, часто основанная на архитектурах, таких как Трансформеры, затем генерирует окончательный выход, гарантируя, что он связен и контекстно релевантен.

Поиск Документов

Индексирование и Получение Документов

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

Векторные Базы Данных

Vector Database

Source: Redis

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

Некоторые заметные векторные базы данных включают Annoy, Faiss от Meta, Milvus и Pinecone. Эти базы данных имеют решающее значение в приложениях ИИ, помогая в задачах, от систем рекомендаций до поиска изображений. Платформы, такие как AWS, также предлагают услуги, адаптированные для потребностей векторных баз данных, такие как Amazon OpenSearch Service и Amazon RDS для PostgreSQL. Эти услуги оптимизированы для конкретных случаев использования, гарантируя эффективное индексирование и запрос.

Чанкинг для Релевантности

Учитывая, что многие документы могут быть обширными, часто используется техника, называемая “чанкингом”. Это включает в себя разбиение больших документов на более мелкие, семантически связанные фрагменты. Эти фрагменты затем индексируются и получаются по мере необходимости, гарантируя, что наиболее релевантные части документа используются для улучшения промпта.

Учет Окна Контекста

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

Преимущества Использования Retrieval-Augmented Generation

  1. Улучшенная Точность: Получая информацию из внешних источников, модель RAG LLM может генерировать ответы, которые не только основаны на ее обучении, но также информированы наиболее релевантной и актуальной информацией, доступной в корпусе получения.
  2. Преодоление Пробелов в Знаниях: RAG эффективно решает внутренние ограничения знаний LLM, будь то из-за даты окончания обучения модели или отсутствия домен-специфических данных в ее корпусе обучения.
  3. Универсальность: RAG может быть интегрирована с различными внешними источниками данных, от проприетарных баз данных внутри организации до публично доступных интернет-данных. Это делает ее адаптируемой к широкому спектру приложений и отраслей.
  4. Снижение Галлюцинаций: Одна из проблем с LLM – это потенциал для “галлюцинаций” или генерации фактически неправильной или сфабрикованной информации. Предоставляя контекст реальных данных, RAG может значительно снизить вероятность таких выходов.
  5. Масштабируемость: Одним из основных преимуществ модели RAG LLM является ее способность масштабироваться. Разделив процесс получения и генерации, модель может эффективно обрабатывать обширные наборы данных, что делает ее подходящей для реальных приложений, где данные обильны.

Проблемы и Рассмотрения

  • Вычислительная Нагрузка: Двухэтапный процесс может быть вычислительным, особенно при работе с большими наборами данных.
  • Зависимость от Данных: Качество полученных документов напрямую влияет на качество генерации. Следовательно, наличие всесторонней и хорошо курированной базы данных получения имеет решающее значение.

Заключение

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

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

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