LightRAG 深度解析:从知识图谱构建到双层级检索

22 阅读8分钟

LightRAG 深度解析:从知识图谱构建到双层级检索

今天,我们深入技术核心,详细拆解 LightRAG 如何将原始文档转化为知识图谱,并利用双层级关键词实现精准、高效的检索与问答。本文涵盖 知识图谱构建流程问题语义理解与意图扩展双层级检索机制三种检索模式 以及 端到端的问答流程

image.png

一、知识图谱构建:Graph‑Based Text Indexing

LightRAG 的索引过程将原始文档转化为结构化的知识图谱(实体节点 + 关系边),并生成便于向量检索的键值对。

1. 文档分块

长文档首先被切分为较小的文本块(Chunk),例如 chunk size = 1200 tokens。分块保证了 LLM 能在有限的上下文窗口内高效提取信息,同时为后续增量更新打下基础。

2. 实体与关系抽取

对每个文本块,LLM 按照预定义的实体类型进行抽取。

  • 实体识别:预定义类型通常包括 organizationpersongeo(地理位置)、event 等。每个实体需要提取:

    • entity_name
    • entity_type
    • entity_description(详细描述属性和活动)

    输出格式示例:
    ("entity" <|> "OpenAI" <|> "organization" <|> "人工智能研究公司,开发了GPT系列模型")

  • 关系抽取:识别出所有存在明确关系的实体对,每条关系包含:

    • source_entitytarget_entity

    • relationship_description(关系说明)

    • relationship_strength(数值强度,例如 0.8)

    • relationship_keywords:一个或多个 高层次关键词(high‑level keywords),作为该关系的摘要标签,侧重于概念/主题。
      例如:("relationship" <|> "OpenAI" <|> "Microsoft" <|> "战略投资与合作" <|> "科技联盟; 人工智能投资" <|> 0.9)

    关键点:这里的 high_level_keywords关系的属性,而非关系本身。它总结了两个实体之间关系的宏观性质(如“竞争”、“合作”、“影响”)。

  • 文档级关键词:除了实体和关系,LLM 还会为整个文本块提取 content_keywords,其值同样是一组高层关键词,用于概括该段落的总体思想、主题或话题。
    输出格式:("content_keywords" <|> "人工智能监管; 大模型安全; 全球政策")

    为什么要区分?

    • relationship_keywords 附着于单条边,服务于全局检索(用查询的高层关键词去匹配关系标签)。
    • content_keywords 独立于任何关系,代表整个文本块的宏观主题,可用于增强检索或为 LLM 提供块级摘要。

image.png

3. LLM 生成键值对(Profiling)

为了后续的高效检索,每个节点和边都会被转换为键值对:

  • 实体节点 = 实体名称, = 实体描述文本(即 entity_description )。
  • 关系边 = 包含实体名,从实体对中抽象出的多个宏观概念。, = 关系描述文本(即 relationship_description )。例如:("relationship" <|> "OpenAI" <|> "Microsoft" <|> "战略投资与合作" <|> "科技联盟; 人工智能投资" <|> 0.9) 这条记录生成的键值对为:K: ["OpenAI", "Microsoft", "科技联盟", "人工智能投资"] V: "战略投资与合作"

这些键值对会被向量化并存入向量数据库(同时图结构保留在图数据库中)。

4. 去重与合并

由于不同文本块可能提到同一个实体或关系,LightRAG 会对实体名和关系对进行归一化与合并,优化图结构,减少冗余。

5. 增量更新

当新文档到来时,LightRAG 无需重建全图:

  • 对新文档执行完全相同的抽取流程,生成一个子图。
  • 将子图与原图取并集(节点 + 边),新增的实体和关系自动加入。
  • 优势:计算成本低,适应动态数据环境,支持流式更新。

二、问题语义理解与意图扩展

当用户提出一个问题 q 时,LightRAG 并不直接进行字面匹配。LLM 会进行语义理解意图扩展,输出两类关键词:

  • 低层次关键词(Low‑level keywords):包含具体实体、细节或专业术语,用于精准定位
    例如:"GPT-4", "2024年营收", "Transformer架构"

  • 高层次关键词(High‑level keywords):侧重总结性概念或主题,反映宏观语义。
    例如:"大模型商业化", "人工智能安全", "技术竞争格局"

注意:这两类关键词不一定直接出现在用户的原始问题中。LLM 会基于语义理解与意图扩展进行合理生成。这正是 LightRAG 能够泛化、推理的关键能力。

image.png

三、检索流程与双层级匹配

