HippoRAG: многоходовая система поиска знаний на основе долговременной памяти
Общее введение
HippoRAG - это фреймворк с открытым исходным кодом, разработанный группой OSU-NLP в Университете штата Огайо и вдохновленный механизмами долговременной памяти человека. Он сочетает в себе методы Retrieval Augmented Generation (RAG), Knowledge Graph и Personalised PageRank, чтобы помочь большим языковым моделям (LLM) последовательно интегрировать знания из внешних документов.HippoRAG 2 - это последняя версия HippoRAG, которая была продемонстрирована на NeurIPS 2024. Она улучшает способность модели выполнять многоходовый поиск и сложное понимание контекста, сохраняя при этом низкую стоимость и низкую задержку. При автономном индексировании она занимает меньше ресурсов, чем такие решения, как GraphRAG. Пользователи могут получить код на GitHub и развернуть его бесплатно.

Методология внедрения HippoRAG2
Список функций
- Индексирование документов: Преобразование внешних документов в структуры знаний с возможностью поиска, поддерживающие постоянное обновление.
- многоходовый поиск: Отвечайте на вопросы, требующие многоступенчатых рассуждений, устанавливая связи между знаниями.
- Поколение вопросов и ответов: Генерируйте точные ответы на основе результатов поиска.
- Поддержка модели: Совместимость с моделями OpenAI и собственными моделями vLLM Развернутый LLM.
- Эффективная обработка: Быстрый поиск в режиме онлайн и низкие требования к ресурсам для индексирования в режиме офлайн.
- экспериментальная проверка: Предоставление наборов данных и скриптов для поддержки повторения исследований.
Использование помощи
Процесс установки
Установка HippoRAG проста и подходит для пользователей с базовыми знаниями Python. Ниже приведены подробные шаги:
- Создание виртуальной среды
Создайте среду Python 3.10, введя в терминале следующую команду:
conda create -n hipporag python=3.10
Затем активируйте окружение:
conda activate hipporag
- Установка HippoRAG
Работает в активированной среде:
pip install hipporag
- Настройка переменных среды
Установите следующие переменные в соответствии с вашим оборудованием и требованиями. Например, используйте несколько графических процессоров:
export CUDA_VISIBLE_DEVICES=0,1,2,3
export HF_HOME=<你的 Huggingface 目录路径>
export OPENAI_API_KEY=<你的 OpenAI API 密钥> # 使用 OpenAI 模型时需要
Активируйте среду еще раз, чтобы убедиться, что она вступила в силу:
conda activate hipporag
Использование моделей OpenAI
Чтобы быстро начать работу с HippoRAG?, вы можете использовать модель OpenAI. Вот шаги:
- Подготовьте документ
Создайте список документов, например:
docs = [
"张三是一名医生。",
"李四住在北京。",
"北京是中国的首都。"
]
- Инициализация HippoRAG
Установка параметров в Python:from hipporag import HippoRAG save_dir = 'outputs' llm_model_name = 'gpt-4o-mini' embedding_model_name = 'nvidia/NV-Embed-v2' hipporag = HippoRAG(save_dir=save_dir, llm_model_name=llm_model_name, embedding_model_name=embedding_model_name)
- индексный файл
Ввод документов для индексирования:hipporag.index(docs=docs)
- Вопросы и ответы
Введите вопрос, чтобы получить ответ:queries = ["张三做什么工作?", "李四住在哪里?"] rag_results = hipporag.rag_qa(queries=queries) print(rag_results)
Выход может быть следующим:
- Чжан Сань - врач.
- Ли Си живет в Пекине.
Использование нативной модели vLLM
Хотите развернуть локально? Вы можете запустить HippoRAG с помощью vLLM:
- Запуск службы vLLM
Запуск локальных служб в терминале, например, с помощью модели Llama:export CUDA_VISIBLE_DEVICES=0,1 export VLLM_WORKER_MULTIPROC_METHOD=spawn export HF_HOME=<你的 Huggingface 目录路径> conda activate hipporag vllm serve meta-llama/Llama-3.3-70B-Instruct --tensor-parallel-size 2 --max_model_len 4096 --gpu-memory-utilization 0.95
- Инициализация HippoRAG
Укажите локальный адрес службы в Python:hipporag = HippoRAG(save_dir='outputs', llm_model_name='meta-llama/Llama-3.3-70B-Instruct', embedding_model_name='nvidia/NV-Embed-v2', llm_base_url='http://localhost:8000/v1')
- Указатель и вопросы и ответы
Операция такая же, как и для модели OpenAI, просто введите документ и вопрос.
Функциональное управление
многоходовый поиск
Изюминкой HippoRAG является многоходовый поиск. Например, если вы спросите "Ли Си живет в столице какой страны?". Система сначала найдет "Ли Си живет в Пекине", затем соотнесет это с "Пекин - столица Китая" и ответит "Китай". Чтобы воспользоваться этой системой, достаточно ввести вопрос:
queries = ["李四住在哪个国家的首都?"]
rag_results = hipporag.rag_qa(queries=queries)
print(rag_results)
Экспериментальное воспроизводство
Хотите подтвердить результаты своей работы? HippoRAG предоставляет инструменты для размножения.
- Подготовка набора данных
Загрузите набор данных с GitHub или HuggingFace (например.sample.json
), вставьтеreproduce/dataset
Каталог. - беговой эксперимент
Введите его в терминал:python main.py --dataset sample --llm_base_url https://api.openai.com/v1 --llm_name gpt-4o-mini --embedding_name nvidia/NV-Embed-v2
- Посмотреть результаты
Проверьте результат, чтобы убедиться в эффективности многоходового поиска и Q&A.
автономная пакетная обработка
vLLM поддерживает автономный режим, а скорость индексирования может быть увеличена более чем в 3 раза. Операции выполняются следующим образом:
- Запуск автономной партии
export CUDA_VISIBLE_DEVICES=0,1,2,3 export HF_HOME=<你的 Huggingface 目录路径> export OPENAI_API_KEY='' python main.py --dataset sample --llm_name meta-llama/Llama-3.3-70B-Instruct --openie_mode offline --skip_graph
- последующая операция
По окончании вернитесь в режим онлайн, чтобы запустить службу vLLM и процесс Q&A.
предостережение
- дефицит памяти: Если памяти графического процессора недостаточно, отрегулируйте
max_model_len
возможноgpu-memory-utilization
. - регулировка компонентов во время тестирования: Использование
reproduce/dataset/sample.json
Тестовая среда. - Оформление документов: Очистите старые данные перед повторным запуском эксперимента:
rm -rf outputs/sample/*
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...