LightRAG 是一种简单高效的检索增强生成(RAG)框架,专为低资源环境设计,通过双本地 - 全局知识图谱索引、查询融合和蒸馏管道,实现高性能 LLM 检索增强。其核心优势在于避免复杂的多跳推理,直接用图结构捕捉文档实体与关系,支持快速索引和查询,基准测试显示在综合性问题上优于传统 NaiveRAG 和 GraphRAG。
双本地 - 全局图索引机制
LightRAG 的索引过程首先将文档切分成 chunk(默认 chunk_token_size=1200,overlap=100),然后用 LLM 提取实体(entity)和关系(relation)。关键是构建双层图:
- Local 图(实体级):聚焦 chunk 内实体及其直接关系,捕捉局部上下文。每个实体有描述、类型和嵌入向量。
- Global 图(关系级):聚合跨 chunk 的实体关系,形成全局知识网络,支持长程依赖。
证据来自其索引流程图:文档 → 切分 → LLM 实体 / 关系提取 → 节点 / 边嵌入 → 存储(支持 NanoVectorDB、Neo4J 等)。与传统向量 RAG 不同,LightRAG 用图过滤噪声,提升召回率。EMNLP 2025 基准显示,在 Legal 等领域,LightRAG 的 Comprehensiveness 达 83.6%,远超 NaiveRAG 的 16.4%。
落地参数:
- LLM 选择:≥32B 参数、≥32K 上下文(如 gpt-4o-mini 索引,gpt-4o 查询);避免推理模型用于索引。
- 嵌入模型:BAAI/bge-m3(多语言),维度固定(如 1536),切换需重建。
- 提取循环:entity_extract_max_gleaning=1(追加历史消息)。
- 批处理:embedding_batch_num=32,llm_model_max_async=4。
代码示例(Python):
from lightrag import LightRAG
import asyncio
from lightrag.llm.openai import openai_embed, gpt_4o_mini_complete
rag = LightRAG(
working_dir="./rag_storage",
embedding_func=openai_embed,
llm_model_func=gpt_4o_mini_complete,
chunk_token_size=1200,
chunk_overlap_token_size=100
)
await rag.initialize_storages()
await rag.ainsert("文档内容") # 异步插入,支持批量
风险控制:启用 llm_cache=True,避免重复提取;max_parallel_insert≤10,LLM 为瓶颈。
查询融合:Local + Global 模式
查询时,LightRAG 支持 6 种模式:local(实体检索)、global(关系检索)、hybrid(融合)、mix(图 + 向量)、naive(纯向量)、bypass(直通)。
- 融合机制:local 召回 top_k=60 实体(max_entity_tokens=6000),global 召回关系(max_relation_tokens=8000),总预算 max_total_tokens=30000。reranker(如 bge-reranker-v2-m3)重排序 chunk(chunk_top_k=20)。
- 证据:流程图显示,双层检索 + 统一 token 控制,确保上下文精炼。基准中,hybrid 模式在 Mix 数据集 Overall 胜率 60%,GraphRAG 仅 49.6%。
优化清单:
- 默认模式 ="hybrid" 或 "mix"(启用 rerank=True)。
- QueryParam 配置:
from lightrag import QueryParam result = await rag.aquery( "查询问题", param=QueryParam( mode="hybrid", top_k=60, enable_rerank=True, stream=True # 流式输出 ) ) - 历史上下文:conversation_history 仅用于 LLM,不参与检索。
- 自定义提示:user_prompt 指导输出格式(如 "用 mermaid 画关系图")。
低资源适配:Ollama 支持(nomic-embed-text,num_ctx=32768),GPU 6GB 可跑 gemma2:2b 处理 197 实体。
蒸馏管道与端到端优化
LightRAG 的 “蒸馏” 指高效管道:增量插入(apipeline_enqueue_documents)、合并实体(merge_entities)、删除重建(adelete_by_doc_id)。支持多模态(RAG-Anything 集成 PDF / 图像)。
- 参数调优:cosine_better_than_threshold=0.2(向量阈值),summary_max_tokens=500(关系摘要)。
- 存储选择:开发用 JsonKV + NanoVectorDB;生产 Neo4J(图优于 PG-AGE),PostgreSQL 一体化。
- 监控:TokenTracker 追踪消耗,RAGAS 评估,Langfuse 追踪。
完整落地清单:
- 安装:
uv pip install lightrag-hku[api],配置 .env(API 密钥)。 - 服务器:
lightrag-server(WebUI + API,Ollama 兼容)。 - 基准复现:下载 UltraDomain 数据集,跑 reproduce/batch_eval.py。
- 回滚:清缓存
await rag.aclear_cache(),重建索引。 - 规模化:workspace 隔离多实例,Redis 持久化。
LightRAG 证明,简单图索引 + 融合查询即可实现低资源高性能 RAG,适合边缘部署与实时应用。
资料来源: [1] https://github.com/HKUDS/LightRAG (EMNLP 2025 官方仓库) [2] arXiv:2410.05779