Участник:Lomik07/Генерация дополненной поисковой информации: различия между версиями
Lomik07 (обсуждение | вклад) Создано переводом страницы «Retrieval-augmented generation» |
(нет различий)
|
Текущая версия от 14:12, 4 сентября 2024
Генерация с дополненной выборкой (RAG) — это способ поиска информации и работы с языковой моделью. Он изменяет взаимодействие с большой языковой моделью (LLM) таким образом, что модель отвечает на запросы пользователя со ссылкой на указанный набор документов, используя эту информацию вместо информации, полученной из ее собственных обширных статических обучающих данных . Это позволяет языковым моделям использовать специфичную для предметной области и/или обновленную информацию. Варианты использования включают предоставление чат-боту доступа к внутренним данным компании или предоставление фактической информации только из авторитетного источника.
Процесс
[править | править код]Процесс RAG состоит из четырех основных этапов. Во-первых, все данные должны быть подготовлены и проиндексированы для использования LLM. После этого каждый запрос состоит из фазы поиска (извлечения информации), дополнения и генерации.
Индексация
[править | править код]Данные, на которые необходимо ссылаться, должны быть сначала преобразованы в LLM- вложения (эмбеддинги) — числовые представления в виде больших векторов. RAG можно использовать для неструктурированных (обычно текстовых), полуструктурированных или структурированных данных (например , графов знаний ). Затем эти внедрения сохраняются в векторной базе данных для обеспечения возможности поиска документов .
Поиск
[править | править код]При поступлении запроса пользователя сначала вызывается средство извлечения документов для выбора наиболее релевантных документов, которые будут использованы для дополнения запроса. Это сравнение можно выполнить с помощью различных методов, которые частично зависят от типа используемого индексирования.
Дополнение
[править | править код]Модель передает эту соответствующую извлеченную информацию в LLM посредством промпт инжиниринга исходного запроса пользователя. Новые реализации (на 2023 год) также может включать в себя специальные модули расширения с такими возможностями, как расширение запросов на несколько доменов, а также использование памяти и самосовершенствования для обучения на основе предыдущих извлечений.
Генерация
[править | править код]Наконец, LLM может генерировать выходные данные на основе как запроса, так и извлеченных документов. Некоторые модели включают дополнительные шаги для улучшения выходных данных, такие как повторное ранжирование извлеченной информации, выбор контекста и тонкая настройка.
Улучшения
[править | править код]Усовершенствования базового процесса, описанного выше, могут применяться на разных этапах 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>
, не используется в предшествующем тексте.[[Категория:Обработка естественного языка]] [[Категория:Большие языковые модели]]