传统 RAG 系统通常把文档切分为文本块、计算向量嵌入,再按语义相似度召回最相近的片段。这种方式把知识视为彼此独立的"碎片",难以表达实体之间的关联,面对需要跨多个片段、多跳推理的复杂问题时容易给出割裂的答案。LightRAG 的核心思路是把知识看作网状连接的结构,在索引阶段就用大语言模型抽取实体与关系、构建知识图谱,让检索从"找相似"进化到"找关联"。
LightRAG 在检索阶段同时生成两类查询键:面向具体实体的低层键,用于精确召回某一实体及其直接关联;面向抽象主题的高层键,用于捕捉跨文档的宏观语义关联。低层保证事实精度,高层保证上下文广度,二者结合使系统既能回答细节问题,也能处理概念性、趋势性问题。
传统图增强方案在数据变化时往往需要重建整张图谱,成本高、难以适应频繁更新的数据。LightRAG 采用增量更新算法,新文档到来时只处理新增内容,并将新的节点与边合并进现有图谱,无需全量重算,从而在保持数据时效性的同时控制计算开销。
索引层负责把原始文档转化为可供检索的结构化表示,包含文档分块、实体与关系抽取、知识图谱构建、向量嵌入四个环节。抽取出的实体成为图谱节点、关系成为边,同时为节点和边生成用于快速召回的键值摘要,文本块与实体关系则被向量化后存入向量库。
检索层基于双层检索范式工作,通过向量相似度匹配定位候选实体与关系,再借助图谱结构进行邻域扩展,分别得到低层的局部上下文与高层的全局上下文,并可选地引入重排序(Reranker)提升结果精度。
LightRAG 的存储是模块化、可插拔的,逻辑上分为四类:
默认实现为本地文件(JSON、Nano VectorDB、NetworkX 等),生产环境可替换为 PostgreSQL、Neo4j、Milvus、Qdrant、MongoDB、Redis、OpenSearch 等后端,且无需改动业务代码。
生成层将检索层融合后的上下文按模板组织为提示词,交由大语言模型生成最终答案,并可附带引用出处以实现结果可溯源。
将原始文档按设定的块大小切分为多个文本块,便于后续并行处理与精确定位,避免一次性分析整篇文档带来的开销。
这是 LightRAG 区别于朴素 RAG 的关键步骤。系统调用大语言模型,从每个文本块中识别出实体(如人名、机构、地点、事件、概念等)以及实体之间的关系,例如从"心脏病医生诊断心脏病"这类文本中抽取"心脏病医生"与"心脏病"两个实体及"诊断"关系。
在抽取的基础上,为每个实体节点和关系边生成键值对:键是用于高效召回的词语或短语,值是汇总相关片段的文本段落。随后对来自不同文本块的相同实体与关系进行去重合并,缩小图谱规模、降低后续图操作的开销。
将去重后的实体作为节点、关系作为边,组装成结构化的知识图谱,使原本分散在多份文档中的信息通过关联连接起来,为跨文档、多跳推理提供结构支撑。
对文本块、实体和关系分别进行向量化,写入向量数据库,为检索阶段的语义相似度匹配做好准备。
低层检索面向具体、细节型的问题,通常指向图谱中的某一具体实体。系统通过向量匹配定位到目标实体后,沿其直接相连的边做一跳邻域扩展,收集与该实体精确相关的局部上下文,适合回答"某实体的直接关联是什么"这类事实性问题。
高层检索面向抽象、概念型的问题,关注跨文档的宏观主题。系统从匹配到的实体出发,进行多跳的语义关联扩展,捕捉分散在多份文档中的主题线索,适合回答"某领域整体趋势如何""多个概念之间如何相互影响"这类需要全局视野的问题。
低层保证答案的事实精度,高层保证答案的上下文完整性。二者结合使 LightRAG 不会退化为"只抓细节"或"只做概括"的单一行为,而能在细节与全局之间取得平衡。
用户问题进入系统后,会被解析并提取出低层关键词与高层关键词,分别用于驱动低层与高层两路检索。
低层路径通过向量库定位实体、经图谱扩展得到局部上下文;高层路径通过图谱关系检索得到全局上下文。两路结果经过合并、去重后形成综合上下文。
系统将局部上下文与全局上下文融合,组织进提示模板,交由大语言模型生成最终回答。若启用引用功能,回答会标注对应的原始文档来源,便于溯源验证。
LightRAG 提供多种查询模式以适配不同需求:
在检索结果之上可启用重排序(Reranker),对召回结果重新打分排序以进一步提升质量,官方说明启用 Rerank 通常能改善查询效果,但会引入一定延迟。
LightRAG 集成了 RAGAS 评估框架,可对答案相关性、事实一致性、检索精度等维度进行自动化评估,并支持返回检索上下文以支撑上下文精确率等指标的计算。
通过集成 Langfuse,系统可对每次检索与生成的过程进行追踪可视化,便于开发者观察检索细节、排查问题并优化管线。
内置引用(Citation)功能,使生成的答案能够标注原始文档出处,增强结果的可验证性与文档可追溯性。
对于需要频繁更新、且包含大量跨文档实体关联的内部知识库,LightRAG 的增量更新与多跳关系查询能力较为契合,新文档可快速并入现有图谱并用于问答。
对响应延迟敏感、数据时效性强的场景(如实时舆情、动态文档助手),LightRAG 的检索为单次调用、无需社区重建,响应相对更快。
在社交网络、供应链等需要梳理实体间多跳关系的场景,LightRAG 的图遍历与双层检索能较好地支撑关联推理。
面对持续增长的论文、报告等文献,增量索引与跨文献实体链接能力有助于保持知识库的时效性。
LightRAG 的设计取向是轻量、低成本、支持增量更新,在中小规模、且查询以事实性与多跳关系为主的知识库中表现较好,也更适合运维预算有限、需要频繁更新的团队。
默认本地文件后端适合开发测试;中小规模生产可用 PostgreSQL 作为统一存储;大规模向量检索可搭配 Milvus、Qdrant 等专用向量库;复杂图查询可搭配 Neo4j。生产环境可根据数据规模与查询类型组合选型。
对于以"整库主题概括"为主、且数据规模极大的场景,纯 LightRAG 并非唯一最优解,实践中常与具备全局汇总能力的方案配合使用。
LightRAG 对大语言模型的关系抽取能力要求较高,需准备可用的 LLM 服务(支持 OpenAI 兼容接口、Ollama、Hugging Face 等多种接入方式),并配置合适的嵌入模型与可选的重排序模型。
可通过 PyPI 安装核心包(包名为 lightrag-hku),也可从源码安装。若需要 Web UI 与 API 支持,可安装带 API 扩展的版本。
项目提供 Docker Compose 方案:克隆仓库后复制并编辑环境变量文件(配置 LLM 与 Embedding 服务),再启动容器即可。启动后可通过本地端口访问 Web UI,进行文档索引、知识图谱可视化与 RAG 查询。
向量存储环节可对接专用向量数据库以支撑规模化检索。在生产环境中,可将 LightRAG 的向量存储后端替换为腾讯云向量数据库(Tencent Cloud VectorDB)等全托管向量库,其内置 Embedding 与端到端 AI 套件可简化文档向量化与检索流程,用于构建企业级 RAG 知识库。
传统向量 RAG 把知识表示为彼此独立的文本块向量,仅依赖语义相似度召回;LightRAG 则额外抽取实体与关系、构建知识图谱,让知识以网状结构被组织和检索。
传统向量 RAG 擅长单点事实匹配,但对跨文档、多跳的关联推理支持较弱;LightRAG 通过双层检索兼顾实体级精度与主题级广度,能更好处理需要理解实体关系的复杂查询。
传统向量 RAG 在数据更新时通常需要重建索引;LightRAG 支持增量更新,新文档可增量并入现有图谱,更适合动态知识库。
LightRAG 论文中的实验对比显示,其单次查询的检索开销远低于所对比的 GraphRAG 配置——LightRAG 检索仅需极少的 token 与单次大模型调用,而对比配置下的 GraphRAG 全局模式需对大量社区摘要做地图—归约式处理,token 消耗与调用次数都高得多。这一差异源于架构:LightRAG 检索的是有界的邻域,而全局模式需遍历大量社区摘要。
需要说明的是,上述大幅成本差异主要体现在查询阶段而非索引阶段;索引阶段两者都依赖大模型做实体关系抽取。LightRAG 的索引以文档块为单位增量构建,关系抽取更直接,并可兼容轻量模型,整体索引开销通常低于需要逐块深度摘要与社区划分的方案。
因此,在查询频繁、数据持续更新的场景,LightRAG 的查询成本优势会随交互量累积而放大;上述具体倍数来自论文特定数据集与配置的实验,实际数值会因语料规模、模型选择与查询类型而有所不同,应结合自身场景评估。