第35回 LLM 与图的协同——图提示与联合模型

图可化作一卷书,书里暗藏万条路。
若把路径写成法,模型也能学走步。

到第34回为止,我们练的是“图的内功”:
走路(BFS)、几何(嵌入)、传话(GNN)。

可江湖在 2024–2026 年最热的一招,是把两大门派合并:

  • 大模型擅长语言与推理
  • 图擅长结构与关系

于是出现了一个总命题:
LLM 能不能做图推理?图能不能让 LLM 更可靠?

相关综述把“LLM for Graphs”分成多种范式:
有的把 GNN 当前缀,有的把图序列化成文本,有的让 LLM 与图模块协作。1

这一回我们用说书人的口吻,把它讲成两条路:

  1. 把图喂给 LLM(让它看懂图)
  2. 让图服务 LLM(让它回答更稳)

一、把图喂给 LLM:先解决“怎么看”

LLM 天生吃文本,不天生吃图。
所以第一件事是“翻译”:

  • 把节点与边写成文本序列
  • 把子图写成路径列表
  • 把图算法写成伪代码,让模型沿伪代码推理

其中一个很有代表性的做法是“伪代码提示”:
把图问题(如最短路、连通性)对应的算法步骤写成伪代码,让模型照着走,性能会更稳。2

这和导读里“慢思考”的精神一致:
别让它凭感觉编,给它一条可执行的路。


二、让图服务 LLM:再解决“回答凭什么可信”

反过来,图也能增强 LLM:

  • 知识图谱提供结构化事实,减少“编关系”
  • GraphRAG 提供可解释的路径与子图证据
  • 图上检索能做多跳取证,补齐纯相似检索的短板

你会发现:
图对 LLM 的价值,不只是“多一点知识”,而是“把知识组织成可追溯结构”。


三、联合模型:一半是图,一半是语言

常见的联合形态有三种(只说直觉,不展开公式):1

  1. GNN→LLM:先用 GNN 编码子图,再把编码结果送进 LLM 生成
  2. LLM→GNN:LLM 产出伪标签/指令/补边建议,反过来训练或修正图模型
  3. 协作式:LLM 负责规划与解释,图模块负责检索与验证,像两个人搭档办案

这和第二十二回“工具调用”是一脉:
LLM 不必什么都自己做,它只要会调度“更擅长的工具”。


四、极简可跑代码:把子图写成“路径伪代码”

我们不调用任何大模型,只演示“把图翻译成文本提示”的核心手艺:

  • 输入:一批三元组子图
  • 输出:一段可读的“路径/规则”文本(可作为提示词的一部分)
TRIPLES = [
    ("张三", "就读于", "清华"),
    ("清华", "位于", "北京"),
    ("北京", "属于", "中国"),
]


def to_pseudocode(triples):
    lines = []
    lines.append("DATA:")
    for h, r, t in triples:
        lines.append(f"  EDGE({h}, {r}, {t})")
    lines.append("")
    lines.append("ALGO (follow step by step):")
    lines.append("  1) Start from the query entity.")
    lines.append("  2) Traverse EDGE to find reachable nodes.")
    lines.append("  3) If a path connects A to B, report the path as evidence.")
    return "\n".join(lines)


if __name__ == "__main__":
    print(to_pseudocode(TRIPLES))

你看,这段“伪代码提示”没什么玄学:
它只是把图结构与推理步骤写得更明确,
让模型更像“按步骤做题”,而不是“凭语感作文”。

这也解释了为什么伪代码提示在一些图推理任务上能提升表现:
它把隐含的算法步骤显式化了。2


五、小结:协同的关键是“翻译”和“验证”

LLM 与图的协同,说到底就两件事:

  • 翻译:图怎么变成 LLM 能读的上下文
  • 验证:LLM 说的话怎么落回图的证据与约束

下一回(第36回)我们从“结构”转向“行动”:
规划与自省循环——让智能体学会分解任务、执行、复盘、再来一遍。

欲知后事如何,且听下回分解。


幻觉核查

  • LLM for Graphs 的范式分类:可核对综述对 GNNs as Prefix / text serialization / integration 等体系化总结。1
  • 伪代码提示用于图推理:可核对论文对 pseudo-code prompting 的设置与实验结论。2
  • 本回代码只展示“图→文本提示”的最小形式,不代表最佳提示工程或完整联合模型架构。

逻辑审计

  • 与第34回衔接:第34回讲图上的消息传递,本回讲如何把结构信息送进 LLM,或让 LLM 反过来改图。
  • 与导读一致:导读强调“慢思考=把过程写出来”,伪代码提示正是把过程外显。
  • 为第36回铺路:协同的下一步是“工作流化”,规划与反思把协同变成可重复执行的系统。

引用与溯源

Footnotes

  1. Ren, X., et al. A Survey of Large Language Models for Graphs arXiv:2405.08011 (v3: 2024-09-11) https://arxiv.org/abs/2405.08011 2 3

  2. Skianis, K., et al. Graph Reasoning with Large Language Models via Pseudo-code Prompting arXiv:2409.17906 (2024-09-26) https://arxiv.org/abs/2409.17906 2 3