reasoning-on-graphs
将大语言模型与知识图谱融合,实现可信、可解释的推理问答
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
将大语言模型与知识图谱融合,实现可信、可解释的推理问答
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
当你问聊天机器人「莫扎特的父亲是谁」时,它可能胸有成竹地抛出一个答案——但它真的「知道」吗?还是在堆砌似是而非的统计规律?大型语言模型(LLMs)虽然具备惊人的语言能力,却长期面临一个根本性缺陷:幻觉(hallucination),即一本正经地胡说八道。知识图谱(Knowledge Graphs, KGs)则提供了另一种思路:它将世界知识以「实体—关系—实体」的结构化方式存储,每一条边都对应一个可验证的事实。
那么问题来了:能不能让大模型「照着」知识图谱来推理,而不是凭空编造?Reasoning on Graphs(RoG) 正是为了解决这一问题而生,它获得了 ICLR 2024 的认可。
RoG 的全称是「Reasoning on Graphs: Faithful and Interpretable Large Language Model Reasoning」,由蒙纳士大学(Monash University)和格里菲斯大学(Griffith University)的研究者提出,发表于人工智能顶级会议 ICLR 2024。
论文要解决的核心问题是:如何让大语言模型在知识图谱上进行可信(faithful)且可解释(interpretable) 的推理。所谓「可信」,是指模型的推理过程严格建立在知识图谱提供的事实之上,不会无中生有;所谓「可解释」,是指推理路径可以被人类检查和验证。
RoG 的解决方案是一个规划—检索—推理(Planning-Retrieval-Reasoning) 三阶段框架:
第一阶段:规划(Planning)。给定一个问题(例如「谁执导了《盗梦空间》?」),模型首先根据知识图谱的结构,生成若干条从问题实体到答案实体的关系路径作为「计划」。例如路径可能是:Person -- directed -- Movie。这一步通过指令微调(instruction tuning)实现,模型学会了从问句中提取关系约束。
第二阶段:检索(Retrieval)。根据生成的关系路径,在知识图谱中检索真实存在的三元组,验证这些路径是否在图中真实存在。如果某条路径在图中找不到对应边,就丢弃它。
第三阶段:推理(Reasoning)。将检索到的有效路径作为上下文(context),喂给大语言模型,模型在这些忠实证据的基础上生成最终答案。
整个过程形成了一个闭环:LLM 生成计划 → KG 验证计划 → LLM 基于有效证据推理。结果既有大模型的通用语言理解能力,又有知识图谱的事实保障。
RoG 的代码仓库结构清晰,核心模块位于 src/ 目录下:
src/llms/:大模型调用层,支持 GPT-4、Llama 2 等主流模型,以及在 RoG 训练数据上微调过的专用模型(rmanluo/RoG)。通过 HuggingFace Transformers 加载。src/align_kg/:知识图谱对齐模块,负责将自然语言关系描述映射到 KG 中的具体关系类型。src/joint_training/:联合训练模块,包含两阶段指令微调任务:关系路径规划(planning)和答案推理(reasoning),使用 TRL(Transformer Reinforcement Learning)和 PEFT(LoRA)进行微调。src/qa_prediction/:问答推理引擎,执行检索—推理流程。src/utils/:通用工具集,包括图查询(基于 NetworkX)和数据处理。依赖栈方面,项目使用 transformers==4.32.0 进行模型管理,trl==0.7.1 和 peft==0.5.0 用于指令微调,deepspeed==0.10.1 支持分布式训练加速,datasets==2.14.4 处理数据流,wandb==0.15.8 记录实验指标。值得注意的是 pybind11==2.11.1,说明有 C++ 扩展模块需要编译。
数据集与预训练模型方面,RoG 在两个标准 KGQA 基准数据集上评估:RoG-WebQSP(WebQuestionsSP)和 RoG-CWQ(ComplexWebQuestions),子图从 Freebase 知识图谱中提取。预训练权重托管在 HuggingFace:rmanluo/RoG,运行时代码会自动下载,无需手动处理。
根据论文报告,RoG 在 WebQSP 和 CWQ 数据集上取得了 SOTA(state-of-the-art)性能。但更值得关注的是其可解释性优势:用户不仅能看到最终答案,还能看到模型依据了哪条关系路径得出结论,这对于医疗、法律、金融等高风险场景尤为重要。
局限性同样明显:
RoG 代表了一个重要趋势:将结构化知识融入神经推理。它不是简单地把 KG 作为检索库,而是让 LLM 和 KG 在推理过程中互相约束、互相增强。论文作者后续还推出了 Graph Foundation Model RAG(GFM-RAG)和 Graph-Constrained Reasoning 等延伸工作,持续推进 KG+LLM 融合推理的方向。
从 GitHub 数据看,RoG 获得了 520 stars、65 forks,说明该项目在 KGQA 社区有相当的关注度。作为 ICLR 2024 官方实现,其学术价值和应用参考价值兼具,是研究知识图谱与大模型融合的开发者不可错过的资源。
技术要点速览
| 维度 | 说明 |
|---|---|
| 核心方法 | Planning-Retrieval-Reasoning 三阶段框架 |
| 训练策略 | 两阶段指令微调(planning + reasoning),LoRA 高效微调 |
| 关键依赖 | Transformers、TRL、PEFT、DeepSpeed、NetworkX |
| 基准数据集 | RoG-WebQSP、RoG-CWQ(来源:HuggingFace) |
| 预训练模型 | rmanluo/RoG(HuggingFace 自动下载) |
| 硬件需求 | 推理 ≥12GB VRAM;训练 2× A100 80GB |
| 代码语言 | Python |
| 许可 | MIT |
注:本项目为纯研究代码,无 Web UI 和 Docker 支持,需要手动配置 Python + CUDA 环境。研究人员建议直接基于官方脚本(
scripts/planning.sh、scripts/rog-reasoning.sh、scripts/train.sh)上手。