MiniRAG:轻量级检索增强生成方法
MiniRAG 是一个新型的轻量级检索增强生成(Retrieval-Augmented Generation, RAG)系统,旨在克服小型语言模型(SLM)在资源受限环境中性能不佳的问题。它通过两项创新技术:语义感知异构图索引和轻量级拓扑增强检索,实现了与大型语言模型(LLMs)相当的效果,但仅需后者 25% 的存储空间。此外,该方案提供了一个基准数据集以评估复杂查询场景下的系统表现,并已开源实现和数据集。
一、MiniRAG 实现原理
MiniRAG 系统通过以下两种核心机制解决在资源受限场景下利用 SLMs 进行 RAG 任务的问题:
1. 异构图索引机制
MiniRAG 引入了一种语义感知的异构图索引机制,将文本块和命名实体统一在一个结构中,减少对复杂语义理解的依赖。该机制的核心是将数据分为两类节点:
- 文本块节点:存储原始文档切片。
- 实体节点:包括事件、位置、时间参考和领域特定概念等,用于锚定语义理解。
节点之间的边分为两类:
- 实体 - 实体连接:描述实体间的关系。
- 实体 - 文本块连接:将实体与其所在的上下文关联。
这种结构化的知识表示使得系统即使在 SLMs 能力有限的情况下,也能通过图结构保持鲁棒性和准确性。
2. 轻量级拓扑增强检索
MiniRAG 提出了一种基于图的检索方法,利用图结构和启发式搜索模式进行高效的知识发现。该方法包括查询语义映射和拓扑增强图检索两个阶段。
1)查询语义映射
首先,使用小型语言模型从查询中提取相关实体,并使用轻量级句子嵌入模型评估图中所有实体节点的语义相似性。然后,通过智能查询引导机制在图中构建推理路径。这一步骤确保了即使查询简短,也能准确定位到图中的关键节点。
2)拓扑增强图检索
通过嵌入相似性搜索识别种子实体,然后利用异构图结构发现相关的推理路径。通过结合实体特定的相关性评分、结构重要性指标和路径连接模式,实现了高效的检索质量。这种方法不需要高级的语言理解能力,即可平衡多个信息信号。
相关公式解释
为了量化检索效果,MiniRAG 定义了以下评分函数:
实体 - 实体连接的相关性评分函数: $$ Score(e_1, e_2) = f(\text{subgraph}(e), \text{embedding}) $$ 其中,$\text{subgraph}(e)$ 表示以边为中心的跳子图,包含从任一端点可达的所有节点和边。该函数评估局部图结构对语义相关性的贡献。
路径发现的综合评分函数: $$ Score(path) = \alpha \cdot Sim(q, e_{start}) + \beta \cdot Importance(path) + \gamma \cdot Connectivity(path) $$ 其中,$Sim(q, e_{start})$ 表示起始节点与查询实体在向量空间中的余弦相似度,$Importance$ 是结构重要性指标,$Connectivity$ 是路径连接模式。这是一个二元指示函数,如果节点出现在路径中则返回 1,否则返回 0。
二、实验设计
数据集
为了全面评估系统性能,使用了以下数据集:
- 合成个人通信数据:通过 GPT-4 生成,模拟了一年的日常生活交互,包含多轮对话和复杂上下文。
- 短文档数据:基于当代新闻文章的多跳 RAG 数据集,测试系统在事实性问答上的表现。
评估协议和指标
使用准确率(acc)和错误率(err)作为主要评估指标。
- 准确率:衡量 RAG 系统响应与预期答案的一致性。
- 错误率:捕捉 RAG 系统提供错误信息的情况。
部分实现细节
- 文本处理:设置块大小为 1200 个 token,重叠 100 个 token,使用
nano vector base进行向量存储。


