Инженерная академия ИИ: 2.10 Автоматизированный ретривер слияний

краткое содержание

Автоматизированная программа поиска слиянийУсовершенствованная система генерации извлечений (RAG)Высокоуровневая реализация Этот подход направлен на повышение уровня осознания контекста и согласованности ответов, генерируемых ИИ, путем объединения потенциально разрозненных и мелких контекстов в более крупные и всеобъемлющие.

https://github.com/adithya-s-k/AI-Engineering.academy/tree/main/RAG/05_Auto_Merging_RAG

 

AI工程学院:2.10自动合并检索器

 

Фоновая мотивация

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

Методологические детали

Предварительная обработка документов и создание иерархий

  1. Загрузка документовЗагрузка и обработка входных документов (например, файлов PDF).
  2. иерархическое разрешение: Использование HierarchicalNodeParser Создает иерархию узлов из документа:
    • Уровень 1: размер блока 2048
    • Уровень 2: размер блока 512
    • Уровень 3: размер блока 128
  3. Хранение узлов: Храните все узлы в хранилище документов, а узлы листьев также индексируются в хранилище векторов.

Усовершенствованный рабочий процесс создания поиска

  1. Предварительная обработка запросов: Для обработки пользовательских запросов используйте ту же модель встраивания, что и для блоков документов.
  2. Основной поиск: Базовый поисковик выполняет первоначальный поиск по сходству, чтобы найти релевантные узлы листа.
  3. Автоматическое слияние::AutoMergingRetriever Полученный набор листовых узлов анализируется, и подмножество листовых узлов, которые ссылаются на родительский узел сверх заданного порога, рекурсивно "объединяется".
  4. расширение контекста (вычислительная техника): Объединенные узлы образуют расширенный контекст и объединяются с исходным запросом.
  5. Генерирование ответа: Генерируйте ответы, вводя контексты расширений и запросы в большую языковую модель (LLM).

Ключевые особенности автоматического поиска слияний

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

Преимущества этого метода

  1. Повышение контекстуальной согласованности: Обеспечьте более последовательный и полный контекст для более крупной языковой модели, объединив связанные фрагменты текста.
  2. Гибкая адаптация поиска: Процесс слияния автоматически подстраивается под запрос и результаты поиска, чтобы предоставить контекстно-значимую информацию.
  3. Эффективная структура хранения: Быстрая реализация базового поиска узлов листа при сохранении иерархической структуры.
  4. Возможность улучшения качества ответов: Ожидается, что расширенный контекст приведет к более точным и подробным ответам на языковые модели.

Результаты

Результаты экспериментов показывают, что при сравнении автоматического поиска слияния с базовым поисковиком:

  • Аналогичные показатели по метрикам корректности, релевантности, точности и семантического сходства.
  • При попарном сравнении 52,5% пользователей предпочли ответ поисковика с автоматическим слиянием.

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

вынести вердикт

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

предварительные условия

Чтобы внедрить эту систему, вам понадобятся:

  1. Большая языковая модель, способная генерировать текст (например, GPT-3.5-turbo, GPT-4).
  2. Модель встраивания для преобразования текстовых блоков и запросов в векторные представления.
  3. Векторные базы данных для эффективного поиска сходства (например, FAISS).
  4. Хранилище документов для хранения полной иерархии узлов.
  5. предложение LlamaIndex библиотека, которая содержит HierarchicalNodeParser ответить пением AutoMergingRetriever Реализация.
  6. Достаточные вычислительные ресурсы для обработки и хранения больших коллекций документов.
  7. Знакомство с языком программирования Python для реализации и тестирования.

Пример использования

from llama_index.core import StorageContext, VectorStoreIndex
from llama_index.core.node_parser import HierarchicalNodeParser
from llama_index.core.retrievers import AutoMergingRetriever
# 将文档解析为节点层级
node_parser = HierarchicalNodeParser.from_defaults()
nodes = node_parser.get_nodes_from_documents(docs)
# 设置存储上下文
storage_context = StorageContext.from_defaults()
storage_context.docstore.add_documents(nodes)
# 创建基础索引和检索器
leaf_nodes = get_leaf_nodes(nodes)
base_index = VectorStoreIndex(leaf_nodes, storage_context=storage_context)
base_retriever = base_index.as_retriever(similarity_top_k=6)
# 创建自动合并检索器
retriever = AutoMergingRetriever(base_retriever, storage_context, verbose=True)
# 在查询引擎中使用自动合并检索器
query_engine = RetrieverQueryEngine.from_args(retriever)
response = query_engine.query(query_str)
© заявление об авторских правах

Похожие статьи

Нет комментариев

Вы должны войти в систему, чтобы участвовать в комментариях!
Войти сейчас
нет
Нет комментариев...