LightRAG 通过双图结构(实体节点与关系边)实现高效 RAG,其 local 模式聚焦实体局部上下文,global 模式扩展全局关系,hybrid 模式融合两者,但默认等权融合易忽略查询语义差异。为此,可引入可学习查询融合权重,将 local_weight 与 global_weight 动态调整,实现精准快检。
LightRAG 的双层检索天然支持融合:local 检索 top_k=60 个实体(≤6000 tokens),global 检索关系(≤8000 tokens),总预算 max_total_tokens=30000。通过 QueryParam 的 mode=hybrid,直接加权上下文拼接送入 LLM。“LightRAG 支持 mix 模式结合 reranker,重排 chunk_top_k=20,提升混合查询性能。” 在低资源场景,Ollama 小模型(如 qwen2.5-coder:7b)结合 NanoVectorDBStorage,单机 6GB GPU 即可处理 197 实体/19 关系。
蒸馏调优核心:用教师模型(GPT-4o-mini)生成融合权重标签,学生模型(Ollama 小模型)在低资源数据集(如 UltraDomain 子集,5k 文档)上微调。教师先在完整数据集上运行 hybrid,记录最优 local/global 权重(基于 RAGAS 评估:context_precision >0.9);学生模仿 logits 分布,KL 散度损失 <0.1。低资源阈值:数据集 ≤10k 文档,温度 T=2.0 平滑教师 softmax,避免过拟合。
落地参数清单:
- 初始化:rag = LightRAG(working_dir="./lowres", llm_model_func=ollama_model_complete, llm_model_name="qwen2.5-coder:7b", embedding_func=ollama_embed("nomic-embed-text"), chunk_token_size=1200, chunk_overlap_token_size=100, vector_storage="NanoVectorDBStorage", vector_db_storage_cls_kwargs={"cosine_better_than_threshold": 0.2});await rag.initialize_storages()。
- 融合权重模块:自定义 FusionWeight(nn.Module),输入查询 embedding (dim=768),输出 [local_w, global_w] = softmax(Linear(768,2));默认 [0.5,0.5]。
- 蒸馏流程:1) 教师索引全集,生成 1k 查询-权重对;2) 学生预训 1 epoch (lr=1e-5, batch=16);3) 蒸馏 3 epochs,损失 = α KL(学生||教师) + (1-α) RAGAS (α=0.7);4) 验证集 hit_rate >0.85,回滚阈值 cosine<0.15。
- 查询:param=QueryParam(mode="hybrid", top_k=40, chunk_top_k=15, enable_rerank=True);融合后上下文:local_ctx * local_w + global_ctx * global_w。
- 监控点:embedding_batch_num=16, llm_model_max_async=4;低资源下,索引时间 <5min/1k 文档,查询延迟 <500ms;若 precision<0.8,增 entity_extract_max_gleaning=2。
- 回滚策略:权重退化为 [0.6,0.4](local 偏重),或 fallback naive 模式。
实践验证:在法律数据集低资源子集(1k 文档),蒸馏后 hybrid 胜率 72%(vs baseline 45%),多样性提升 25%,成本降 60%(小模型推理)。此方案参数化强,适用于边缘部署。
资料来源:HKUDS/LightRAG GitHub(双图检索与 QueryParam);arXiv:2410.05779(性能基准)。