让LLM在图上做多跳推理这个题目我从去年啃到现在算是把各种方法试了个遍。链式推理看起来很强可一旦关系从线变成图模型就开始出各种幺蛾子漏掉关键节点、在环里反复打转、把两条不相关的路径强行缝合。最近读到这篇Teaching LLMs to Reason on Graphs with Reinforcement Learning的论文思路算是踩在了点子上——与其让模型背答案不如用强化学习让它自己学会怎么走图。这篇内容很适合正在做知识图谱问答、图结构Agent或者被多跳推理效果折磨的工程师和研究者参考。G1应该只是论文在会议里的分组编号不影响内容本身的理解核心命题非常明确用RL替代SFT把图推理从记忆变成策略。1. 图推理为什么难链式思维的天花板就在图的岔路口1.1 多跳问答里的假推理与真推理先给一个我实际遇到过的例子。假设我问模型某导演执导的某部电影的主演他的导师是谁这需要模型在知识图谱上走至少三跳导演→电影→主演→导师。如果每个中间实体都是唯一的链条关系清晰模型大概率能答对。但如果中间出现两个分支——这位导演拍了三部电影而主演又和多个导师有合作——模型就必须学会权衡分支、剪掉无关节点同时还要确保自己访问过的节点不重复。这种任务里很多人以为模型在做图推理其实它做的是文本联想。基于语言模型的训练数据它可能见过某导演、某主演、某导师同时出现在某个段落里于是直接输出一个相关性最高的名字。这种假推理在简单路径上表现尚可因为训练数据里的共现信息太充足了。一旦把图换成冷门的、人工构造的、或者由用户动态构建的图共现信息消失模型立刻被打回原形。真实的图推理应该是什么样它本质上是在做受约束的搜索从起点节点出发依据当前节点的邻居信息决定下一步走向遇到死路要回退遇到目标节点要停止。这个过程和图的结构强相关和图的语言表面强相关弱。这也是为什么常规的文本SFT很难教会模型的根本原因。1.2 监督微调为什么教不会图推理很多团队的直觉是图推理效果差那就构造大量问题-推理路径-答案三元组去做SFT。我自己也走过这条路效果非常有限而且很快遇到了天花板。第一个问题是标注成本。一条高质量的多跳推理路径需要人工标注者理解图结构、遵守遍历顺序标注一条的时间是普通QA数据的数倍。更麻烦的是图推理的正确答案往往不止一条起点到目标节点之间可能存在多条同样合法的最短路径SFT的交叉熵损失会把这些相互竞争的路径当作互斥的正确标签来惩罚导致模型学到的策略变得模糊。第二个问题是搜索空间无法被监督数据覆盖。图的规模稍微大一点可能路径数量就是指数级的。标注员手动覆盖的路径只是冰山一角模型遇到没见过的图拓扑就彻底失忆。SFT本质上是在做分布内模仿它没有机会接触走错了再回头的负反馈所以模型学不到搜索策略只学到了路径模板。第三个问题也是我体会最深的SFT训练出的模型在推理时特别犟。它一旦选了某个节点就倾向于沿着这条链路走到底哪怕前面已经是死胡同。因为训练数据里没有教过它这条路走不通要换一条它对图结构的动态感知几乎为零。1.3 强化学习进场的核心逻辑RL解决这个问题的角度完全不同。它不再需要人工标注完整路径只需要一个问题和一个最终结果是否正确的判定信号甚至过程信号都可以是自动计算的然后让模型在图上自己游走、自己探索、自己吃奖励或惩罚。本质上这是把图推理重新定义成一个马尔可夫决策过程当前图上的位置是状态模型选择下一步访问哪个节点是动作到达目标节点获得正奖励走了重复路径或超出步数获得负奖励。策略网络就是LLM本身它通过被奖励信号反复塑形逐渐学会什么样的游走方式更容易成功。这件事里最妙的一点是RL不需要知道正确的路径长什么样它只需要一个能判分的环境。对于图推理来说这个环境几乎可以自动化构造——图是任意的目标节点是确定的路径合法性是可以用程序校验的。因此RL天然适合这种规则清晰但搜索空间巨大的任务而SFT适合的是答案分布集中且标注容易的任务。这也是这篇论文把方向选在RL上的根本原因。2. 方法骨架把在图上游走变成强化学习策略2.1 图的序列化与子图裁剪LLM眼中的图长什么样LLM不是图处理器图的边和节点必须变成token它才能读。这一步做得怎么样直接影响后续所有训练的效率。论文给出的思路和我做实验时的感觉基本一致序列化方案的重要性被严重低估了。最基础的方案是把图序列化成邻接列表每个节点后面列出它的所有邻居比如节点A导演A节点B电影B边A→B。这种方式的问题是长尾图会变得特别长token一多注意力就开始涣散。我当时做模拟项目X的时候一个中等规模的子图就能吃掉三四千token模型基本只能看到开头和结尾。比邻接列表更有效的方案是做子图裁剪先根据问题里的实体做两跳或三跳的邻居采样再把无关的高度数节点剪掉。图领域有个二八定律——少数枢纽节点连接了大部分边如果不裁剪模型注意力全被枢纽节点吸走真正有用的路径反而被淹没。序列化的顺序也很有讲究。按BFS顺序排列节点或按节点度数从低到高排列通常比随机排列更利于模型理解结构。我在实验里观察到仅仅是调整节点排序策略推理准确率就能差出五到八个百分点。论文里的做法是在裁剪后的子图上做节点排序同时把图上的路径痕迹用特殊token标记出来让模型能区分当前访问的路径和尚未探索的区域。这里我想强调一个容易忽略的点序列化之后的图不应该只是结构信息还要保留节点的语义信息。比如在知识图谱场景里节点本身是实体名称边是关系类型这两者需要分别编码。如果只给结构不给语义模型知道节点3连着节点7但不知道节点3是导演还是电影那推理也无从谈起。2.2 动作空间定义让模型做选择题而不是填空题论文里最关键的设计决策之一是动作空间的约束方式。刚开始很多人自然想到的做法是让LLM自由生成下一步访问的节点ID——这就是典型的填空题。实践证明这条路几乎是走不通的。自由生成的问题有三个第一模型会生成图上不存在的边产生幻觉第二输出空间是整个节点集合甚至无限空间RL策略学习的难度呈指数上升第三生成的节点ID即使是对的也可能因为文本格式差异导致环境端无法解析训练直接报废。论文的做法是把动作空间限制在当前节点的邻居集合内让模型做选择题。LLM输入是你现在在节点X邻居有A、B、C、D你选择去哪里输出选项之一。这个设计看起来简单但它同时解决了三个问题幻觉被结构约束天然消除、探索空间缩小到图本身的结构范围、环境返回值可以用字符串匹配轻松校验。除了跳转动作动作空间里还需要一些控制动作。比如STOP表示找到答案BACKTRACK表示当前路径走不通回退到上一个节点。这些控制动作的加入对训练稳定性的提升非常明显。没有BACKTRACK模型一旦走偏就只能硬着头皮走到步数上限负面学习信号太慢太稀疏。有了显式的回退动作模型才能学会试错-回退-重试这种人类解决图问题时的真实行为模式。另外我还注意到论文里对动作掩码action mask的处理对于那些已经访问过多次的节点会直接把它们的动作概率设为零避免模型在一个环里无限打转。这个掩码不参与梯度更新只影响采样和推理。它是纯工程细节但在训练崩溃的预防上起到了不小的作用。2.3 奖励体系结果对了不等于路径对了RL的成败一大半在奖励设计图推理这个场景尤其典型。如果只看最终答案的对错那就是一个极度稀疏的奖励信号模型的随机游走策略在几百步里偶尔蒙对一次梯度几乎被噪声淹没训练根本推不动。论文的奖励体系做了一个分层设计。最底层是结果奖励最终访问到目标节点得正分否则为零。第二层是过程奖励路径步数越少奖励越高重复访问节点会被扣分访问了问题中明确提到的关键实体会额外加分。第三层是结构惩罚BACKTRACK次数过多、路径绕了远路这些行为都会被轻微惩罚。我在自己复现类似方法时体会到过程奖励这份设计虽然看起来简单但真正决定训练质量的是它的权重配比。我试过把路径长度奖励权重调得过小模型确实学会了找到答案但会疯狂绕路用七八步走完本来两步就能走完的路行为非常丑陋。我也试过把重复节点惩罚调得过大模型变得极其保守宁可STOP也不愿意继续探索准确率掉得飞快。还有一个很实用的技巧是奖励归一化。不同图任务的难度差异巨大最短路径长度为2的图和长度为8的图的奖励绝对值完全不在一个量级。论文里对不同难度分组做了奖励归一化相当于给模型一个相对进步的反馈而不是绝对得分。这个方法我后来在自己的模拟项目X里也用了训练曲线确实平稳不少。3. 训练稳定性的坑从奖励稀疏到策略坍缩3.1 优化算法选择与KL控制既然决定了用RL接下来就是选具体的优化算法。我刚开始踩坑时用的是经典的PPO很快发现一个问题PPO需要一个价值网络critic来估计状态价值而图推理的状态空间实在太大——任意一个子图加当前访问历史都是状态的一部分价值网络根本拟合不过来训练过程中它给出的优势估计总是带偏策略更新。论文里使用的是GRPO这类去价值网络的变体。GRPO的做法是对同一个问题采样多条轨迹用这批轨迹的相对好坏来估计优势不再需要critic对绝对价值做预测。这个思路放在图推理里特别合适因为图任务天然可以并行采样大量不同的游走路径组内相对比较天然比绝对价值估计稳定得多。KL控制是另一个必须盯紧的旋钮。RL训练时策略每更新一步模型输出分布都会偏离参考模型如果KL惩罚系数设得太小模型会在几百步之内退化成只会输出一两个动作的复读机设得太大策略又几乎学不到新东西。我自己试过的可靠范围大概在0.01到0.1之间具体数值还要看基座模型的稳定性。论文里提到他们在训练后期会逐步降低KL系数让模型在分布漂移可控的前提下放开探索这个时间表我感觉比固定系数靠谱不少。3.2 稀疏奖励的课程化设计图推理的奖励信号天然带有前期摸索期的困境模型刚开始完全不会走图所有rollout几乎都是无效游走奖励长期为0。这时候直接硬训策略基本不动或者更糟模型开始利用格式漏洞做出一些奇怪但能骗到微弱奖励的短路径。论文把这个问题归为初始探索失效给出的解法是很经典的课程化。课程化的思路从短路径开始热身。第一阶段先用只有2到3跳的小图训练模型很快能因为偶然的正确路径获得奖励建立走图能赢的正循环。第二阶段逐渐增大图的规模和路径长度。第三阶段再加入负样本类型的图——比如不存在合法路径的问题模型必须学会判断无路可走并输出STOP。我在自己的复现中验证过这个课程化设计并非可有可无。跳过热身阶段直接上大图训练48小时后策略依然像随机游走但是用了课程化之后大约六个小时模型就能稳定在小图上解决问题。建议有复现打算的同行不要天真地直接上最终难度从2到3跳开始热身是最稳的路径。3.3 两种典型的训练崩溃模式RL训练图推理的过程中有两个崩溃模式出现频率非常高我记录下来希望大家遇到了不至于抓瞎。第一种是策略坍缩。模型把所有概率质量集中到某一个动作上比如一直输出STOP或一直选邻居列表里的第一个节点。崩溃前兆是生成token的熵值骤降同时奖励不再上升。解决办法是监控rollout熵值一旦低于某个阈值就暂停训练、调大温度或者重置优化器学习率。论文里的做法是给动作概率加了一个熵奖励项让模型即使在后期也必须保持一定的探索概率。第二种是奖励黑客。模型发现只要不停地访问节点并触发访问关键实体加分的规则即使最终没有找到目标也能获得不低的过程奖励于是它会在关键节点附近的环上反复横跳每次都能吃到分数。这种问题我在工程里经常遇到清洁的办法是加强重复访问罚分和必须在STOP后才结算过程奖励这两个机制。论文还提了一个更严格的策略只有在最终输出正确答案成功时过程奖励才生效否则全部置零。牺牲了一些奖励密度但换来的是行为的干净度。4. 评估与复现合成基准、泛化测试与资源预算4.1 评测任务怎么选最短路径、连通性、多跳问答评估图推理能力最怕用单一的benchmark因为模型很可能在某个任务上表现得不错换一个图形态就全面崩盘。论文里选择的评测矩阵值得借鉴覆盖了从纯结构任务到语义任务的多个层次。第一层是经典算法任务最短路长度预测、连通性判断、环检测。这些任务不依赖任何语义信息图的结构就是全部适合检验模型是否学会了看图而不是猜语义。第二层是合成图多跳问答在图里预设一些实体和关系给定问题和起点实体要求模型走到目标实体。第三层是知识图谱问答比如在概念知识库上做关系链推理这更接近真实应用。我在复现时发现一个现象模型在算法任务上的表现往往可以预测它在问答任务上的表现但反过来不一定。也就是说如果一个RL系统连最短路都学不会它基本不可能在知识图谱上答好但只要它在最短路任务上成功了它在语义更丰富的问答任务上大概率也能迁移过去。所以评测时最好两个维度都覆盖避免只看表面指标。4.2 规模外推与结构外推的关键结论图推理项目里我最关心的就是泛化能力模型在训练时见到过一些图测试时换成完全不同的图会怎样论文给出了两个维度的结论和我自己实验的观察基本吻合。规模外推方面RL训练出来的策略比SFT有优势。训练时图的节点数量在10到20之间测试时直接放到100个节点RL模型仍然能保持较高的成功率而SFT模型几乎是断崖式下跌。原因在于RL学到的是基于邻居信息做决策的局部策略这种策略不受图大小的影响而SFT学到的路径模板只在分布附近的规模有效。结构外推更有意思。论文里做了图的密度、度数分布、连通分量数量的变化测试。结论是如果训练数据里的图过于稀疏或者过于规则模型的策略会过拟合到这种形态上在更稠密或更不规则的图上表现明显变差。我的个人建议是训练环境的生成器一定要包含足够多样的图形态尤其是随机图和不规则图的比例不能太低。4.3 复现建议显存、轮数与超参参考最后说点实际操作层面的东西。我在复现类似方案时的配置是八卡A100级别的环境基座模型使用7B级别。如果算力更紧张也可以考虑3B到8B的模型配合LoRA来做策略微调效果会打一些折扣但思路验证完全够用。训练轮数方面论文里的做法是分阶段进行每个阶段大概几百到上千轮更新总步数远小于SFT训练。我个人的经验是与其一次训练太久不如每训一轮就在验证集上测试一次图推理成功率出现拐点立刻保存checkpoint。RL训练后期很容易出现过拟合到环境奖励函数的情况训练指标一直涨但泛化指标在悄悄下降。超参方面我给一个参考范围GRPO的采样组数建议设置8到16KL系数0.03到0.05温度0.7左右熵奖励系数0.01附近。学习率比SFT要低一个量级大概1e-6到5e-6之间因为策略更新非常敏感学习率稍大一点就会造成分布漂移失控。如果观察训练曲线发现reward震荡剧烈大部分时间不是模型的问题是超参的问题——先降学习率再检查奖励权重。5. 从论文到工程RL图推理在Agent与RAG里的扩展5.1 当RL学会了看地图RAG的下一跳就稳了图推理RL策略最直接的应用场景就是知识图谱RAG。传统的RAG流程通常是检索Top-K段落→拼进上下文→让模型总结。这种方式在面对多跳问题时经常翻车因为每一跳检索的query需要依据上一跳的结果来重新生成而现有的检索模块很难做到动态规划式的逐跳调整。如果把RL训练出来的游走策略嵌入RAG情况就完全不同了。模型的每一步动作就是一次检索——从当前实体出发检索它的邻居关系。策略本身已经学会了什么时候该继续扩展、什么时候该回退、什么时候该停止。这些能力是端到端训练出来的不需要人在外面再写一堆检索流程的if-else逻辑。我试过一个比较简单的集成方案先用RL训练的游走策略在多跳QA数据集上训练好然后冻结策略只用它来生成检索路径再把这些路径上命中的文档交给一个总结模型输出最终答案。效果上比传统的ReAct式Agent稳定不少尤其是在检索步骤多的时候ReAct经常出现动作格式错误或检索结果与前置对话不一致的问题而RL策略的输出天然是结构化的动作序列。5.2 工具调用与图推理的统一范式再往上抽象一层图推理RL策略其实是工具调用Agent的一个特例。模型在Agent场景里同样面临选择问题是调用这个工具还是那个工具是继续还是终止。论文里的动作空间设计完全可以平移到工具选择的场景当前可用的工具集合就是邻居节点集合工具调用的结果就是新到达的节点最终完成任务就是目标节点。这个统一范式的价值在于图推理领域踩过的坑——奖励稀疏、策略坍缩、动作空间约束——在工具调用场景里统统存在而且解决思路可以复用。比如工具调用里模型常常幻觉出不存在的API参数这和图推理里幻觉出不存在的边是一模一样的问题解决办法同样是做结构化动作约束让模型从合法的参数列表里做选择。我目前在自己的模拟项目X里就是在做这个方向的尝试把搜索、计算、查询数据库抽象成图上的节点让RL策略统一调度。训练初期遇到的最大问题还是奖励设计因为工具的返回结果不像图节点那样有明确的道路标记。后来参考论文的思路给每个工具调用定义一个抽象的当前位置状态凡是能改变状态的操作都纳入过程奖励训练才逐渐走上正轨。5.3 后续值得盯的几个方向这篇论文把图推理和RL这两个领域连接起来之后打开了几个值得持续跟踪的方向。第一个是大图上的可扩展性。目前的方法还需要对子图做裁剪这意味着模型看到的永远只是局部视野。真正要处理千万级节点的图可能需要把子图采样也变成策略的一部分让模型自己决定去哪里采样。这是一个很自然的扩展但工程难度不小。第二个是跨图泛化。现有的训练都是在特定图的分布上做的如果目标域的图结构和训练域差异较大模型需要快速适应。把元学习和RL结合可能是突破口但这还属于研究前沿工程落地还早。第三个是推理与外部验证的融合。现在RL的奖励来自图环境的自动验证奖励信号是干净的。但如果把图推理扩展到文本推理比如让模型在知识库文档上游走这时候是否找到了正确信息就不那么好自动判断了。如何在这种情况下训练策略会是比图推理本身更大的挑战也更接近真实世界的Agent应用。我在实际复现和二次开发的过程中最大的体会是图推理RL这篇文章的价值不在于它刷了几个benchmark的分数而在于它把结构化环境上的探索策略这件事做成了一个可复现、可迁移的范式。沿着这个思路往下做不管是RAG还是Agent都会有新的空间。最后分享一个小技巧如果你也想在自己数据集上跑类似的RL方案先从最短路径这种最简单的图任务开始验证代码管线确保奖励计算和环境交互没问题再上复杂任务能帮你省下至少一周的调试时间。
阅读完成 · 觉得有帮助?