Участник:Lomik07/Генерация дополненной поисковой информации

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

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

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

Индексация

[править | править код]

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

Обзор процесса RAG, объединяющего внешние документы и вводимые пользователем данные в промпт для получения индивидуального вывода

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

Дополнение

[править | править код]

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

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

Усовершенствования базового процесса, описанного выше, могут применяться на разных этапах RAG.

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

[править | править код]
Модель языка для генерации с дополненной выборкой (RAG). Каждый блок состоит из слоёв внимания, блочного перекрёстного внимания и прямой передачи. Чёрные надписи на блоках показывают изменяемые данные, а синие надписи обозначают алгоритм, выполняющий изменения.


Разделение на части

[править | править код]

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

Разные стили данных имеют шаблоны, которые правильное разбиение на блоки может эффективно использовать.

Существует три типа стратегий фрагментации:

  • Фиксированная длина с перекрытием. Это быстро и просто. Перекрывающиеся последовательные фрагменты помогают поддерживать семантический контекст между фрагментами.
  • Синтаксические фрагменты могут разбивать документ на предложения. Также могут помочь такие библиотеки, как spaCy или NLTK.
  • Разделение на фрагменты на основе формата файла. Некоторые типы файлов имеют встроенные естественные фрагменты, и лучше с этим считаться. Например, файлы кода лучше всего разбивать на фрагменты и векторизовать как целые функции или классы. HTML-файлы должны оставлять нетронутыми элементы <table> или <img>, закодированные в base64 . Аналогичные соображения следует учитывать и для файлов PDF. В этом методе могут помочь такие библиотеки, как Unstructured или Langchain.

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

Ошибка в сносках?: Тег <ref> с именем «Survey», определённый в <references>, не используется в предшествующем тексте.
Ошибка в сносках?: Тег <ref> с именем «AWS», определённый в <references>, не используется в предшествующем тексте.
Ошибка в сносках?: Тег <ref> с именем «FCC», определённый в <references>, не используется в предшествующем тексте.
Ошибка в сносках?: Тег <ref> с именем «BUZBP», определённый в <references>, не используется в предшествующем тексте.
Ошибка в сносках?: Тег <ref> с именем «orqa», определённый в <references>, не используется в предшествующем тексте.
Ошибка в сносках?: Тег <ref> с именем «faiss», определённый в <references>, не используется в предшествующем тексте.
Ошибка в сносках?: Тег <ref> с именем «colbert», определённый в <references>, не используется в предшествующем тексте.
Ошибка в сносках?: Тег <ref> с именем «splade», определённый в <references>, не используется в предшествующем тексте.
Ошибка в сносках?: Тег <ref> с именем «dragon», определённый в <references>, не используется в предшествующем тексте.
Ошибка в сносках?: Тег <ref> с именем «replug», определённый в <references>, не используется в предшествующем тексте.
Ошибка в сносках?: Тег <ref> с именем «ralm», определённый в <references>, не используется в предшествующем тексте.
Ошибка в сносках?: Тег <ref> с именем «borgeaud», определённый в <references>, не используется в предшествующем тексте.

Ошибка в сносках?: Тег <ref> с именем «wang2023a», определённый в <references>, не используется в предшествующем тексте.

[[Категория:Обработка естественного языка]] [[Категория:Большие языковые модели]]