Skip to main content

认知图:3.入库与查询流水线

认知图:入库与查询流水线

把认知图作为长期可推理的知识层,对接 LLM 完成入库与查询。两端结构对称——入库把自然语言压成节点 + 关系,查询把 query 压成关键节点集再回到节点 + 关系。文档定位:规范态(spec)。

    依赖依赖:认知图:以谓词作为概念unit / 节点 / 关系定义见 认知图:以谓词作为概念;文本到 unit 图的构建过程见 谓词定义)、文本到认知图:图构建方法(文本 → 图构建流程)本文档只规定向量化、查询路径与

    覆盖:扩展《认知图:1》§7 的查询规范——允许 LLM 节流策略。在线参与、补缓存 / 明面关系优先等节流策略。两份冲突时以本文档为准。


    §1 总览

    1.1 系统范围

    把认知图作为长期可推理的知识层,对接 LLM 完成两端:

      入库——自然语言文本 → unit 集 + 节点向量;

      查询——query 认知图文本 §六 查询的关系:原命中 §六unit 描述"查询是纯图遍历、无在线 LLM"的极简路径;本文档允许 LLM 在线参与,并补缓存 / 明面关系优先等节流策略——是更完整的查询规范,覆盖原 §六。总结答案。


      一、核心思路

      四条贯穿入库与查询的特性:

      对称性 两端结构对称—— 入库把输入 → unit 节点集 + 关系;查询把 query → 关键节点集 → 在图里展开。两端走同一套同一套 LLM 抽取规则,向量化基于同一组节点,不在两侧各自再造一种表示。同一组节点向量。

      1.2 关键特性

      特性 含义 主要定义 对称性 入库与查询走同一套 LLM 抽取规则;向量化基于同一组节点 §2.1 + §3.1 多层检索 ——向量给入口、图给结构、扩散给广度 三层互补:向量做模糊入口(query§3.2 节点/ §3.3 库内候选节点);定向遍历做精确扩展(沿明确关系收集相关 unit);扩散查询做联想广度(沿全部关系按权重传播激活,模拟人脑联想记忆)。向量给入口,图给结构,扩散给广度。

      LLM 节流 ——明面关系优先 明面关系(图上可直接遍历的边、family+ 闭包、同义缓存;LLM 只在权衡 / 属于合成位介入 §4

      迭代终止 图扩展 ↔ LLM 下钻可来回多次;按覆盖度 / )能解的不调边际收益收敛 LLM;只有需要在多个候选间权衡、合成回答时才介入。重复决策走缓存。§3.4

      1.3 流水线概览

      迭代终止

       —— 查询是迭代过程:图扩展(定向 + 扩散)→ LLM 下钻判够 → 不够则触发新一轮扩展。下钻与扩散可来回多次。LLM 每一层判"够不够",够了就总结返回。入库:

      二、入库流水线

      原文 → LLM 抽取 → unit 集 + 图拓扑 → 节点向量化 → 持久化
      

      1. LLM 抽取

      文本到认知图 §三 把原文压成 unit 集 + 入口节点 + 关系。允许两种激进度,按文体选:查询:

        摘要驱动(论文 / 综述 / 技术文档):剥叙述外壳、合并冗余事实,留事实骨架。 细节保留(访谈 / 评论 / 用户输入):保留量化 / 程度 / 置信度修饰行,叙述细节进 ()[模态] / ()[置信度] 等修饰位。

        两者公共要求:不存储原文形态的句子镜像——即便细节保留模式也走 unit 结构,不退化为带索引的全文。

        2. 节点向量化

        对每个入口节点 {X} 计算嵌入向量,按节点 ID 索引。

          派生 node {MB} 单独嵌入(不是 M 与 B 嵌入的拼接),它的语义在派生整体上。 谓词实例 [P] 不嵌入——语义由 family 基础成员承载,归一化后走 family 闭包匹配。 (X) 不嵌入——不可查询节点不是检索入口。

          3. 关系持久化

          unit 集 ground truth 是 unit 文本(认知图 §五);反向索引(subject_mentions / context_mentions / narrowed_by)随入库自动更新。

          向量层是反向索引的补充——不取代 subject_mentions 等符号索引,而是给"语义近似但字面不同"的 query 节点提供入口。


          三、查询流水线

          query → LLM 抽关键节点 → 向量比对 → 候选节点集
                                                 ↓
                                      ┌────────────────────┐
                                      │ 图扩展 (图扩展(LLM)LLM)   │
                                      │   ├ 定向遍历       │
                                      │   └ 扩散查询       │
                                      └─────────┬──────────┘
                                                ↓
                                      ┌────────────────────┐
                                      │ LLM 分层下钻       │
                                      │ 挑选 / 判够 / 选下跳│
                                      └─────┬──────────┬───┘
                                            ↓够       ↓不够 / 漂移
                                        总结返回    新种子 → 回图扩展
          

          1.4 记号约定

          记号 含义 {X} / (X) / [P] 见《认知图:1》§1.4 subject_mentions / context_mentions / narrowed_by 反向索引;见《认知图:1》§7.1 ≡ / ↔ / ⇒ 判断索引;见《认知图:1》§7.2 τ(edge_type) / ε / K 扩散查询参数;见 §3.3.2

          §2 入库流水线

          2.1 LLM 抽取

          按《认知图:2》§2 把原文压成 unit 集 + 入口节点 + 关系。允许两种激进度:

          模式 适用 行为 摘要驱动 论文 / 综述 / 技术文档 剥叙述外壳、合并冗余事实,留事实骨架 细节保留 访谈 / 评论 / 用户输入 保留量化 / 程度 / 置信度修饰行,叙述细节进 ()[模态] / ()[置信度]

          两者公共要求:不存储原文形态的句子镜像——细节保留模式也走 unit 结构,不退化为带索引的全文。

          2.2 节点向量化

          对每个入口节点 {X} 计算嵌入向量,按节点 ID 索引。

            派生节点 {MB} 单独嵌入(不是 M 与 B 嵌入的拼接),语义在派生整体上;

            谓词实例 [P] 不嵌入——语义由 family 基础成员承载,归一化后走 family 闭包匹配;

            (X) 不嵌入——不可查询节点不是检索入口。

            2.3 关系持久化

            unit 集 ground truth 是 unit 文本(《认知图:2》§4.1);反向索引随入库自动更新。

            向量层是反向索引的补充——不取代 subject_mentions 等符号索引,而是给"语义近似但字面不同"的 query 节点提供入口。


            §3 查询流水线

            3.1 关键节点抽取

            把 query 当成一段输入,走与入库同一套当作一段输入,走与入库同一套 LLM 抽取流程(文本到认知图 《认知图:2》§三 步骤 2.1–32.3),产出 query 节点集 + 关键谓词。

            目标不是完整 unit 图——只取能作为检索入口的节点(只取能作为检索入口的节点({X},不含 (X))。

            2.3.2 向量比对

            每个 query 节点对库内入口节点向量做 top-k 近邻 → 候选节点集候选节点集。

            • 阈值过滤:

              阈值过滤——余弦相似度低于阈值的候选丢弃,避免拉入语义不相关的节点。避免拉入语义不相关的节点;

            • 谓词作为方向偏置:

              谓词作为方向偏置——query 中归并到 family 基础成员的谓词,用于后续遍历的方向选择(不在向量层硬过滤)。

            3.3 图扩展(不调 LLM)

            候选节点为种子,两种互补路径,按 query 类型选择或并用——类型选择或并用。明面关系直接消费,是 LLM 节流的主战场。

            3.3.1 定向遍历

            适用于 适用:query 谓词明确("X 的因果链"、"谁认为 Y"),沿特定关系走精确路径:沿特定关系走精确路径。

            • 沿 subject_mentions 取以候选为主体的 unit。unit;

            • 沿 context_mentions 取以候选为论元 / 修饰行值的 unit。unit;

            • 沿 属于 闭包传递(上位类断言下沉到子类)

            • 沿 同义 合并 ≡ 索引下的等价节点。索引下的等价节点;

            • 沿 被取代 链取末端(跳过被取代的旧 unit)

            • 沿 narrowed_by 取派生取派生节点(基础节点不继承派生节点的具体断言)。

              node(基础 node 不继承派生 node 的具体断言)。

            3.3.2 扩散查询

            适用于 适用:query 意图模糊 / 需要广联想(综述类、对比类、"这个概念让你想到什么"),或定向遍历命中太少时作为补充。

            从种子节点出发,沿全部关系按权重逐跳传播激活——模拟人脑联想记忆模拟人脑联想记忆:cue 激活相关概念,相关概念再激活下一层,逐层衰减。

            参数:

            参数 含义 典型取值
            初始能量 E₀ 种子节点起始激活值,可按向量相似度加权 1.0
            传导系数 τ(edge_type) 边的"易联想度"——强关联边传更多能量 同义 ≈ 0.9 / 属于 ≈ 0.7 / ≈ 0.5 / 内容 family ≈ 0.3 / 相关于 ≈ 0.2
            衰减阈值 ε 能量低于 ε 的节点不再向外传 0.05
            最大跳数 K 兜底,防发散 3–5

            输出每个被激活节点的累积能量值,作为"联想强度"排名。作为联想强度排名。能量值是排序权重,不代表事实可信度不代表事实可信度——事实由 unit 本身承载。

            4.3.4 分层下钻(LLM 介入)

            扩展到的 unit 集合给集合交给 LLM,它做三件事:

              子任务 行为 挑选相关 —— 剔除虽连接但与 query 无关的 unit(如沿 属于 拉来的不相关上位事实,或扩散激活拉来的语义远点) 判断够不够 —— 已收集 unit 是否足以回答 query。query 决定下一跳 —— 不够则指明从哪些节点继续扩展,并指定走哪种扩展方式(定向遍历不够定向不够 → 触发扩散;扩散噪声多 → 切回定向);若判定 query 真正关心的不是初始命中节点,触发方向漂移 → 重新走 §三.3.1 抽关键节点。

              下钻与扩散可来回多次下钻与扩散可来回多次:下钻指出新种子 → 回到 §三.3(定向或扩散)3.3 → 拿新结果再下钻。

              两条收敛条件,收敛条件——任一成立即停止迭代:

              1. 信息覆盖度 信息覆盖度—query 节点全部被命中节点 / 扩展节点覆盖;关键谓词在某条 unit 上落地。上落地;
              2. 边际收益消失 边际收益消失—上一轮扩展带来的新 unit 中没有再回答 query 的内容。

              兜底上限:最大下钻轮数 / 最大命中 unit 数。超过即停(防止开放式防开放式 query 不收敛)。

              5.3.5 总结返回

              LLM 判 "判"信息足够" 后,基于命中 unit 集生成回答。回答的事实基础限定在命中 unit 集——不允许 LLM 用参数化知识补未在图里的事实,否则破坏图作为 ground truth 的地位。


              四、§4 LLM 节流

              查询流水线的 LLM 调用集中在 §三.3.1(query → 关键节点)、§三.3.4(分层下钻)、§三.3.5(总结)。两条策略压缩调用量:两条策略压缩调用量。

              1.4.1 走明面关系明面关系优先

              能在符号图上直接遍历得到的事实,不让 LLM 复述:

              任务 走明面关系 调 LLM 的场景
              找以 X 为主体的所有事实 subject_mentions[X] /
              找 X 的派生 node的派生节点 narrowed_by[X] /
              找因果链下游 谓词 ∈ 导致 family,沿 (因→果) 主体遍历 /
              联想相关节点(模糊 / 综述 query) 扩散查询(§三.3.3.2) 联想结果中筛掉远端噪声
              合并语义近似的 query 节点 同义 闭包 + ≡ 索引 向量空间命中但库内无 同义 主 unit 时,LLM 判 ≡ / ↔
              取最新事实 沿 被取代 ⇒ 链取末端 /
              跨多 unit 综合回答 / 综合本身需要 LLM
              query 节点对应库内哪个具体节点 向量 top-k 多个候选难选时升级到 LLM 二选

              2.4.2 缓存缓存与失效

              三层都可缓存,按缓存键复用:三层都可缓存:

                缓存项 key value query 节点抽取缓存节点抽取 —— key = query 文本(normalize 后),value = 关键节点集 + 谓词。谓词 向量近邻缓存 —— key向量近邻 = query 节点 ID,valueID = top-k 候选。候选 扩散结果缓存 —— key扩散结果 = (种子节点集, 参数集 τ/ε/K),value = 激活节点列表 + 能量值。能量值 分层下钻决策缓存 —— key分层下钻决策 = (已命中 unit 集签名, 当前 query),value = 下一跳种子 / 停止信号。停止信号

                缓存的代价是新事实入库失效集——每条缓存项必须挂"依赖的节点 / 已缓存的"信息足够"判断可能过时。入库时按节点维护失效集——unit"清单。某节点入新 unit → 含该节点的缓存条目失效。含该节点的缓存条目全部失效。不允许只写入不失效。


                五、§5 不变量

                整个流水线必须满足:整个流水线必须同时满足:

                1. 入库 - 查询节点表征同构入库—查询节点表征同构——入库与查询走同一套 LLM 抽取规则(文本到认知图 《认知图:2》§2),同一节点 ID 在两端指向同一向量、同一图位置。
                2. 向量与扩散只决定排序,不决定事实不决定事实——候选节点 / 联想节点由向量相似度和扩散能量给出,事实由 unit 给出。不允许把向量相似度或扩散能量当作事实可信度——它们只是排序权重。不允许把向量相似度或扩散能量当作事实可信度。
                3. 回答的事实基础限定在命中 unit 集——LLM 总结时不可引入未在图里的事实;缺失就报告"图中无此信息"。
                4. 明面关系优先于 LLM 推理推理——能在符号闭包内得到的关系不调 LLM;调 LLM 的位置是的位置仅限 §三.3.1 / §三.3.4 / §三.5,其余位置不调。3.5。
                5. 缓存与失效成对:每条缓存项必须有可识别的失效条件(依赖的节点 / unit 集变动),不能"只写入不失效"。缓存与失效成对——每条缓存项必须有可识别的失效条件;不允许只写入不失效。
                6. 不存储原文句子镜像不存储原文句子镜像——入库丢叙述外壳,留事实节点;细节保留模式也走修饰行 / 派生 node,派生节点,不退化为带索引全文。

                违反任一条 → 流水线退化为普通 RAG(全文检索 + LLM 重读),失去认知图带来的可推理性。


                六、trade-§6 Trade-off

                  取舍 内容

                  入库代价高于纯 RAG,查询代价高于纯图遍历 —— 入库多一道向量化,查询多两道 LLM(query 抽节点 + 分层下钻)。代价换两个收益:向量层让 query 不必字面匹配;分层下钻让大段事实合成做对。分层下钻让大段事实合成做对

                  向量层引入语义漂移风险 —— 余弦近邻可能拉入"看起来相关但不是同一概念"的节点(如"想象增强智能体" 与"想象力" 在向量空间近邻,但前者是具体架构、后者是通用能力)。靠 §三.3.4 的 LLM 挑选相关步骤兜底—挑选步骤兜底—这步删错节点比保留无关节点风险低。这步删错节点比保留无关节点风险低

                  扩散查询参数难调 —— 传导系数 τ 决定哪些关系"易联想":调高了拉来太多噪声、远端节点全亮,调低了等同纯定向遍历、失去广度。调高拉来噪声,调低等同纯定向遍历。需要按文档域校准(学术语料 属于 / 导致 传得更远;生活语料 相关于 权重应升)。联想性 query 下扩散可能激活近半张图,靠 K / ε / LLM 挑选三重兜底。挑选三重兜底

                  缓存让查询走捷径,也让设计错误持久化 —— 一次错判的"信息足够"被缓存后,重复 query 都拿到同样错的回答。失效条件设计是缓存层的核心难点。失效条件设计是缓存层的核心难点

                  分层下钻的终止靠分层下钻终止靠 LLM 主观判断 —— 没有形式化的"收敛条件"。没有形式化的收敛条件。两条启发(覆盖度 + 边际收益)可缓解但消不掉。极端 query(开放式综述、对比类问题)下 LLM 可能反复扩展不收敛——靠最大跳数 / 最大命中数兜底。最大命中数兜底

                  明面关系覆盖度依赖入库质量 —— 若入库时谓词没归到 family 基础成员、派生 node 没正确声明,派生节点没正确声明,查询期的 同义 / 属于 闭包遍历就走不通,被迫退化到 LLM 判 ≡ / ↔。入库代价转嫁查询代价。入库代价转嫁查询代价