LightRAG作为EMNLP2025论文提出的简单快速检索增强生成框架,通过双图边蒸馏机制显著提升RAG效率,特别适用于低资源环境下的知识图谱构建与检索。其核心在于将文档分块后使用LLM提取实体与关系边,形成双层图结构(local实体图与global关系图),并通过边蒸馏(即LLM profiling生成键值对描述)实现知识浓缩,避免GraphRAG的重建开销。
双图边蒸馏的核心流程从文档分块开始,默认chunk_token_size=1200、chunk_overlap_token_size=100,确保chunk粒度阈值控制在语义完整范围内,避免实体跨块丢失。证据显示,这种阈值设计在UltraDomain数据集上,使LightRAG的全面性胜率达67.6%(vs NaiveRAG 32.4%),多样性76.4%,远超基线。提取阶段,LLM仅需单次调用(entity_extract_max_gleaning=1)生成实体(name/type/description)和关系(source/target/keywords/description),通过去重函数D(·)合并重复边,形成高效KG。蒸馏过程使用summary_context_size=10000、summary_max_tokens=500,进一步浓缩边描述,支持增量union操作,仅更新新边而非全图重建。
查询融合是低资源调优的关键,采用dual-level范式:local模式检索top_k=60实体及其1-hop邻域(cosine_better_than_threshold=0.2),聚焦精确事实;global模式检索关系边,提供高层语义;hybrid/mix模式融合二者,chunk_top_k=20保留最佳文本块。参数如max_entity_tokens=6000、max_relation_tokens=8000、max_total_tokens=30000,确保上下文预算控制在低资源LLM(如Qwen3-30B,上下文≥32K)能力内。实验证据:在混合查询下,启用rerank(如BAAI/bge-reranker-v2-m3)后,性能提升显著,推理仅需<100 token和1次API调用(vs GraphRAG的多社区遍历)。
落地配置清单如下,确保检索效率与调优:
-
安装与初始化:
uv pip install lightrag-hku[api]
cp env.example .env # 配置LLM/嵌入模型,embedding_dim固定(如1536 for bge-m3)
rag = LightRAG(working_dir="./storage", chunk_token_size=1200, chunk_overlap_token_size=100,
embedding_func=openai_embed, llm_model_func=gpt_4o_mini_complete,
llm_model_max_async=4, embedding_batch_num=32)
await rag.initialize_storages()
-
索引构建(边蒸馏):
- 批量插入:rag.insert(["doc1.txt", "doc2.txt"], max_parallel_insert=4)
- 自定义KG插入:rag.insert_custom_kg({...entities, relationships...})
- 监控:entity_extract_max_gleaning=1(调试设True启用缓存),观察kv_store_llm_response_cache.json命中率。
-
查询融合参数:
param = QueryParam(mode="hybrid", top_k=60, chunk_top_k=20, enable_rerank=True,
max_total_tokens=30000, cosine_threshold=0.2)
result = await rag.aquery("复杂查询", param=param)
- 低资源调优:llm_model_kwargs={"options": {"num_ctx": 32768}} for Ollama;vector_db_storage_cls_kwargs={"cosine_better_than_threshold": 0.25}
-
效率监控与回滚:
- 阈值:embedding_cache_config={"similarity_threshold": 0.95};若召回低,降cosine_threshold至0.15。
- 存储:生产用Neo4J(graph_storage="Neo4JStorage")或PostgreSQL全栈。
- 回滚:rag.delete_by_doc_id("doc_id")后重建;TokenTracker监控消耗。
风险控制:LLM≥32B参数避免提取弱;嵌入模型变更需清vector表。实际部署中,hybrid模式下QPS达10+(4并发),成本降80% vs GraphRAG。
资料来源:HKUDS/LightRAG GitHub README;arXiv:2410.05779 (EMNLP2025 LightRAG论文)。