LightRAG 的双路径检索机制是其低延迟 RAG 系统的核心创新,通过 local(实体局部检索)和 global(关系全局检索)两条并行路径,结合知识图谱与向量存储,实现高效召回与生成。传统 RAG 往往因单一向量检索导致延迟高企和全局理解缺失,而 LightRAG 的 hybrid 模式可将端到端延迟降低 60%,特别适用于生产级问答系统。
双路径架构的核心在于索引阶段构建知识图谱(KG):文档分块后,使用 LLM 提取实体与关系,形成节点(实体)和边(关系)的图结构,同时生成向量嵌入存储于 NanoVectorDB 或 PGVector 等。同时检索向量块用于 fallback。查询时,local 路径聚焦高相关实体块,global 路径遍历关系链路,hybrid 融合两者,确保上下文全面且精炼。
证据显示,在 UltraDomain 数据集上,LightRAG hybrid 模式在全面性、多样性和赋能性指标上显著优于 NaiveRAG 和 GraphRAG。例如,在法律领域,LightRAG 整体胜率达 84.8%,而 NaiveRAG 仅 15.2%。“LightRAG 在混合查询中,召回精度提升 2-3 倍,同时 token 消耗控制在 30k 以内。”[1]
生产实施需从初始化入手。核心代码如下:
import asyncio
from lightrag import LightRAG, QueryParam
from lightrag.llm.openai import gpt_4o_mini_complete, openai_embed
from lightrag.utils import setup_logger
setup_logger("lightrag", level="INFO")
WORKING_DIR = "./rag_storage"
async def init_rag():
rag = LightRAG(
working_dir=WORKING_DIR,
embedding_func=openai_embed, # 固定 embedding_dim=1536
llm_model_func=gpt_4o_mini_complete, # 推荐 32B+ 参数模型,context >=32k
chunk_token_size=1200,
chunk_overlap_token_size=100,
graph_storage="Neo4JStorage", # 生产选 Neo4J 或 PGGraphStorage
vector_storage="PGVectorStorage",
llm_model_max_async=4,
embedding_batch_num=32
)
await rag.initialize_storages()
return rag
插入文档:await rag.ainsert(docs, max_parallel_insert=4),控制并发避免 LLM 瓶颈。删除旧文档用 await rag.adelete_by_doc_id("doc_id"),自动重建 KG。
查询参数是延迟优化的关键,QueryParam 配置清单:
| 参数 | 推荐值 | 作用 |
|---|---|---|
| mode | "hybrid" | 双路径融合,延迟最低 |
| top_k | 60 | 实体 / 关系 top 数 |
| chunk_top_k | 20 | 向量块 rerank 后保留 |
| max_entity_tokens | 6000 | 实体上下文预算 |
| max_relation_tokens | 8000 | 关系上下文预算 |
| max_total_tokens | 30000 | 总 token 上限 |
| enable_rerank | True | 用 bge-reranker-v2-m3,提升精度 |
| stream | True | 流式输出减感知延迟 |
例如:result = await rag.aquery("复杂查询", param=QueryParam(mode="hybrid", top_k=60, enable_rerank=True))。在生产中,mix 模式结合 KG 与 naive 向量,适用于混合查询。
部署清单:
-
存储选型:小规模用默认 JsonKV + NanoVector;生产用 PostgreSQL 全栈(KV+Vector+Graph via AGE),或 Neo4J(图优)+ PGVector。配置 env:POSTGRES_URL 等,确保索引持久化。
-
模型要求:LLM >=32B(如 Qwen2.5-32B),context 64k+;Embedding 固定 bge-m3(dim=1024),Reranker bge-reranker-v2-m3。Ollama 支持,但需调 num_ctx=32768。
-
监控与限流:集成 Langfuse 追踪 token/latency,设置 cosine_better_than_threshold=0.2 过滤低质召回。TokenTracker 上下文管理器监控消耗。
-
规模扩展:max_parallel_insert<10;workspace 参数隔离多租户;批量插入用 apipeline_enqueue_documents 异步处理。
-
回滚策略:切换 embedding 前清空向量表;异常时 fallback naive 模式;缓存 enable_llm_cache=True 加速重复查询。
-
性能阈值:目标 p99 延迟 <2s,召回 hit rate>90%。基准测试:Paul Graham 论文集,hybrid 延迟 1.2s vs Naive 3.1s。
风险控制:LLM 提取不准时,手动 edit_entity/merge_entities 修正 KG;大文档分批 insert,避免 OOM。
此架构已在 EMNLP 2025 验证,适用于企业知识库、金融报告等场景。通过精细参数调优,双路径检索确保生产 RAG 稳定低延迟。
资料来源: [1] https://github.com/HKUDS/LightRAG (LightRAG 官方仓库) [2] arXiv:2410.05779 (LightRAG 论文)