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

🥦 微信公众号|搜一搜:蚝油菜花 🥦


🚀 快速阅读

  1. 高效检索:基于异构图索引机制,快速从大量数据中检索相关知识。
  2. 轻量级设计:专为小型语言模型设计,降低计算和存储需求。
  3. 强大推理:支持复杂推理任务,适用于多种应用场景。

正文(附运行示例)

MiniRAG 是什么

MiniRAG

MiniRAG 是香港大学推出的一种新型检索增强型生成(RAG)系统,专为在资源受限的场景下高效部署小型语言模型(SLMs)而设计。它通过语义感知的异构图索引机制和轻量级拓扑增强检索方法,显著降低了计算和存储需求。

MiniRAG 在实验中展现出与大型语言模型(LLMs)相当的性能,同时仅需 25% 的存储空间。该系统还提供了全面的基准数据集,用于评估轻量级 RAG 系统在现实设备场景下的表现,推动资源受限环境下高效、私密的 RAG 系统的发展。

MiniRAG 的主要功能

  • 高效的知识检索:基于独特的异构图索引机制,快速准确地从大量数据中检索出与用户查询最相关的知识。
  • 轻量级的模型兼容性:专为小型语言模型(SLMs)设计,显著降低对计算资源和存储空间的需求。
  • 强大的推理能力:借助查询引导的推理路径发现机制,处理复杂的、多步骤的推理任务。
  • 适应性强:适用于即时通讯、个人内容管理、本地文档检索等多种应用场景。

MiniRAG 的技术原理

  • 语义感知的异构图索引机制

    • 文本块节点(Vc):保留原始文本的上下文完整性,直接参与检索阶段。
    • 实体节点(Ve):从文本块中提取的关键语义元素,如事件、地点、时间引用和领域特定概念。
    • 实体-实体连接(Eα):捕捉命名实体之间的语义关系、层次结构和时空依赖关系。
    • 实体-文本块连接(Eβ):连接命名实体及其对应的上下文,保持上下文相关性和语义连贯性。
    • 边的语义描述:基于语言模型生成的描述,为连接的节点提供明确的关系上下文。
  • 轻量级拓扑增强检索方法

    • 查询语义映射:用实体提取和轻量级句子嵌入模型,将用户输入的查询与图索引数据进行对齐。
    • 查询驱动的推理路径发现:基于智能查询引导机制,在异构图中构建推理路径。
    • 拓扑增强的图检索:结合基于嵌入的相似性搜索和图结构的拓扑信息,识别与查询相关的高质量实体-实体连接。
    • 查询相关文本块的检索:基于实体-文本块连接,收集与推理路径相关的文本块。
    • 融合增强生成:将检索到的关键关系和最优文本块与先前确定的答案节点进行整合,构建全面且结构化的输入表示。

如何运行 MiniRAG

安装

  • 从源码安装(推荐)
cd MiniRAG
pip install -e .
  • 从 PyPI 安装(代码基于 LightRAG,因此可以直接安装)
pip install lightrag-hku

快速开始

  • 所有复现代码可以在 ./reproduce 目录下找到。
  • 下载您需要的知识库数据集。
  • 将数据集放入 ./dataset 目录下。
  • Note:我们已经将 LiHua-World 数据集以 LiHuaWorld.zip 的形式放在了 ./dataset/LiHua-World/data/ 目录下。如果您想使用其他数据集,可以将其放在 ./dataset/xxx 目录下。

然后使用以下命令对数据集进行索引:

python ./reproduce/Step_0_index.py
python ./reproduce/Step_1_QA.py

或者,使用 ./main.py 中的代码初始化 MiniRAG。

资源


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

🥦 微信公众号|搜一搜:蚝油菜花 🥦