Hotdry.
ai-systems

LightRAG 双图查询融合与知识蒸馏:高效 RAG 工程实践

LightRAG 通过双本地/全球图索引、查询融合机制与知识蒸馏优化,实现大规模文档的高效检索与生成,提供生产参数配置与监控要点。

LightRAG 是 HKUDS 团队开源的 RAG 框架(EMNLP 2025 论文),针对传统 RAG 在复杂关系捕捉上的不足,引入双图索引(local/global)和查询融合机制,实现简单高效的知识检索与生成。其核心创新在于将知识图谱与向量检索无缝结合,支持 hybrid/mix 模式融合 local(实体中心)和 global(关系中心)检索,同时通过 LLM 驱动的实体 / 关系描述蒸馏,提升小模型在 RAG pipeline 中的性能。相较 GraphRAG,该框架避免了社区遍历的高开销,仅需少量 token 和单次 API 调用即可完成检索,适用于大规模文档场景。

双本地 / 全球图索引:结构化知识基础

LightRAG 的索引过程首先将文档切分成 chunk(默认 chunk_token_size=1200,overlap=100),然后使用 LLM(如 gpt-4o-mini)提取实体(节点)和关系(边)。实体类型限定为 person/technology 等,避免噪声;关系抽取后生成键值对(Key: 关键词,Value: 描述),并通过 summary_context_size=10000 限制上下文 token,summary_max_tokens=500 精炼描述。

关键区别在于双图构建:

  • Local 图:以实体为中心,邻接节点聚焦上下文细节,支持精确事实查询。
  • Global 图:以关系为中心,捕捉跨文档依赖,支持全局总结。

去重合并使用 LLM 融合重复实体描述,避免图冗余。存储支持 NetworkX(默认,轻量)、Neo4j(生产级图查询)或 PG-AGE。证据显示,在 UltraDomain 数据集上,LightRAG 的图索引在 comprehensiveness 上胜 NaiveRAG 达 67.6%。“LightRAG 的知识图可以增量更新,避免 GraphRAG 全重建。” 实际参数:entity_extract_max_gleaning=1(单轮提取,避免历史消息膨胀);embedding_batch_num=32,llm_model_max_async=4 并行加速索引。

落地清单:

  1. 初始化:LightRAG(working_dir="./rag", embedding_func=openai_embed, llm_model_func=gpt_4o_mini_complete)
  2. 索引:rag.insert(docs),监控 LLM cache hit rate >80%。
  3. 存储切换:graph_storage="Neo4JStorage",URI / 凭证 via .env。

查询融合:Local/Global 双层检索

查询时,LightRAG 先用 LLM 提取 low-level(具体关键词)和 high-level(抽象关键词),然后并行匹配:

  • Local 模式:top_k=60 实体检索 + chunk_top_k=20 向量 chunk,聚焦细节。
  • Global 模式:top_k=60 关系检索,构建全局视图。
  • Hybrid/Mix 融合:结合实体 / 关系 / 向量结果,max_entity_tokens=6000,max_relation_tokens=8000,max_total_tokens=30000 统一 token 预算。Reranker(如 bge-reranker-v2-m3)默认启用,重排 chunk,提升 precision。

融合机制通过邻接节点扩展(vector_db_storage_cls_kwargs={"cosine_better_than_threshold":0.2}),自动拉取相关上下文,避免孤岛。Mix 模式集成 KG + 向量,优于纯 global 在多样性上 67.6%。参数调优:conversation_history 保留多轮上下文;enable_rerank=True,仅配置 rerank_model_func 时激活。

监控要点:

  • Latency:检索 <100ms@10k docs(Ollama 支持)。
  • Token 预算:TokenTracker 追踪,目标 <30k/query。
  • 回滚:若融合失败,fallback "naive" 模式。

知识蒸馏:Pipeline 优化与小模型适配

LightRAG 通过 LLM 蒸馏实体 / 关系描述,实现 “知识压缩”:教师模型(大 LLM)生成详细 KV,学生模型(小 LLM 如 Qwen2-1B)继承 via cache(enable_llm_cache=True)。新增 embedding_cache_config(similarity_threshold=0.95)进一步蒸馏相似查询。虽非传统 KD,但此 pipeline 模拟蒸馏,提升小模型 RAG 性能。

工程参数:

  • LLM 选型:索引用非推理模型(>32B,ctx>32k);查询用强模型。
  • Distillation 阈值:node2vec_params(dims=1536, walks=10)对齐图嵌入。
  • 部署:Docker compose,uv pip install "lightrag-hku [api]" 启动 Server,支持 Ollama 兼容。

风险:Embedding 模型变更需清向量表;动态数据用 apipeline_enqueue_documents 增量。

参数 默认 生产推荐 作用
top_k 60 40-80 实体 / 关系召回
chunk_top_k 20 10-30 文本重排
cosine_threshold 0.2 0.3 向量过滤
max_async 4/16 GPU:8/32 并行加速

回滚策略:若融合精度降 <0.8(RAGAS 评估),禁用 mix 切 hybrid;监控 Langfuse trace。

来源:HKUDS/LightRAG GitHub(primary),arXiv:2410.05779 论文。

查看归档