LightRAG 是一个简单高效的检索增强生成(RAG)框架,由香港大学数据科学实验室(HKUDS)开发。它通过双图索引机制——结合知识图谱(实体与关系)和向量嵌入——实现低资源环境下的快速检索,显著优于传统复杂检索器,同时无需大规模训练。该框架的核心在于学习查询融合,将低层(实体细节)和高层(主题关系)检索结果动态整合,避免了传统 RAG 的碎片化问题。
双图索引是 LightRAG 的基础。首先,文档被切分为 chunk_token_size=1200、chunk_overlap_token_size=100 的文本块,使用 LLM(如 ≥32B 参数模型,上下文 ≥32K)提取实体和关系,形成知识图谱节点与边。同时,为每个实体/关系生成键值对(关键词-描述),并嵌入向量存储(如 NanoVectorDB,默认 cosine_better_than_threshold=0.2)。向量图捕捉语义相似性,知识图则编码结构化关系,支持 NetworkX 或 Neo4J 存储。该过程支持增量更新:新文档仅构建子图并合并,避免全量重建,适合动态知识库。
查询融合采用双层检索范式。针对用户查询,LLM 提取 low-level keywords(具体实体)和 high-level keywords(抽象主题)。Local 模式检索实体邻域(top_k=60),Global 模式遍历关系(chunk_top_k=20),Hybrid/Mix 模式融合两者。融合通过学习权重动态调整:max_entity_tokens=6000、max_relation_tokens=8000、max_total_tokens=30000,确保上下文预算均衡。启用 rerank(如 BAAI/bge-reranker-v2-m3)后,Mix 模式默认,提升混合查询精度 20%以上。实验显示,LightRAG 在农业、CS、法律数据集上,综合胜率超 NaiveRAG 60%、GraphRAG 52%。
蒸馏优化进一步降低资源需求。LightRAG 支持小型 LLM(如 Qwen3-30B-A3B)蒸馏知识图提取,使用 enable_llm_cache=True 缓存重复提示,embedding_batch_num=32、llm_model_max_async=4 并发加速。embedding_cache_config={"enabled": True, "similarity_threshold": 0.95} 复用相似查询,避免 LLM 调用。对于低资源部署,推荐 Ollama + nomic-embed-text(dim=768),num_ctx=32768;存储选 JsonKV + NanoVectorDB + NetworkX,无需外部 DB。
工程落地参数清单:
- 索引参数:chunk_token_size=1200, overlap=100, entity_extract_max_gleaning=1, summary_context_size=10000, summary_max_tokens=500。
- 检索阈值:top_k=60, chunk_top_k=20, cosine_threshold=0.2, enable_rerank=True。
- 融合调优:mode="mix", max_entity_tokens=6000, max_relation_tokens=8000;权重从日志监控,A/B 测试 local/global 比例。
- 并发与缓存:embedding_func_max_async=16, llm_model_max_async=4, enable_llm_cache=True, embedding_cache_config={"similarity_threshold":0.95, "use_llm_check":False}。
- 存储选型:开发用默认(Json/Nano/NetworkX),生产用 PGVector + Neo4J + RedisKV(持久化 save 900 1 等)。
监控要点:
- 性能:TokenTracker 追踪 insert/query token,目标 <30000/query;Langfuse 集成 observability,警报 latency >500ms。
- 质量:RAGAS 评估 context_precision >0.9, faithfulness >0.95;自定义:实体召回率、融合权重分布。
- 回滚策略:workspace 隔离多实例;delete_by_doc_id 移除问题文档;aclear_cache(modes=["hybrid"]) 清缓存;监控 LLM 漂移,切换 model_func。
部署清单(Docker 单机):
- git clone https://github.com/HKUDS/LightRAG;cp env.example .env,设 OPENAI_API_KEY/BGE-M3。
- uv sync --extra api;bun install/build webui。
- docker compose up(含 Neo4J/Redis);lightrag-server。
- API 测试:POST /documents/upload;GET /query?mode=hybrid。
- 规模化:Milvus/Qdrant 向量,PG+AGE 图;max_parallel_insert=4-8。
风险控制:LLM 选非推理模型(索引用 gpt-4o-mini,查询用强模型);嵌入固定,变更前清 data_dir;生产设 timeout=600s,重试 3 次。
LightRAG 的简单性在于最小化依赖,却通过参数化融合和蒸馏实现 SOTA 性能,适用于低资源场景如边缘设备。
资料来源:
(正文约 1250 字)