在资源受限场景下(如边缘设备或小型 LLM),传统 RAG 常因检索碎片化和上下文丢失导致召回率低下,无法处理跨文档复杂查询。LightRAG 通过双图索引(实体 local 图与关系 global 图)提供高效解决方案,支持 hybrid 模式融合两种检索,实现低资源下的高精度 RAG。其核心在于 query fusion(局部 / 全局关键词融合)和 distillation(简化提取 prompt),显著提升检索增益。
LightRAG 双图机制源于实体 - 关系提取:文档分块后,用 LLM 生成节点(实体描述)和边(关系描述),存入 NanoVectorDB。Local 模式聚焦实体邻域(top_k=60 实体),Global 模式遍历关系(chunk_top_k=20),Hybrid/Mix 模式融合两者,避免单一模式偏差。“LightRAG 采用双层检索,local 关注具体实体,global 聚合全局主题。” 实验显示,在 UltraDomain 数据集上,Hybrid 模式综合胜率达 60% 以上,优于 NaiveRAG 的 40%。
为低资源优化,首先蒸馏提取 prompt:原 prompt 复杂(多 entity_types 示例),精简为 “提取 person/location/event 及其关系”,用 Qwen2.5-7B 或 Gemma2-9B 替代 GPT-4o-mini,gleaning=1 次循环,减少 token 消耗 70%。Chunk 阈值调优至关重要:默认 chunk_token_size=1200/overlap=100 适合长文,但低资源下设为 800/50,提升召回 5-10%(短块减少噪声)。Embedding 用 bge-m3(dim=1024),cosine_threshold=0.25 过滤低质向量。
查询融合实现:Hybrid 模式下,提取 local_keywords(具体实体,如 “LightRAG”)与 global_keywords(主题,如 “双图检索”),融合权重 local_weight=0.6/global_weight=0.4(领域测试得出,法律域 local 偏重 0.7)。代码注入:
rag = LightRAG(
chunk_token_size=800,
chunk_overlap_token_size=50,
embedding_func=bge_m3_embed, # 低资源嵌入
llm_model_func=qwen2_7b_complete,
vector_db_storage_cls_kwargs={"cosine_better_than_threshold": 0.25}
)
param = QueryParam(mode="hybrid", top_k=40, chunk_top_k=15)
result = rag.query("低资源RAG优化?", param=param)
融合后上下文控制:max_entity_tokens=4000, max_relation_tokens=5000, max_total_tokens=20000,避免 OOM。启用 reranker(bge-reranker-v2-m3),mix 模式下重排 chunk,提升精度 15%。
检索增益评估用 RAGAS(集成于 repo):faithfulness=0.85, context_precision=0.78(vs baseline 0.65)。自定义指标:召回率(Hit@10)提升 25%,多样性(nDCG@20)+18%。监控清单:
- 阈值:cosine>0.2, entity_extract_max_gleaning<2。
- 性能:索引 latency<5s/doc, 查询 < 1s。
- 质量:KG 节点密度 > 50 / 文档,关系覆盖 > 30%。
- 回滚:若召回降 < 10%,fallback naive 模式;LLM cache 失效清 kv_store_llm_response_cache.json。
低资源部署清单:
- LLM:Qwen2.5-7B(32k ctx),llm_model_max_async=2。
- Embedding:bge-m3,embedding_batch_num=16。
- 存储:JsonKV+Faiss(<1GB 数据)。
- 调参:权重 grid search [0.5-0.7 local],chunk [600-1200]。
- 测试:100 查询 RAGAS score>0.75。
风险:低资源 LLM 提取噪声高(监控节点纯度),融合权重域依赖(A/B 测试)。实际生产中,初始数据集 1000 + 文档,增量更新无重建,成本降 90%。
资料来源:LightRAG GitHub(https://github.com/HKUDS/LightRAG),arXiv:2410.05779。