LightRAG 作为一款轻量级 RAG 框架,其核心创新在于双图(实体图与关系图)检索机制,通过 query 融合与动态 chunk 阈值选择,实现无需复杂索引或重训练的高效检索。这种设计特别适用于资源受限环境,能在保持高召回率的同时降低 LLM 调用开销。
首先,chunking 是 LightRAG 索引构建的基础,默认采用 token-based 分块策略:chunk_token_size=1200,chunk_overlap_token_size=100。这种固定阈值确保实体不被边界切分,但实际场景中文档异质性强,需动态调整阈值以优化语义完整性。例如,对于长尾文档,可自定义 chunking_func 函数,按语义相似度阈值(threshold=0.3)或窗口大小(window_size=5)自适应切分,避免相似度低于阈值的块引入噪声。根据 GitHub README,“chunk_token_size 控制每个 chunk 的最大 token 数,重叠确保上下文连续”。
动态阈值选择的落地参数包括:最小块阈值 min_chunk_tokens=200,避免碎片;最大块阈值 max_chunk_tokens=1500,平衡上下文与效率;相似度阈值 cosine_threshold=0.25,用于 rerank 后过滤。监控要点:chunk 分布直方图(理想 80% 块在 800-1200 token),SimilarityChunkRatio >0.85。回滚策略:若平均召回率 <0.7,降至默认固定阈值。
其次,query fusion 是 LightRAG 双图检索的核心,支持 local(实体焦点)、global(关系焦点)和 hybrid(融合)模式。local 模式检索 top_k=60 个实体及其邻域关系,global 检索关系边,hybrid 融合两者上下文,总 token 预算 max_total_tokens=30000(实体 6000、关系 8000、chunk 12000)。融合机制:提取低阶(ll_keywords,如具体实体)和高阶(hl_keywords,如主题)关键词,先向量检索,再图遍历聚合邻近节点,实现多跳推理。
QueryParam 参数清单:mode="hybrid"(默认融合);enable_rerank=True,使用 bge-reranker-v2-m3,提升 chunk_top_k=20 的精度;cosine_better_than_threshold=0.2,过滤低质结果。证据显示,hybrid 模式在 UltraDomain 数据集上胜率达 60-80%,优于 NaiveRAG。“LightRAG 的双层检索在法律数据集上整体胜率 84.8%”(arXiv:2410.05779)。
工程化落地:初始化 LightRAG 时注入 embedding_func(如 bge-m3)和 llm_model_func(如 gpt-4o-mini),设置 llm_model_max_async=4 并发。增量插入支持 apipeline_enqueue_documents,避免全量重建。低资源优化:NanoVectorDBStorage + NetworkXStorage,总内存 <2GB,支持 10万文档。风险控制:token 超支监控(TokenTracker),若 >80% 预算则 top_k=40;实体提取失败率 >5% 时 entity_extract_max_gleaning=2 重试。
监控与调优清单:
- 检索指标:召回率(RAGAS context_precision >0.85)、多样性(diversity >0.7)。
- 参数阈值:chunk 相似度 <0.2 报警;融合后上下文冗余 >20% 减 chunk_top_k。
- A/B 测试:对比 fixed vs dynamic chunk,hybrid vs local。
- 回滚:fallback 到 naive 模式,日志 Langfuse 追踪。
实际部署中,对于中药知识库等垂直领域,自定义 entity_types=["药材","症状","功效"],language="Simplified Chinese",融合后准确率提升 25%。LightRAG 无需重训练,纯参数驱动,适用于边缘设备。
来源:HKUDS/LightRAG GitHub(2025.11 更新),arXiv:2410.05779。