LightRAG 通过双图结构(实体节点 + 关系边)重塑 RAG 检索,实现低参数低延迟的高效知识整合。其核心在于图构建中的边精炼(distillation-like 合并与描述生成)、双层检索的融合排序,避免传统 RAG 的扁平向量局限,同时仅需少量 LLM 调用(检索 <100 tokens),远低于 GraphRAG 的高开销。
双图构建是 LightRAG 低延迟基础。首先将文档分块(chunk_token_size=1200, overlap=100),用 LLM(如 gpt-4o-mini)提取实体/关系(R(·) 函数)。证据:GitHub README 显示,每块仅 1 次 LLM 调用提取节点/边,避免全文档重算。随后 P(·) 函数用 LLM 生成 KV 对:节点用实体名为 key,值是总结描述(summary_max_tokens=500);边生成多 key,包括低层(直接关系)和高层主题(global keys)。D(·) 去重合并相似实体/边,减少图规模。参数落地:entity_extract_max_gleaning=1(单轮提取防冗余),node2vec_params={"dimensions":1536, "num_walks":10}(可选节点嵌入)。风险:LLM 质量低导致边提取噪声,阈值 cosine_better_than_threshold=0.2 过滤低质向量。
边精炼(distillation)是融合关键。LightRAG 不直接存原始边,而是 LLM 蒸馏为精炼描述:边描述浓缩多源上下文(summary_context_size=10000),权重 weight=1.0~3.0(手动 edit_relation 调优)。证据:查询流中,边向量存 vector_storage(如 NanoVectorDB),支持 PGVector/Milvus。精炼后边不只连节点,还捕获高阶关联(如“observe”边链接 beekeeper-bees,扩展到 agriculture 主题)。工程清单:1) 提取后 audit 边质量,手动 merge_entities(["AI","Artificial Intelligence"],"AI Tech", merge_strategy={"description":"concatenate"});2) 存储 graph_storage="Neo4JStorage"(生产首选,优于 PGGraph);3) 监控节点度(node_degree),>50 触发子图采样。
融合检索实现低延迟排序。双层:local 模式用低层 keys 检索实体(top_k=60),global 用高层 keys 检索边(chunk_top_k=20)。Hybrid/mix 融合:向量召回实体/边 → 图 1-hop 邻居扩展 → 关联 chunk 检索 → rerank(bge-reranker-v2-m3, enable_rerank=True)。排序融合:max_entity_tokens=6000, max_relation_tokens=8000, max_total_tokens=30000 限上下文。证据:QueryParam 控制,mix 模式默认(rerank 后)。参数:embedding_batch_num=32(并行加速),llm_model_max_async=4。落地:QueryParam(mode="mix", enable_rerank=True, top_k=40) 平衡精度/速度;embedding_cache_config={"enabled":True, "similarity_threshold":0.95} 复用查询。
监控与回滚:用 TokenTracker 追踪消耗(< GraphRAG 99%),Langfuse 集成 observability(pip install [observability])。删除 adelete_by_entity("outdated") 联动清理。风险:图过密导致 OOM,回滚 max_parallel_insert=2。
优化清单:
- 初始化:rag = LightRAG(working_dir="./rag_storage", embedding_func=openai_embed(1536), llm_model_func=gpt_4o_mini_complete, graph_storage="Neo4JStorage");await rag.initialize_storages()。
- 插入:rag.insert(docs, max_parallel_insert=4);增量无需重建。
- 查询:rag.aquery(q, QueryParam(mode="hybrid", top_k=60, chunk_top_k=20))。
- 调优:rerank_model_func=jina_rerank;top_k=40 线上默认。
- 评估:RAGAS 集成,context_precision >0.9。
资料来源:HKUDS/LightRAG GitHub README 与流程图;arXiv:2410.05779。