得到两类关键词后,LightRAG 进入检索阶段:

  1. 关键词提取

    • 局部关键词 k(l) ← 低层次关键词
    • 全局关键词 k(g) ← 高层次关键词
  2. 关键词匹配(键值对-向量检索)

    • k(l) 用来在向量数据库中检索最相似的实体节点(实体键值对)。
    • k(g) 用来检索最相似的关系边(关系键值对)。
  3. 一跳子图扩展
    为了增强上下文的完整性,LightRAG 会获取检索到的节点和边的一跳邻居节点,一并纳入,形成局部子图。这样即使核心信息位于间接关联的实体上,也能被召回。

  4. 排序与合并
    根据实体/关系的相关性等级(如向量相似度)与权重(例如关系强度分数)进行排序,然后合并相关的实体、关系以及原始文本块(Chunk)。

  5. 上下文构建
    将合并后的内容拼接为一个完整的上下文(包含名称、描述、原文片段等)。


四、三种检索模式:Local / Global / Hybrid

LightRAG 提供了三种检索模式,以适应不同类型的查询需求。

🔍 Local 模式(侧重实体)

  • 核心:对 低层级关键词(Entity) 进行语义检索,优先召回最相关的实体节点。
  • 然后:检索到节点 v→ 扩展 v 的一跳邻居
  • 排序:根据实体层级、权重和关系强度综合排序。
  • 输出:将实体、关系、文本块拼接为完整上下文,送交大模型生成答案。
  • 适用场景事实性、细节性问题,例如“OpenAI 的总部在哪里?”、“GPT‑4 的参数规模是多少?”

🌐 Global 模式(侧重关系)

  • 核心:对 高层级关键词(Relation) 进行语义检索,优先召回最相关的关系边。
  • 然后:检索到边 e→ 只取 e 的两个端点不再继续扩展!
  • 排序:基于关系强度、相关性得分排序。
  • 输出:同样拼接实体、关系、文本块,生成答案。
  • 适用场景总结性、跨主题、宏观性问题,例如“总结近两年大模型领域的竞争态势”、“人工智能安全的主要研究趋势”。

🤝 Hybrid 模式(混合)

  • 核心Local + Global 并行执行,分别对实体和关系进行语义检索。
  • 合并:将两路检索结果合并(去重、重新排序)。
  • 输出:拼接合并后的上下文,生成答案。
  • 适用场景复杂问题,既需要具体事实又需要宏观关联,例如“哪些公司投资了 Anthropic?这反映了什么样的 AI 投资热潮?”

五、问答流程(Retrieval‑Augmented Generation)

将以上所有组件串联起来,LightRAG 的完整问答流程如下:

  1. 用户输入:问题 q
  2. 语义理解:LLM 提取局部关键词 k(l) 和全局关键词 k(g)
  3. 双层级检索
    • k(l) 检索实体节点 → 得到候选实体集 E_cand
    • k(g) 检索关系边 → 得到候选关系集 R_cand
    • 扩展一跳邻居:对 E_candR_cand 获取所有相邻节点,合并为子图 G_sub
  4. 构建上下文
    • 收集 G_sub 中所有实体与关系的(描述 + 原文片段)
    • 同时加入相关的原始文本块(Chunk)
    • 将所有内容拼接成结构化的上下文 C
  5. 答案生成
    • C 与原始查询 q 一起输入到一个通用 LLM(如 GPT‑4、DeepSeek 等)
    • LLM 生成最终答案并返回给用户。

整个流程对下游 LLM 完全透明:LightRAG 只负责提供高质量、高密度的相关信息,不干预生成逻辑。

image.png

六、总结:LightRAG 的设计智慧

  • 图谱 + 双层级关键词:既保留了精确的实体匹配能力,又通过关系层次的宏观主题实现跨文档、跨概念推理。
  • 关键词不在原文中:LLM 的意图扩展是优势而非缺陷,它让系统能够连接语义相关的概念,克服了传统关键词检索的“字面依赖”。
  • 增量更新:无需全量重建,对实时文档流友好。
  • 三种检索模式:灵活适配从事实查询到宏观分析的不同需求。

LightRAG 本质上是在索引时用 LLM 提炼出知识图谱与多层次标签,在检索时再利用 LLM 理解问题、匹配标签,最终生成时将高质量上下文交给任意 LLM。这种“索引‑检索‑生成”的解耦设计,使其既强大又通用。


如果你对 LightRAG 的实现细节或应用场景有更多疑问,欢迎在评论区留言讨论。