HippoRAG 2:开源RAG框架革新知识检索,多跳推理+持续学习全搞定

简介: HippoRAG 2 是俄亥俄州立大学推出的检索增强生成框架,通过个性化PageRank算法和知识图谱技术,显著提升了RAG系统在复杂问答任务中的表现。

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!

🥦 AI 在线答疑 -> 智能检索历史文章和开源项目 -> 尽在微信公众号 -> 搜一搜:蚝油菜花 🥦


🎯 “告别机械检索!HippoRAG 2 用知识图谱+PageRank算法,让AI问答更接近人类记忆”

大家好,我是蚝油菜花。你是否也遇到过——

  • 👉 复杂的问答任务中,AI总是给出不相关的答案
  • 👉 多跳推理问题难以解决,知识片段分散无法整合
  • 👉 传统RAG系统无法动态调整检索结果,导致信息过载...

今天揭秘的 HippoRAG 2,用知识图谱和个性化PageRank算法,彻底颠覆了传统RAG系统的局限性!这个由俄亥俄州立大学推出的框架,不仅能高效整合知识,还能进行多跳推理,处理复杂的问答任务。无论是智能问答、知识管理,还是教育辅助,HippoRAG 2 都能提供精准的解决方案。接下来,我们将深入解析它的核心功能和技术原理,带你一探究竟!

🚀 快速阅读

HippoRAG 2 是俄亥俄州立大学推出的检索增强生成框架,旨在解决现有RAG系统在模拟人类长期记忆动态性和关联性方面的局限性。

  1. 核心功能:高效的知识检索与整合、多跳关联推理、上下文感知检索、持续学习能力。
  2. 技术原理:基于个性化PageRank算法和知识图谱技术,结合深度段落整合和LLM过滤,实现精准的上下文感知检索。

HippoRAG 2 是什么

HippoRAG-intro

HippoRAG 2 是俄亥俄州立大学推出的检索增强生成(RAG)框架,旨在解决现有RAG系统在模拟人类长期记忆动态性和关联性方面的局限性。通过结合个性化PageRank算法和知识图谱技术,HippoRAG 2 能够更有效地整合知识,处理复杂的问答任务。

HippoRAG 2 在离线阶段使用大型语言模型(LLM)从段落中提取三元组,并构建开放知识图谱(KG)。同时,基于嵌入模型检测同义词并添加到KG中。在线检索时,系统结合查询与KG中的三元组和段落进行链接,基于LLM过滤无关信息,应用个性化PageRank算法进行上下文感知检索,最终为问答任务提供最相关的段落。

HippoRAG 2 的主要功能

  • 高效的知识检索与整合:基于深度段落整合和知识图谱(KG)的构建,快速检索与查询相关的知识,整合到生成过程中。
  • 多跳关联推理:借助个性化PageRank算法,系统进行多跳推理,连接分散的知识片段,处理复杂的问答任务。
  • 上下文感知检索:基于查询与知识图谱的深度交互,根据上下文动态调整检索结果,提高检索的准确性和相关性。
  • 持续学习能力:作为一种非参数化的持续学习框架,HippoRAG 2 能在不修改模型参数的情况下,实时吸收和利用新知识,增强系统的适应性。

HippoRAG 2 的技术原理

HippoRAG-methodology

  • 离线索引(Offline Indexing):用LLM从文本段落中提取结构化的三元组(主体、关系、宾语),将三元组整合到开放知识图谱(KG)中。基于嵌入模型检测同义词,在KG中添加同义词边,增强知识图谱的连接性。将原始段落与知识图谱结合,形成包含概念和上下文信息的复合知识图谱。
  • 在线检索(Online Retrieval)
    • 查询链接:用嵌入模型将查询与KG中的三元组和段落进行匹配,确定图搜索的种子节点。
    • 三元组过滤:基于LLM对检索到的三元组进行过滤,去除无关信息,保留与查询高度相关的知识。
    • 个性化PageRank算法:基于KG的结构,应用个性化PageRank算法进行上下文感知检索,动态调整检索结果的相关性。
    • 段落排名与问答:根据PageRank得分对段落进行排名,将排名靠前的段落作为上下文输入到最终的问答模型中。

如何运行 HippoRAG 2

1. 安装

conda create -n hipporag python=3.10
conda activate hipporag
pip install hipporag

2. 初始化环境变量

export CUDA_VISIBLE_DEVICES=0,1,2,3
export HF_HOME=<path to Huggingface home directory>
export OPENAI_API_KEY=<your openai api key>   # if you want to use OpenAI model

conda activate hipporag

3. 快速开始

使用 OpenAI 模型

from hipporag import HippoRAG

# 准备数据集
docs = [
    "Oliver Badman is a politician.",
    "George Rankin is a politician.",
    "Thomas Marwick is a politician.",
    "Cinderella attended the royal ball.",
    "The prince used the lost glass slipper to search the kingdom.",
    "When the slipper fit perfectly, Cinderella was reunited with the prince.",
    "Erik Hort's birthplace is Montebello.",
    "Marina is bom in Minsk.",
    "Montebello is a part of Rockland County."
]

save_dir = 'outputs'
llm_model_name = 'gpt-4o-mini'
embedding_model_name = 'nvidia/NV-Embed-v2'

