LightRAG 作为 EMNLP 2025 论文提出的简单快速 RAG 方案,其核心在于双图边蒸馏机制。该机制不依赖重型索引或 KV 缓存,通过 LLM 从文档块提取实体(节点)和关系(边),构建实体图与关系图,并经蒸馏融合为高效检索结构,实现低参数高性能的检索增强生成。
双图构建从文档 chunking 开始,默认 chunk_token_size=1200、chunk_overlap_token_size=100,确保块间语义连续。LLM(如 32B+ 参数模型,推荐 Qwen2-72B 或 GPT-4o-mini)逐块执行实体关系提取(R(·)),输出节点如“心脏病专家”、边如“诊断心脏病”。提取后进入去重(D(·)),多块同义实体/关系合并,避免冗余;参数 entity_extract_max_gleaning=1 控制迭代次数,summary_context_size=10000 限制 LLM 上下文。
边蒸馏(P(·))是融合关键:LLM 为每个节点/边生成键值对,键为短语(如实体名或关系关键词),值为总结段落(summary_max_tokens=500)。实体图聚焦节点嵌入(node2vec_params={"dimensions":1536}),关系图强调边权重与高阶连接,实现双图融合。此过程参数化强,如 embedding_batch_num=32、llm_model_max_async=4,支持并行加速,无需重建全图的增量 union 更新新边/节点。
检索采用双层范式:低层(local)检索 top_k=60 个实体/块,聚焦精确匹配;高层(global)检索关系,捕获多跳语义;hybrid 模式默认融合。QueryParam 配置 chunk_top_k=20(向量后 rerank)、max_entity_tokens=6000、max_relation_tokens=8000、max_total_tokens=30000,确保 token 预算内高效。rerank(如 bge-reranker-v2-m3)默认启用,提升混合查询精度。相比 GraphRAG,LightRAG 检索仅需一次 LLM 调用,token 消耗低 80%+。
工程落地参数清单:
- LLM/Embedding:llm_model_func=gpt-4o-mini_complete(索引用非推理模型),embedding_func=openai_embed 或 bge-m3(dim=1536,必一致)。
- 存储:graph_storage=NetworkXStorage(开发)/Neo4JStorage(生产);vector_storage=NanoVectorDBStorage;cosine_better_than_threshold=0.2。
- 初始化:LightRAG(working_dir="./rag_storage", chunk_token_size=1200) → await initialize_storages() → insert(text)。
- 查询:QueryParam(mode="hybrid", top_k=60, enable_rerank=True, stream=True)。
- 监控/回滚:enable_llm_cache=True;删除用 adelete_by_doc_id;阈值超标回滚至 naive 模式。
- 风险阈值:实体提取失败率>10% 调高 gleaning=2;检索召回<0.8 增 chunk_top_k=30。
实际部署中,先用小数据集(如 dickens/book.txt)验证提取准确率>85%,渐进扩展。支持 Ollama/HuggingFace 本地化,GPU<8GB 时调 llm_model_max_async=2。该机制在 Agriculture/Legal 等数据集上胜率超 60%,证明低参高效。
资料来源:HKUDS/LightRAG GitHub 仓库;arXiv:2410.05779 论文。