❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日分享大模型与 AI 领域的最新开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦
🚀 快速阅读
- 高效检索:基于异构图索引机制,快速从大量数据中检索相关知识。
- 轻量级设计:专为小型语言模型设计,降低计算和存储需求。
- 强大推理:支持复杂推理任务,适用于多种应用场景。
正文(附运行示例)
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。
资源
- GitHub 仓库:https://github.com/HKUDS/MiniRAG/
- arXiv 技术论文:https://arxiv.org/pdf/2501.06713
❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日分享大模型与 AI 领域的最新开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