Hotdry.
ai-systems

LightRAG 本地-全局图查询融合机制

剖析 LightRAG 双本地-全局图索引与查询融合核心,实现简单快速 RAG 的工程参数与监控要点。

LightRAG 通过本地(local)和全局(global)双图索引与查询融合机制,解决了传统 RAG 在复杂语义检索中的上下文割裂问题,实现无需重 embedding 的高效知识图谱增强生成。

传统向量 RAG 仅依赖 chunk 相似度,难以捕捉跨文档实体关系,导致多跳推理失败。LightRAG 创新双层索引:在索引阶段,将文档分块后用 LLM 提取实体(节点)和关系(边),构建知识图谱,同时嵌入实体 / 关系 /chunk 到向量存储。Local 索引聚焦实体描述及其一跳邻居,提供细节上下文;global 索引强调关系三元组及其关联实体,揭示主题网络。“LightRAG 的知识图谱可增量更新,避免 GraphRAG 全量重建。” 融合蒸馏管道简化社区聚类,仅保留核心实体 - 关系提取,索引速度提升数倍。

查询融合是 LightRAG 核心:在 hybrid/mix 模式下,先并行执行 local(top_k 实体检索)和 global(top_k 关系检索),再合并排序上下文。检索结果包括实体描述、关系描述、相关 chunk 和图邻居,按 cosine 阈值(默认 0.2)和权重过滤。统一 token 控制(max_entity_tokens=6000、max_relation_tokens=8000、max_total_tokens=30000)确保 LLM 输入高效,避免超限。Reranker(如 bge-reranker-v2-m3)可选启用,提升 chunk 重排序精度。

落地参数清单:

  • QueryParam 配置:mode="hybrid"(平衡细节 / 全局);top_k=60(实体 / 关系数);chunk_top_k=20(初始 chunk);enable_rerank=True。
  • 索引参数:chunk_token_size=1200、chunk_overlap=100;embedding_batch_num=32、llm_model_max_async=4;entity_extract_max_gleaning=1(迭代提取)。
  • 存储选择:开发用 NanoVectorDB/NetworkX;生产 Neo4J(图)+ PGVector(向量)+ Redis(KV),workspace 隔离多租户。
  • 模型推荐:LLM ≥32B 参数、上下文 ≥32K(如 gpt-4o);Embedding bge-m3;Reranker bge-reranker-v2-m3。
  • 监控点:TokenTracker 追踪 LLM 消耗;Langfuse 集成 tracing;RAGAS 评估 context_precision/recall;图规模(节点 / 边 ≤10W/50W)。 部署流程:初始化 rag=LightRAG (working_dir="./data", embedding_func=openai_embed, llm_model_func=gpt_4o_mini_complete);await rag.initialize_storages ();批量 ainsert 文档;查询 rag.aquery (question, param=QueryParam (mode="mix"))。

风险与回滚:实体提取噪声高时,fallback naive 模式;图过密降采样 node2vec_params(walks=10);监控 cosine_better_than_threshold=0.2,若召回低调至 0.1。生产回滚:enable_llm_cache=True 复用提示;定期 aclear_cache (modes=["local"]) 清缓存。

LightRAG local-global 融合参数化设计,确保 RAG 生产级可靠,适用于企业知识库 / 多模态 QA。

资料来源

查看归档