LightRAG 的双图查询融合蒸馏管道是其高效 RAG 的核心,针对长文档检索精度低、速度慢痛点,通过 local/global 双知识图索引、multi-mode 查询融合(local/global/hybrid)和 LLM 知识蒸馏,实现 SOTA 性能。论文实验显示,在法律域 UltraDomain 上,LightRAG 整体胜率达 85%,远超 GraphRAG 的 52%。
双图索引流程:文档 chunk(1200 token + 100 overlap),LLM 提取实体 / 关系,形成 KV 对(Key = 名,Value = 总结),嵌入后去重存 NanoVectorDB/NetworkX。LearnOpenCV 实测,《公司法》288 页索引耗时 1h,生成 3352 节点 / 4752 边,支持增量:新文档仅更新相关节点。
查询融合:LLM 解析 query 为 low-level(实体关键词)和 high-level(关系关键词),vector 检索 top_k=60(local 实体,global 关系),邻域扩展 + rerank(bge-reranker-v2-m3),hybrid 融合 chunk / 实体 / 关系,总 token ≤30000。GitHub 示例,“独立董事 Section 149” 查询下,local 精确资格列表,hybrid 补全球治理关系,Naive RAG 仅碎片描述。
蒸馏优化:检索上下文经 LLM 浓缩为精炼提示,避免 token 爆炸;cache LLM 响应(kv_store_llm_response_cache.json),重复 prompt 直返。
关键参数:
- LLM:≥32B,32K ctx(如 gpt-4o-mini);llm_model_max_async=4。
- 嵌入:bge-m3/text-embedding-3-large,batch=32,async=16。
- 查询:mode=hybrid,top_k=60,chunk_top_k=20,cosine_threshold=0.2。
- 索引:entity_extract_max_gleaning=1,summary_max_tokens=500。
存储:JsonKV(dev)/PostgreSQL+AGE(prod),Neo4j 图优于 PGGraph。
落地清单:
- 安装:uv pip install lightrag-hku;Ollama llama3.1 + nomic-embed。
- Init:
rag = LightRAG(working_dir="storage", chunk_token_size=1200, embedding_func=EmbeddingFunc(dim=768, func=ollama_embed), llm_model_func=ollama_complete) await rag.initialize_storages() - 索引:rag.insert (texts, file_paths=["doc.pdf"])。
- 查询:
from lightrag import QueryParam res = rag.query("query", QueryParam(mode="hybrid", enable_rerank=True)) - 扩展:Neo4j graph_storage="Neo4JStorage";RAGAS eval;Langfuse trace。
- 运维:TokenTracker 监控;clear_cache () 刷新;delete_by_entity () 删节点。
风险 & 阈值:高负载 max_parallel_insert<10;弱 LLM 增 gleaning=2;OOM 降 async=2,回滚 delete_by_doc_id 重构局部图。
此管道提升长文档精度 50-80%,速度 5x,适配法律 / 科研 RAG。引用:“LightRAG 通过 dual-level 检索融合 graph 与 vector,实现低成本全局理解。”(论文)。
资料来源:
- GitHub README
- arXiv:2410.05779
- learnopencv.com/lightrag
(正文 920 字)