LightRAG 的双本地 - 全局图索引与查询融合蒸馏 pipeline 是实现低资源高效 RAG 的核心创新。它将知识图谱结构化存储实体与关系,同时通过 hybrid/mix 模式融合 local(实体聚焦)和 global(关系聚焦)检索,避免传统 RAG 的扁平向量局限,提升复杂查询的全面性和多样性。相比 GraphRAG,这种设计只需单次 LLM 调用(<100 tokens),支持增量更新,适用于边缘设备和实时场景。
双图索引构建是 pipeline 的基础。首先,文档分块(默认 chunk_token_size=1200,overlap=100),LLM(如 GPT-4o-mini)提取实体(person、organization 等)和关系,形成节点与边。实体 / 关系描述经总结(summary_max_tokens=500)后,向量化嵌入(embedding_batch_num=32,dim 如 bge-m3 的 1024)存入 vector_storage(如 NanoVectorDB),图结构存入 graph_storage(如 NetworkX 或 Neo4j)。去重合并确保唯一性,仅保留核心描述,避免冗余。“LightRAG 的知识图谱可以增量更新,避免 GraphRAG 全量重建。” 关键参数:entity_extract_max_gleaning=1(迭代提取次数),node2vec_params 用于可选节点嵌入(默认不启用)。此过程 LLM 需求低(推荐 >=32B 参数,context >=32K),并启用 llm_cache 复用提示。
查询融合蒸馏是 pipeline 的高光。QueryParam 控制模式:local 检索 top_k=60 实体邻域(max_entity_tokens=6000);global 检索关系(max_relation_tokens=8000);hybrid/mix 融合二者,总上下文 max_total_tokens=30000。流程:查询分词提取 low-level(具体实体)和 high-level(抽象概念)关键词,向量检索实体 / 关系 → 扩展邻接节点 → 融合 chunks(chunk_top_k=20,经 rerank 如 bge-reranker-v2-m3) → 注入 LLM(gpt_4o_complete)。蒸馏指上下文精炼:统一 token 预算控制,避免幻觉,支持 conversation_history 维持对话。证据显示,在农业 / 法律等数据集,LightRAG 胜率超 60%(comprehensiveness、多样性),因融合捕捉多跳关系。
落地清单确保零门槛部署:
-
环境准备:uv pip install lightrag-hku [api];export OPENAI_API_KEY=sk-... 或 Ollama 配置。
-
初始化:
rag = LightRAG( working_dir="./rag_storage", embedding_func=openai_embed, # 或 ollama_embed(nomic-embed-text) llm_model_func=gpt_4o_mini_complete, chunk_token_size=1200, llm_model_max_async=4 ) await rag.initialize_storages() -
索引:rag.insert ("文档内容", file_paths=["doc.txt"]);批量 max_parallel_insert=4。
-
查询:
param = QueryParam(mode="hybrid", top_k=60, enable_rerank=True) result = await rag.aquery("查询问题", param=param) -
存储扩展:.env 中 NEO4J_URI=neo4j://localhost:7687;graph_storage="Neo4JStorage"。
-
服务化:lightrag-server 启动 WebUI/API,支持 Ollama 兼容。
监控要点:Langfuse 集成追踪 token/latency(pip install lightrag-hku [observability]);RAGAS 评估 context_precision;阈值 cosine_better_than_threshold=0.2,回滚 clear_cache (modes=["hybrid"])。
风险控制:embedding 模型切换需清数据;大文档分批 insert;生产用 PostgreSQL 一体化(kv/vector/graph)。优化:mix 模式默认,user_prompt 自定义输出(如 "用 Mermaid 图");embedding_cache_config={"similarity_threshold":0.95} 加速重复查询。
此 pipeline 在低资源下实现高效 RAG,落地参数如上清单,监控确保稳定。
资料来源: