LightRAG 作为 EMNLP2025 入选项目,提供简单快速的 RAG 框架,其核心在于图蒸馏融合检索机制,将知识图谱(KG)与向量嵌入结合,避免传统 RAG 的上下文丢失与 GraphRAG 的高开销。通过 LLM 从文档提取实体 / 关系构建轻量 KG,并嵌入向量,支持增量更新与多存储后端,实现低资源高效生成。
LightRAG 索引流程高效:文档分块(默认 chunk_token_size=1200,overlap=100),LLM 提取实体 / 关系(entity_extract_max_gleaning=1),去重合并后存入 KG(NetworkX/Neo4J)和向量 DB(NanoVectorDB/Faiss)。例如处理《圣诞颂歌》时,仅需少量 LLM 调用生成 KG,避免 GraphRAG 的全重建。“LightRAG 显著优于 NaiveRAG,在综合性、多样性和赋权性指标上胜率达 60-85%。”(来源:GitHub 基准表)。
低资源部署关键参数:LLM 选≥32B 参数、≥32K 上下文模型(如 Qwen2.5-32B),嵌入用 bge-m3(dim=1024);llm_model_max_async=4,embedding_batch_num=32;vector_db_storage_cls_kwargs={"cosine_better_than_threshold":0.2}。Ollama 集成示例:llm_model_func=ollama_model_complete,embedding_func=EmbeddingFunc (dim=768, func=ollama_embed ("nomic-embed-text")),num_ctx=32768。Server 部署:uv pip install "lightrag-hku [api]",配置.env 后 lightrag-server,访问 localhost:9621。
查询优化用 QueryParam:mode="hybrid"(local 实体 + global 关系),top_k=60,chunk_top_k=20,enable_rerank=True(bge-reranker-v2-m3);max_entity_tokens=6000,max_relation_tokens=8000,max_total_tokens=30000。监控:RAGAS 评估 + Langfuse 追踪。风险:嵌入模型变更需清数据;小 LLM KG 提取准度低,用 Qwen3-30B-A3B 优化。
落地清单:
- 安装:uv sync --extra api;cp env.example .env,设 LLM/Embedding 键。
- 初始化:rag=LightRAG (working_dir="./rag_storage", llm_model_func=..., embedding_func=...);await rag.initialize_storages ()。
- 插入:rag.insert ("文本") 或批量;支持 textract 多格式(PDF/DOCX)。
- 查询:rag.query ("问题", param=QueryParam (mode="hybrid", stream=True))。
- 管理:rag.delete_by_entity ("实体");rag.merge_entities (["AI","人工智能"],"AI 技术");export_data ("kg.csv")。
- 扩展:Neo4J 存储(graph_storage="Neo4JStorage");RAG-Anything 多模态。
基准验证:在 Agriculture/CS/Legal 数据集,LightRAG 综合胜 NaiveRAG/RQ-RAG/HyDE 60% 以上,略优 GraphRAG 但更快。低资源场景(如 6GB GPU Gemma2:2B),仍提取 197 实体 / 19 关系。