LightRAG 是香港大学数据科学实验室开源的简单高效 RAG 框架,通过双图实体-关系索引机制,将文档知识结构化为图结构,支持低资源环境下的复杂查询处理。其核心优势在于将传统稠密检索的局限转化为图增强检索,避免上下文丢失和幻觉问题。
双图索引是 LightRAG 的基础,将文档切块后使用 LLM 提取实体(如人名、地点)和关系(如“属于”“位于”),分别构建实体图和关系图。实体节点存储关键概念描述,关系边捕捉语义关联,形成异构知识图谱。这种结构化表示比纯向量嵌入更高效,能捕获全局拓扑特征。例如,在处理长文档时,LightRAG 先将文本分块(默认 chunk_token_size=1200,overlap=100),然后 LLM 生成实体/关系键值对,并去重合并,避免冗余计算。根据官方基准,在农业、CS、法律数据集上,LightRAG 的全面性胜率达 67.6%,远超 NaiveRAG 的 32.4%。
查询融合采用双层检索范式:local 模式聚焦实体局部上下文,global 模式遍历关系全局知识,hybrid 模式结合两者,提供最优覆盖。用户查询先提取低级(局部关键词)和高级(全局关键词),分别在实体/关系向量库中检索 top_k(默认 60)项,并整合邻接节点增强相关性。这种融合确保多跳推理能力,例如查询“故事主要主题”时,不仅召回相关实体,还拉取关联关系,形成完整上下文。QueryParam 支持自定义,如 chunk_top_k=20 用于 rerank 后精选文本块,max_entity_tokens=6000 控制 token 预算,避免溢出。
为实现低资源部署,LightRAG 优化 chunk 阈值和蒸馏技术。默认 tokenizer 为 Tiktoken(gpt-4o-mini),chunk_token_size=1200 平衡召回与粒度,overlap=100 保留边界语义。embedding_batch_num=32 和 llm_model_max_async=4 并行加速索引,支持 NanoVectorDB 等轻量存储。知识蒸馏扩展允许从小模型继承大模型图知识:教师模型(≥32B 参数,如 GPT-4o)提取图结构,学生模型(Ollama 小模型)复用,实现性能逼近基线同时降低部署成本。
落地参数清单:
- 初始化:chunk_token_size=1200, chunk_overlap_token_size=100, top_k=60, chunk_top_k=20。
- 查询:mode="hybrid", enable_rerank=True(使用 bge-reranker-v2-m3)。
- 存储:vector_storage="NanoVectorDBStorage", graph_storage="NetworkXStorage"。
- LLM:llm_model_func=gpt_4o_mini_complete, embedding_func=openai_embed(dim=1536)。
- 监控:cosine_better_than_threshold=0.2,summary_context_size=10000。
回滚策略:若索引失败,fallback 到 naive 模式;token 超支时,压缩 max_total_tokens=30000。
风险控制:索引需强大 LLM(上下文 ≥32K),嵌入模型变更须重建向量表;生产中用 Neo4J/PostgreSQL 替换默认存储,确保高并发。
资料来源:https://github.com/HKUDS/LightRAG;arXiv:2410.05779。