Hotdry.
ai-systems

LightRAG 双图 RAG 实现:边提炼、分块阈值与查询融合工程参数

LightRAG 通过双层图检索(实体+关系)实现低资源高效 RAG,详解边提炼参数、分块阈值设置与 hybrid 查询融合策略,优于稠密基线。

LightRAG 的双图 RAG 架构通过实体向量库(entity_vdb)和关系向量库(relationships_vdb)实现低资源快速检索,显著优于纯稠密向量基线,尤其在复杂查询场景下提升召回率 20-60%。传统稠密 RAG 仅依赖 chunk 相似度,易忽略跨文档实体关系,导致全局理解缺失;LightRAG 则构建知识图(NetworkX 或 Neo4j),将实体节点和关系边双向嵌入,实现 local(实体中心)和 global(关系中心)双层检索,最终 hybrid 融合输出上下文。该设计在低资源设备上运行顺畅,支持 NanoVectorDB 等轻量存储,检索延迟 <100ms。

核心在于边提炼(edge distillation)过程:LLM 从 chunk 提取关系三元组(source_entity, target_entity, description),并生成 keywords 和 weight。通过 _merge_edges_then_upsert 合并同边,调用 LLM 摘要(summary_max_tokens=500, summary_context_size=10000),避免冗长描述膨胀图规模。证据显示,在 UltraDomain 数据集上,LightRAG 的 global 模式仅用 10 关系即可覆盖主题,而 naive RAG 需 60 chunk。“LightRAG 通过边提炼压缩知识,global 查询仅用 11 实体、10 关系和 3 chunk。” 实际部署中,entity_extract_max_gleaning=1 控制循环,避免过度提取;llm_model_max_async=4 并行加速。风险:小 LLM(如 Qwen3-30B)提取准确率低,建议索引用 32B+ 模型,查询用更强模型。

分块阈值(chunk thresholding)优化召回精度:默认 chunk_token_size=1200、chunk_overlap_token_size=100,使用 Tiktoken(gpt-4o-mini)分块,确保实体不跨界丢失。向量检索设 cosine_better_than_threshold=0.2,过滤低质匹配;chunk_top_k=20 初始检索后 rerank(BAAI/bge-reranker-v2-m3)。参数清单:

  • 粗分块:1200 token + 100 overlap,tokenizer=tiktoken(gpt-4o-mini)。
  • 阈值:cosine >0.2,top_k=60(local 实体数,global 关系数)。
  • Rerank:enable_rerank=True,mix 模式默认。 监控点:embedding_batch_num=32、embedding_func_max_async=16,避免 OOM;若召回低,调 chunk_top_k=30,回滚至 naive 模式测试。

查询融合(query fusion)在 hybrid/mix 模式实现:先 LLM 提取 ll_keywords(低阶实体)和 hl_keywords(高阶主题),local 检索实体扩展一跳邻居(_find_most_related_text_unit_from_entities),global 从关系扩展实体(_find_most_related_entities_from_relationships),融合 entities_context + relations_context + text_units_context,总 max_total_tokens=30000。QueryParam 配置:

param = QueryParam(
    mode="hybrid",  # 或 "mix"(rerank 后首选)
    top_k=60, chunk_top_k=20,
    max_entity_tokens=6000, max_relation_tokens=8000,
    enable_rerank=True
)

融合后上下文 token 预算:实体 20%、关系 27%、chunk 53%。实验验证:在 Legal 数据集,hybrid 胜 naive 83.6% comprehensiveness。落地策略:conversation_history 注入多轮上下文;embedding_cache_config={"similarity_threshold":0.95} 缓存相似查询。回滚:若融合 hallucination 高,降 top_k=30,仅用 local。

工程参数清单:

参数 默认 低资源调优 监控阈值
chunk_token_size 1200 800 >1500 OOM
cosine_threshold 0.2 0.3 <0.1 噪声高
top_k 60 40 召回 @10 >0.8
llm_model_max_async 4 2 GPU 利用 80%
max_total_tokens 30000 16000 上下文溢出率 <5%

部署监控:Langfuse 追踪 token/latency;RAGAS 评估 context_precision。低资源场景:Ollama + nomic-embed-text(dim=768),num_ctx=32768。

资料来源:HKUDS/LightRAG GitHub README;arXiv:2410.05779。

查看归档