# 启动 HippoRAG 实例
hipporag = HippoRAG(save_dir=save_dir, 
                    llm_model_name=llm_model_name,
                    embedding_model_name=embedding_model_name) 

# 运行索引
hipporag.index(docs=docs)

# 检索与问答
queries = [
    "What is George Rankin's occupation?",
    "How did Cinderella reach her happy ending?",
    "What county is Erik Hort's birthplace a part of?"
]

retrieval_results = hipporag.retrieve(queries=queries, num_to_retrieve=2)
qa_results = hipporag.rag_qa(retrieval_results)

使用本地部署的 vLLM 模型

  1. 启动 vLLM 服务器:
    ```sh
    export CUDA_VISIBLE_DEVICES=0,1
    export VLLM_WORKER_MULTIPROC_METHOD=spawn
    export HF_HOME=

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


2. 使用 HippoRAG:
```python
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'

hipporag = HippoRAG(save_dir=save_dir,
                    llm_model_name=llm_model,
                    embedding_model_name=embedding_model_name,
                    llm_base_url=llm_base_url)

# 同样的索引、检索与问答操作

资源


❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!

🥦 AI 在线答疑 -> 智能检索历史文章和开源项目 -> 尽在微信公众号 -> 搜一搜:蚝油菜花 🥦

相关文章
|
10月前
|
机器学习/深度学习 人工智能 数据库
RAG 2.0 深入解读
本文从RAG 2.0 面临的主要挑战和部分关键技术来展开叙事,还包括了RAG的技术升级和关键技术等。
1837 85
|
存储 人工智能 算法
RAG七十二式:2024年度RAG清单
作者遴选了2024年度典型的RAG系统和论文(含AI注解、来源、摘要信息),并于文末附上RAG综述和测试基准材料,希望阅读完本文可以帮助大家速通RAG。
|
7月前
|
算法 数据挖掘 测试技术
HiRAG:用分层知识图解决复杂推理问题
HiRAG是一种分层检索增强生成系统,专为复杂知识图的多层推理设计。它通过构建从具体实体到抽象概念的多层次结构,提升知识推理深度与连贯性,有效减少大模型幻觉,适用于天体物理、理论物理等专业领域。
367 3
|
10月前
|
存储 机器学习/深度学习 人工智能
多模态RAG实战指南:完整Python代码实现AI同时理解图片、表格和文本
本文探讨了多模态RAG系统的最优实现方案,通过模态特定处理与后期融合技术,在性能、准确性和复杂度间达成平衡。系统包含文档分割、内容提取、HTML转换、语义分块及向量化存储五大模块,有效保留结构和关系信息。相比传统方法,该方案显著提升了复杂查询的检索精度(+23%),并支持灵活升级。文章还介绍了查询处理机制与优势对比,为构建高效多模态RAG系统提供了实践指导。
2541 0
多模态RAG实战指南:完整Python代码实现AI同时理解图片、表格和文本
|
存储 人工智能 Docker
Heygem:开源数字人克隆神器!1秒视频生成4K超高清AI形象,1080Ti显卡也能轻松跑
Heygem 是硅基智能推出的开源数字人模型,支持快速克隆形象和声音,30秒内完成克隆,60秒内生成4K超高清视频,适用于内容创作、直播、教育等场景。
4642 8
|
人工智能 数据挖掘 API
R2R:开源的 RAG 集成系统,支持多模态处理、混合搜索、知识图谱构建等增强检索技术
R2R 是一款先进的 AI 检索增强生成平台,支持多模态内容处理、混合搜索和知识图谱构建,适用于复杂数据处理和分析的生产环境。
1188 3
R2R:开源的 RAG 集成系统,支持多模态处理、混合搜索、知识图谱构建等增强检索技术
|
机器学习/深度学习 人工智能 自然语言处理
关于LLM-as-a-judge范式,终于有综述讲明白了
《From Generation to Judgment: Opportunities and Challenges of LLM-as-a-judge》探讨了大型语言模型(LLM)在评估和判断任务中的应用。传统方法存在不足,而LLM凭借强大的语言理解和生成能力,展现了广阔的应用前景。论文从输入输出角度定义LLM-as-a-judge,提出三维度分类体系,并汇编评估基准,指出关键挑战如偏见、可解释性和对抗性攻击,展望未来改进方向,强调其潜力与价值。论文链接:https://arxiv.org/abs/2411.16594
865 1
|
自然语言处理 数据可视化 API
Qwen系列模型+GraphRAG/LightRAG/Kotaemon从0开始构建中医方剂大模型知识图谱问答
本文详细记录了作者在短时间内尝试构建中医药知识图谱的过程,涵盖了GraphRAG、LightRAG和Kotaemon三种图RAG架构的对比与应用。通过实际操作,作者不仅展示了如何利用这些工具构建知识图谱,还指出了每种工具的优势和局限性。尽管初步构建的知识图谱在数据处理、实体识别和关系抽取等方面存在不足,但为后续的优化和改进提供了宝贵的经验和方向。此外,文章强调了知识图谱构建不仅仅是技术问题,还需要深入整合领域知识和满足用户需求,体现了跨学科合作的重要性。

热门文章

最新文章