Hotdry.
ai-systems

LightRAG 双图索引下的无 LLM 查询融合与蒸馏实践

LightRAG 通过双层图索引实现 LLM-free 查询融合与知识蒸馏,提供低资源高效 RAG,详解参数配置、落地清单与监控要点。

LightRAG 通过双图索引机制,将文档转换为实体节点与关系边的知识图谱,实现无 LLM 的查询融合与高效蒸馏。这种设计避免了传统 RAG 的扁平 chunk 检索局限,支持 local(实体级)和 global(关系级)双层检索融合,显著提升复杂查询的全面性和速度,尤其适用于资源受限场景。

核心观点在于,双图索引下的查询融合无需额外 LLM 调用,仅通过关键词提取与图遍历,即可 “蒸馏” 出精准上下文。传统 RAG 常因查询 - 文档语义错位导致召回低效,而 LightRAG 先用 LLM(索引时一次性)从 chunk 中抽取实体(如 “Scrooge”)与关系(如 “与 Bob Cratchit 相关”),存入图存储(如 NetworkX 或 Neo4j)。查询时,提取 low-level keywords(针对实体,如 “Bob Cratchit”)与 high-level keywords(针对关系,如 “Social themes”),分别检索实体子图与全局关系路径,实现融合。

证据显示,这种 LLM-free 融合在 UltraDomain 数据集上,LightRAG 的 comprehensiveness 胜率达 67.6%(vs NaiveRAG 32.4%)。“LightRAG 在四个数据集上全面优于 baselines,包括 GraphRAG。” 检索融合后,邻接节点扩展进一步 “蒸馏” 高阶相关性,确保上下文连贯,避免噪声。

落地参数配置聚焦 QueryParam 与索引优化,确保低资源部署:

  • chunk_token_size=1200, chunk_overlap_token_size=100:平衡实体完整性与效率,适用于长文档,避免边界丢失。
  • top_k=60 (实体 / 关系), chunk_top_k=20:local 模式下实体 top_k=60,global 关系 top_k=60;混合模式下 chunk_top_k=20 经 rerank 精炼。
  • mode=hybrid:默认融合 local(10 实体 + 127 关系)与 global(12 实体 + 10 关系),max_entity_tokens=6000, max_relation_tokens=8000, max_total_tokens=30000 控制预算。
  • embedding_batch_num=32, llm_model_max_async=4:批量并行,降低延迟;enable_llm_cache=True 复用提取结果。
  • rerank_model_func(如 bge-reranker-v2-m3):mix 模式下提升 20% 精度,cosine_better_than_threshold=0.2。

部署清单(5 步,uv 推荐):

  1. 环境:uv sync --extra api;配置 .env(OPENAI_API_KEY, embedding_func=openai_embed)。
  2. 初始化:rag = LightRAG(working_dir="./rag_storage", embedding_func=openai_embed, llm_model_func=gpt_4o_mini_complete);await rag.initialize_storages()。
  3. 索引:rag.insert (["doc1", "doc2"], max_parallel_insert=4);支持增量,delete_by_doc_id 回滚。
  4. 查询:rag.aquery ("查询", param=QueryParam (mode="hybrid", enable_rerank=True, stream=True));conversation_history 保多轮。
  5. 生产:lightrag-server;Neo4j/PostgreSQL 存储,Langfuse 追踪。

监控要点与阈值:

指标 阈值 异常处理
检索延迟 <500ms 调低 top_k 或异步并发
Token 预算超 max_total_tokens=30000 压缩 summary_context_size=10000
召回率 RAGAS context_precision >0.85 优化 embedding(如 bge-m3),阈值 0.2
缓存命中 >70% 启用 embedding_cache_config={"enabled":True, "similarity_threshold":0.95}

风险控制:实体提取依赖 LLM(推荐 ≥32B 参数,context ≥32K),噪声用 entity_extract_max_gleaning=1 迭代;切换 embedding 清 data 目录。

实际案例:在 Dickens 小说索引上,hybrid 模式融合 “Scrooge 主题” 实体与 “Victorian era 社会关系”,生成全面分析,优于 naive 模式 2 倍胜率。低资源下,用 Ollama + nomic-embed-text(dim=768),6GB GPU 处理 197 实体,仅需 num_ctx=32768。

扩展:自定义 KG insert_custom_kg;多模态 via RAG-Anything;评估用 RAGAS。

资料来源:

查看归档