项目介绍:Reasoning on Graphs (RoG)
Reasoning on Graphs(简称 RoG)项目提供了一种利用大语言模型(LLMs)和知识图谱(KGs)相结合的方法来实现真实且可解释的推理。该项目实现了一个规划-检索-推理框架,通过结合 KGs 来生成关系路径作为推理计划。这些计划用于从 KGs 中检索有效的推理路径,再由 LLMs 执行真实的推理并生成可解释的结果。
项目最新动态
如果你对知识图谱与大语言模型相结合的推理感兴趣,可以查看我们最新的工作:图约束推理(Graph-constrained Reasoning)。
环境依赖
在开始使用之前,请确保安装项目所需的依赖。可以通过以下命令安装:
pip install -r requirements.txt
预训练模型权重
RoG 项目的代码会自动从 Hugging Face 平台下载所需的模型权重。你也可以手动下载这些预训练模型 RoG 模型权重。
数据集
项目会自动从 Hugging Face 平台下载所需的数据集:
此外,我们使用 Freebase 提取子图,相关代码可以在 此处 找到。
推理过程
推理过程分为以下步骤:
步骤 1: 规划(生成关系路径)
运行以下命令以生成关系路径:
./scripts/planning.sh
生成的规则路径将保存在 results/gen_rule_path/{dataset}/{model_name}/{split}
步骤 2: 推理(使用 RoG 生成答案)
运行以下命令以进行推理并生成答案:
./scripts/rog-reasoning.sh
答案将保存在 results/KGQA/{dataset}/{model_name}/{split}
即插即用推理
该功能允许使用不同的大语言模型进行推理。请注意,若要使用 ChatGPT,需要在 .env
文件中设置你的 OpenAI 密钥。
生成可解释的推理示例
可运行以下命令生成可解释的推理示例:
python scripts/interpretable_example.py
模型训练
训练数据集
可以从 RoG_train_data.tar.tz 下载处理过的数据集,并将其解压到 datasets/
文件夹下。
训练过程
使用 2 个 A100-80GB 的 GPU 来训练 RoG 模型。运行以下命令来开始训练过程:
./scripts/train.sh
实验结果
项目的实验结果展示于下方,包括使用不同方法的效果对比、知识缺乏的处理以及幻觉问题的应对等。(具体图片可参考原项目的图片资源)
引用
如果您觉得该项目对您有所帮助,请在相关工作中引用以下论文:
@inproceedings{luo2024rog,
title={Reasoning on Graphs: Faithful and Interpretable Large Language Model Reasoning},
author={Luo, Linhao and Li, Yuan-Fang and Haffari, Gholamreza and Pan, Shirui},
booktitle={International Conference on Learning Representations},
year={2024}
}
该项目为研究人员和开发者提供了一个强大的工具,用于探索和实现知识图谱与大语言模型结合的推理过程,旨在为构建更真实、更具解释性的人机交互应用奠定基础。