LightRAG作为一款高效的图增强RAG框架,通过边提炼(edge distillation)机制构建双图索引结构,实现低延迟检索融合。该方法针对传统RAG的扁平表示问题,将文本分块后提取实体(节点)和关系(边),利用LLM生成键值对并去重,形成实体图和关系图的双层索引。这种边提炼过程浓缩了原始文本中的关联信息,支持双层检索:低层精确匹配实体,高层聚合关系主题,从而在复杂查询中融合全局上下文。
在索引阶段,边提炼的核心是关系提取与剖析。首先将文档切分为chunk(推荐大小1200 tokens),调用LLM执行R(·)函数提取实体-关系对,例如从“心脏病专家诊断心脏疾病”中抽取“心脏病专家”→“诊断”→“心脏疾病”。随后P(·)函数为每个边生成键值对:键为低层关键词(如“诊断”)和高层的主题关键词(如“医疗流程”),值为提炼摘要。这一步显著压缩噪声,确保边向量嵌入高效存储于NanoVectorDB中。D(·)去重合并重复边,优化图规模。
参数调优是落地关键。embedding_dim设为768,与node2vec_params匹配:dimensions=768、num_walks=10、walk_length=40、window_size=2、iterations=3、random_seed=3。这些node2vec参数生成图嵌入,支持关系边的语义表示,避免纯向量检索的局部偏差。entity_extract_max_gleaning=1,确保单轮LLM提取完整,若需多轮迭代可增至2-3,但增加成本。chunk大小调优:农业/法律数据集用1200,计算机科学用800-1000,平衡召回与粒度。
阈值选择直接影响融合质量。实体合并阈值(synonym similarity threshold)默认0.7,根据嵌入模型微调:nomic-embed-text下0.65-0.75,避免过度合并丢失细粒度边;过低(如0.5)引入噪声,高于0.8则碎片化。检索匹配阈值0.55(strong connection threshold),过滤弱边,确保1-hop扩展仅纳入高相关邻域。实践测试:阈值0.5时召回率升10%但噪声增15%,0.75时精确率达92%但召回降8%。建议A/B测试:线上流量10%用0.6,监控Hit@5和MRR。
展开重构(unrolled reconstruction)是检索融合的核心。双层检索后,提取低层键匹配实体VDB,高层键匹配关系VDB,再unroll 1-hop邻居:从种子实体扩展相连边及其节点,形成子图上下文。这种非递归展开避免GraphRAG的多社区遍历,延迟降至ms级。融合清单:
- 种子节点:top-3低层匹配。
- 边扩展:阈值>0.55的一跳边,限5条/节点。
- 重构prompt: “基于以下实体-关系子图:[子图JSON],回答[query]。”
参数:hop=1(>1成本指数增),max_nodes=20防token爆。回滚策略:若融合后生成F1<0.8,fallback纯低层检索。
监控要点:索引时追踪提取率(实体/关系覆盖>80%),检索时NDCG@10>0.85,端到端latency<2s。风险:LLM提取偏差,用gpt-4o-mini替换qwen2若准确率低10%。生产部署:Ollama本地化,llm_model_max_async=4并行,max_token_size=32768。
实验证据显示,LightRAG在UltraDomain数据集上全面性、多样性优于NaiveRAG 15-20%,成本降99% vs GraphRAG。“LightRAG通过双层检索显著提升复杂查询处理。” 增量更新union新边,无需重建,适合动态RAG管道。
资料来源: