Повышение качества генерации с использованием извлечения данных
Retrieval Augmented Generation (RAG) — это техника улучшения ответов языковой модели, основанная на использовании дополнительных, проверенных источников информации. Она работает путём предварительного извлечения релевантного контекста из внешнего хранилища данных, который затем добавляется в контекстное окно модели.
RAG является формой обучения в контексте, где модель учится на информации, предоставленной во время вывода. По сравнению с дообучением или непрерывным предварительным обучением, RAG можно реализовать быстрее и дешевле, и он предоставляет несколько преимуществ.
RAG находится на пересечении извлечения информации и генеративного ИИ. Elasticsearch — отличное средство для реализации RAG, поскольку оно предлагает различные возможности извлечения, такие как полнотекстовый поиск, поиск по векторам и гибридный поиск, а также другие инструменты, такие как фильтрация, агрегации и функции безопасности.
Преимущества RAG
Реализация RAG с использованием Elasticsearch имеет несколько преимуществ:
- Улучшенный контекст: Обеспечивает возможность привязки языковой модели к дополнительным, актуальным и/или частным данным.
- Снижение галлюцинаций: Помогает минимизировать фактические ошибки, позволяя моделям ссылаться на авторитетные источники.
- Экономичность: Требует меньше обслуживания по сравнению с дообучением или непрерывным предварительным обучением моделей.
- Встроенная безопасность: Контролирует доступ к данным, используя функции авторизации Elasticsearch, такие как управление доступом на основе ролей и безопасность на уровне полей/документов.
- Упрощённый разбор ответов: Избавляет от необходимости в пользовательской логике разбора, позволяя языковой модели обрабатывать ответы Elasticsearch и форматировать извлечённый контекст.
- Гибкая реализация: Работает с базовым полнотекстовым поиском и может постепенно обновляться, добавляя более сложные и вычислительно интенсивные семантические возможности поиска.
Обзор системы RAG
На следующей схеме показана простая система RAG, использующая Elasticsearch.
Порядок действий:
- Пользователь отправляет запрос.
- Elasticsearch извлекает релевантные документы, используя полнотекстовый поиск, поиск по векторам или гибридный поиск.
- Языковая модель обрабатывает контекст и генерирует ответ, используя пользовательские инструкции. Примеры пользовательских инструкций включают «Указать источник» или «Предоставить краткий обзор
contentполя в формате Markdown». - Модель возвращает окончательный ответ пользователю.
Более сложная настройка может включать переформулирование запросов между шагами 1 и 2. Этот промежуточный шаг может использовать одну или несколько дополнительных языковых моделей с различными инструкциями для переформулировки запросов для получения более конкретных и подробных ответов.
Начало работы
Быстро начните создание приложений RAG с помощью Playground, который беспрепятственно интегрирует Elasticsearch с поставщиками языковых моделей. Пользовательский интерфейс Playground позволяет создавать, тестировать и развертывать интерфейсы RAG поверх ваших индексов Elasticsearch.
Playground автоматически выбирает лучшие методы извлечения для ваших данных, предоставляя полный контроль над окончательными запросами Elasticsearch и инструкциями для языковой модели. Вы также можете скачать лежащий в основе Python-код для интеграции с существующими приложениями.
Дополнительную информацию вы найдете в документации Playground и попробуйте интерактивную лабораторию для практического опыта.
Узнать больше
Узнайте больше о создании систем RAG с использованием Elasticsearch в этих блогах:
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/_retrieval_augmented_generation.html