LightRAG:简单快速的检索增强生成框架

本文介绍由香港大学开发的 LightRAG 框架,这是一个基于知识图谱的轻量级检索增强生成系统,通过知识图谱技术实现更精准的语义检索和上下文理解,发表于 EMNLP 2025。

LightRAG:简单快速的检索增强生成框架

LightRAG 是一个基于知识图谱的轻量级 RAG(Retrieval-Augmented Generation)框架,发表于 EMNLP 2025,为开发者提供了简单高效的文档索引和智能检索解决方案。

项目概述

LightRAG 由香港大学数据系统实验室(HKUDS)开发,是一个简单且快速的检索增强生成系统。相比传统的 RAG 方案,LightRAG 通过知识图谱技术,实现了更精准的语义检索和上下文理解。

核心特性

  • 🚀 简单易用:API 设计简洁,快速上手
  • 📊 知识图谱驱动:自动提取实体和关系,构建语义网络
  • 高性能:优化的检索算法,支持大规模数据集
  • 🔧 灵活存储:支持多种向量数据库和图数据库
  • 🌐 多 LLM 支持:OpenAI、Ollama、Hugging Face、Gemini 等
  • 🎨 Web UI:提供直观的可视化界面和查询接口
  • 📄 多模态支持:通过 RAG-Anything 集成处理文本、图像、表格等

技术架构

知识图谱索引

LightRAG 的核心在于其知识图谱索引技术:

  1. 实体提取:使用 LLM 从文档中提取实体(人名、组织、地点等)
  2. 关系识别:分析实体之间的语义关系
  3. 图谱构建:将实体和关系构建为图结构
  4. 向量嵌入:为实体、关系和文本块生成向量表示

这种结构化的知识表示使得 LightRAG 能够:

  • 理解复杂的关系查询
  • 提供上下文相关的答案
  • 支持多跳推理

检索模式

LightRAG 提供五种查询模式,适应不同场景:

模式 说明 适用场景
local 侧重上下文相关的局部信息 短文档、特定主题
global 利用全局知识 跨文档推理、全局关系
hybrid 结合局部和全局检索 通用查询、平衡效果
naive 基础向量搜索 快速检索、简单场景
mix 集成知识图谱和向量检索 复杂查询、混合场景

快速开始

安装 LightRAG

1
2
3
4
5
# 使用 uv 安装(推荐)
uv pip install lightrag-hku

# 或使用 pip
pip install lightrag-hku

基本使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import asyncio
from lightrag import LightRAG, QueryParam
from lightrag.llm.openai import gpt_4o_mini_complete, openai_embed
from lightrag.utils import setup_logger

setup_logger("lightrag", level="INFO")

WORKING_DIR = "./rag_storage"

async def main():
# 初始化 LightRAG
rag = LightRAG(
working_dir=WORKING_DIR,
embedding_func=openai_embed,
llm_model_func=gpt_4o_mini_complete,
)

# 初始化存储(必须!)
await rag.initialize_storages()

# 插入文档
await rag.ainsert("你的文档内容...")

# 查询
response = await rag.aquery(
"文档的主题是什么?",
param=QueryParam(mode="hybrid")
)

print(response)

if __name__ == "__main__":
asyncio.run(main())

存储方案

LightRAG 支持多种存储后端,满足不同场景需求:

向量存储

  • NanoVectorDB(默认)
  • PostgreSQL (pgvector)
  • Milvus
  • ChromaDB
  • Faiss
  • Qdrant
  • MongoDB

图存储

  • NetworkX(默认)
  • Neo4j ⭐(推荐生产环境)
  • PostgreSQL (Apache AGE)
  • Memgraph

KV 存储

  • JsonFile(默认)
  • PostgreSQL
  • Redis
  • MongoDB

推荐配置

开发环境:默认配置(NetworkX + NanoVectorDB)
生产环境:Neo4j + PostgreSQL

模型要求

LLM 要求

  • 参数量:至少 320 亿参数
  • 上下文长度:至少 32K(推荐 64K)
  • 建议:索引阶段使用推理模型,查询阶段使用更强的模型

Embedding 模型

推荐使用高性能多语言模型:

  • BAAI/bge-m3
  • OpenAI text-embedding-3-large

Reranker 模型

启用 Reranker 可以显著提升检索效果:

  • BAAI/bge-reranker-v2-m3
  • Jina Reranker

高级功能

Reranker 支持

LightRAG 支持重排序模型,可以对检索到的文本块进行精细排序,显著提升混合查询的性能。

文档引用

支持引用功能,确保答案可以追溯到原始文档,提高可解释性。

文档删除

支持文档删除并自动重新生成知识图谱,保持查询性能。

Web UI

提供可视化界面,支持:

  • 文档索引
  • 知识图谱探索
  • RAG 查询
  • 兼容 Ollama API

多模态支持

通过 RAG-Anything 集成,支持处理:

  • PDF 文档
  • 图像
  • Office 文档
  • 表格
  • 公式

相关项目

HKUDS 团队还开发了多个相关项目:

RAG-Anything

全能多模态 RAG 系统,无缝处理文本、图像、表格、公式等。

VideoRAG

超长上下文视频理解的 RAG 系统。

MiniRAG

使用小模型简化 RAG,降低资源需求。

适用场景

LightRAG 适合以下场景:

  1. 企业知识库:构建公司内部的问答系统
  2. 文档检索:技术文档、研究报告的智能检索
  3. 学术研究:论文库的语义搜索和关系分析
  4. 个人知识管理:笔记、资料的自动化整理和查询
  5. 客服机器人:基于产品文档的智能客服

性能优势

对比传统 RAG

特性 传统 RAG LightRAG
知识表示 纯向量 知识图谱
关系理解
多跳推理 困难 支持
上下文相关性 中等
可解释性

扩展性

  • 大规模数据:优化后的管道支持大规模数据集高效处理
  • 并发控制:可配置的并发级别
  • 缓存机制:LLM 响应缓存,减少重复计算

总结

LightRAG 是一个设计优雅、实现高效的 RAG 框架,通过知识图谱技术实现了超越传统向量检索的智能问答能力。

核心优势

  • ✅ 简单易用的 API
  • ✅ 强大的知识图谱支持
  • ✅ 灵活的存储方案
  • ✅ 丰富的功能集(Reranker、Web UI、多模态)
  • ✅ 活跃的社区和持续的更新

对于需要构建智能文档检索系统的开发者来说,LightRAG 是一个值得尝试的选择。

相关链接


欢迎在评论区分享你的使用体验和问题!