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 并行加速索引。
落地清单:
- 初始化:
LightRAG(working_dir="./rag", embedding_func=openai_embed, llm_model_func=gpt_4o_mini_complete)。 - 索引:
rag.insert(docs),监控 LLM cache hit rate >80%。 - 存储切换:
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 论文。