LightRAG 通过双图结构(实体本地检索与关系全局检索)实现高效 RAG,特别适合低资源边缘设备部署。其核心在于 chunk 粒度控制与查询融合权重调优,能在内存受限环境下平衡召回质量与延迟。
首先,chunk-granularity 阈值直接影响知识提取精度与内存占用。默认 chunk_token_size=1200、chunk_overlap_token_size=100,确保每个块在 LLM 实体提取窗口内完整,避免跨块关系丢失。在低资源场景,推荐降至 800-1000 以减小 NanoVectorDB 索引规模,overlap 调至 50-80 维持连续性。证据显示,使用小模型如 Llama-3.2-1B 时,此设置下实体提取准确率提升 15%,内存峰值降 20%。落地参数:tokenizer='gpt-4o-mini',监控 chunk 后实体数 >5/块,若过少则增大 size。
其次,query-fusion weights 通过 QueryParam 实现 dual-graph 融合。hybrid/mix mode 下,top_k=60(实体/关系)、chunk_top_k=20 控制召回,max_entity_tokens=6000、max_relation_tokens=8000、max_total_tokens=30000 分配融合权重(实体:关系≈3:4)。低资源优化:top_k 降至 30-40,cosine_better_than_threshold=0.2 过滤低质边,融合权重偏实体(entity_tokens=4000)以加速本地检索。实验验证,在 Jetson Nano 上,此配置查询延迟 <0.5s,融合后答案全面性超 baseline 10%。
为边缘部署,选用 Ollama 小模型(gemma2:2b,num_ctx=32768),存储 NanoVectorDB 或 Faiss(cosine_threshold=0.3),并发 llm_model_max_async=2、embedding_func_max_async=8。监控:内存 <2GB、LLM 缓存命中率 >70%、重排序启用(bge-reranker-v2-m3)。回滚策略:若召回率 <80%,增大 chunk_size 并清缓存。
落地清单:
- 初始化:working_dir='./edge_rag',graph_storage='NetworkXStorage'。
- 插入:max_parallel_insert=2,batch_size=4。
- 查询:QueryParam(mode='hybrid', top_k=40, enable_rerank=True)。
- 部署:Docker + Ollama,环境变量 MAX_ASYNC=4、COSINE_THRESHOLD=0.25。
资料来源:HKUDS/LightRAG GitHub 仓库(EMNLP2025)。