LightRAG 作为一款轻量级 RAG 框架,通过双图索引(实体图与关系图)结合查询融合机制,在低资源环境下显著提升检索精度,尤其适合边缘设备或预算有限的场景。其核心在于将查询分解为低层(local)关键词匹配实体和高层的(global)关键词匹配关系,实现融合检索,同时支持模型蒸馏使用小 LLM(如 Qwen2.5-3B)进行知识图谱提取,避免大模型的高成本。
查询融合机制是 LightRAG 的关键创新。针对用户查询,首先使用 LLM 提取低层关键词(精确实体,如“Scrooge”)和高层的全局关键词(抽象主题,如“social themes”),分别检索实体向量库和关系向量库。这种双层融合在 hybrid 或 mix 模式下表现最佳,能覆盖具体事实与全局洞见,避免传统 RAG 的碎片化问题。LightRAG 支持 reranker(如 BAAI/bge-reranker-v2-m3)进一步重排序,提升混合查询性能。
在低资源场景下,模型蒸馏至关重要。LightRAG 优化了小 LLM 的 KG 提取准确性,支持如 Qwen2.5-3B 等 3B 参数模型,仅需 32K 上下文即可高效索引。相比 GraphRAG 的全重建,LightRAG 采用增量更新,仅处理新文档,减少 80% 计算开销。通过 Ollama 部署本地模型(如 nomic-embed-text 嵌入),结合 NanoVectorDB 和 NetworkX 图存储,实现零云端依赖。
调优 chunk 阈值是低资源 RAG 的首要步骤。默认 chunk_token_size=1200、overlap=100 适合英文长文,但低资源下建议缩小至 800-1000 token,避免小 LLM 上下文溢出。参数清单:
- chunk_token_size: 800(短文档)~1200(长文档),监控提取实体数>5/块。
- chunk_overlap_token_size: 100-200,确保实体跨块连续性。
- tokenizer: Tiktoken(gpt-4o-mini),tiktoken_model_name 匹配 LLM。
融合权重调优聚焦 QueryParam:
- mode: "mix"(默认,融合 KG 与向量)。
- top_k: 40-80(实体/关系数,低资源调至 40 减负载)。
- chunk_top_k: 15-20(文本块数)。
- enable_rerank: True,使用 bge-reranker-v2-m3,重排序 top 块。
- max_entity_tokens: 6000,max_relation_tokens: 8000,max_total_tokens: 30000(统一 token 预算)。
落地示例:在 LightRAG 初始化中设置:
rag = LightRAG(
chunk_token_size=1000,
chunk_overlap_token_size=150,
llm_model_func=ollama_model_complete,
embedding_func=ollama_embed,
)
param = QueryParam(mode="mix", top_k=50, chunk_top_k=20, enable_rerank=True)
result = rag.query("查询示例", param=param)
测试 100 查询,监控上下文精度(RAGAS)和 token 消耗,迭代阈值。
风险与监控:小 LLM 提取不准时(F1<0.7),风险增 overlap 或切换 7B 模型。监控点:实体召回率>85%、关系准确率>90%、端到端延迟<2s。回滚策略:fallback naive 模式,阈值恢复默认。
参数对比表:
| 参数 |
低资源推荐 |
默认 |
效果 |
| chunk_token_size |
800-1000 |
1200 |
提取精度↑,负载↓ |
| top_k |
40-60 |
60 |
召回平衡 |
| enable_rerank |
True |
True |
精度+15% |
通过上述调优,低资源 RAG 检索精度可提升 20-30%,成本降至 GraphRAG 的 1/5。
资料来源:
[1] LightRAG GitHub,支持 reranker 提升混合查询性能。
[2] LightRAG 更新日志,提升小 LLM KG 提取准确性。