本文于 2025-01-19 15:37 更新,部分内容具有时效性,如有失效,请留言
综合介绍
MiniRAG是一个极其简单的检索增强生成(RAG)框架,旨在通过异构图索引和轻量级拓扑增强检索,使小模型也能实现良好的RAG性能。该项目由香港大学数据科学实验室(HKUDS)开发,主要解决小语言模型(SLM)在现有RAG框架中面临的性能下降问题。MiniRAG通过将文本块和命名实体结合在一个统一的结构中,减少对复杂语义理解的依赖,并利用图结构进行高效的知识发现。该框架在存储空间仅为大型语言模型(LLM)方法的25%的情况下,仍能实现相当的性能。
功能列表
- 异构图索引机制:结合文本块和命名实体,减少对复杂语义理解的依赖。
- 轻量级拓扑增强检索:利用图结构进行高效的知识发现。
- 兼容小语言模型:在资源受限的场景下,提供高效的RAG性能。
- 综合基准数据集:提供LiHua-World数据集,用于评估轻量级RAG系统在复杂查询下的表现。
- 安装简便:支持从源代码和PyPI安装。
使用帮助
安装流程
从源代码安装(推荐)
- 克隆MiniRAG仓库:
git clone https://github.com/HKUDS/MiniRAG.git
cd MiniRAG
- 安装依赖:
pip install -e .
从PyPI安装
MiniRAG基于LightRAG,因此可以直接安装:
pip install lightrag-hku
快速开始
- 下载所需的数据集,并将其放置在
./dataset
目录中。例如,LiHua-World数据集已放置在./dataset/LiHua-World/data/
目录中。 - 使用以下命令对数据集进行索引:
python ./reproduce/Step_0_index.py
- 运行问答模块:
python ./reproduce/Step_1_QA.py
- 或者,使用
./main.py
中的代码初始化MiniRAG。
主要功能操作流程
异构图索引机制
MiniRAG通过将文本块和命名实体结合在一个统一的结构中,创建异构图索引。用户可以通过以下步骤实现:
- 准备好数据集,并确保数据集格式符合要求。
- 运行索引脚本:
python ./reproduce/Step_0_index.py
- 索引完成后,数据将被存储在指定目录中,供后续检索使用。
轻量级拓扑增强检索
MiniRAG利用图结构进行高效的知识发现,用户可以通过以下步骤进行检索:
- 初始化MiniRAG:
from minirag import MiniRAG
model = MiniRAG()
- 加载数据集并进行检索:
results = model.retrieve("你的查询")
- 处理检索结果并生成响应:
response = model.generate(results)
通过以上步骤,用户可以充分利用MiniRAG的功能,实现高效的检索增强生成。