如何快速上手ULTRA:知识图谱链路预测环境安装与零样本推理完整教程(Conda/Pip双方案)
2026/8/22 14:33:35 网站建设 项目流程

如何快速上手ULTRA:知识图谱链路预测环境安装与零样本推理完整教程(Conda/Pip双方案)

【免费下载链接】ULTRAA foundation model for knowledge graph reasoning项目地址: https://gitcode.com/gh_mirrors/ultra/ULTRA

ULTRA 是一款面向知识图谱推理(Knowledge Graph Reasoning)的基础模型(Foundation Model),单个预训练模型即可在任意多关系图上完成零样本链路预测,无需针对每个图谱单独训练。本文将带你用 10 分钟完成环境安装(Conda / Pip 双方案)、选对预训练检查点,并用一条命令跑通零样本推理。

一、先搞懂:ULTRA 是什么?

  • 统一、可学习、可迁移:ULTRA 不学习特定图谱的实体/关系嵌入,而是基于关系间交互获得「相对关系表示」,因此可以零样本迁移到任何全新图谱。
  • 零样本即 SOTA 级:在 50+ 知识图谱上的平均表现中,零样本推理模式即可超过许多在单一图谱上专门训练的 SOTA 模型。
  • 预训练-微调范式:既可以加载检查点直接推理,也可以在你的图谱上继续微调,灵活度极高。

核心模型实现位于 ultra/models.py,底层采用改造版的 NBFNet 消息传递网络(见 ultra/base_nbfnet.py)。

二、环境安装:Conda 与 Pip 双方案

2.1 环境要求一览

依赖项推荐版本
Python3.9
PyTorch2.1+
PyTorch Geometric (PyG)2.4+
CUDA11.8+(GPU 用户;Mac 可省略)

完整依赖清单可参考 requirements.txt。

2.2 克隆仓库

git clone https://gitcode.com/gh_mirrors/ultra/ULTRA cd ULTRA

2.3 方案一:Conda 快速安装(推荐)

conda install pytorch=2.1.0 pytorch-cuda=11.8 cudatoolkit=11.8 pytorch-scatter=2.1.2 pyg=2.4.0 -c pytorch -c nvidia -c pyg -c conda-forge conda install ninja easydict pyyaml -c conda-forge

2.4 方案二:Pip 安装完整命令

pip install torch==2.1.0 --index-url https://download.pytorch.org/whl/cu118 pip install torch-scatter==2.1.2 torch-sparse==0.6.18 torch-geometric==2.4.0 -f https://data.pyg.org/whl/torch-2.1.0+cu118.html pip install ninja easydict pyyaml

⚙️提示:项目内置自定义rspmm关系消息传递算子(源码见 ultra/rspmm/),首次运行时会自动编译并缓存。GPU 编译需要 CUDA 11.8+ 工具链中的nvcc,建议设置CUDA_HOME(如export CUDA_HOME=/usr/local/cuda-11.8/)以避免编译报错。

三、选择预训练检查点:零样本推理的关键

仓库ckpts目录自带 4 个官方预训练检查点,开箱即用:

检查点说明
ckpts/ultra_3g.pth在 FB15k237 / WN18RR / CoDExMedium 上预训练 80 万步
ckpts/ultra_4g.pth在 3 图基础上加入 NELL995,通用场景首选
ckpts/ultra_50g.pth在 50 个图上预训练,大图零样本推理首选
ckpts/ultraquery.pth面向复杂逻辑查询(UltraQuery)的专用检查点

💡 检查点非常小巧(每个仅 2 MB),加载秒级完成。在较大图谱上做链路预测时,优先选用ultra_50g.pth

四、零样本链路预测:一条命令跑通

4.1 核心参数速览

推理入口为 script/run.py,零样本推理 = 加载检查点 +--epochs 0

  • -c:yaml 配置文件(inductive / transductive 场景各有一份)
  • --dataset:数据集名称(内置 57 个知识图谱,首次运行自动下载)
  • --version:inductive 数据集的版本号,如v1
  • --epochs 0:零样本推理模式(设为大于 0 即变为微调)
  • --gpusnull表示 CPU 运行,[0]表示单卡 GPU
  • --ckpt:检查点的完整路径

4.2 示例一:CPU 运行归纳式(Inductive)零样本推理

python script/run.py -c config/inductive/inference.yaml \ --dataset FB15k237Inductive --version v1 \ --epochs 0 --bpe null --gpus null \ --ckpt /path/to/ULTRA/ckpts/ultra_4g.pth

4.3 示例二:GPU 运行传递式(Transductive)零样本推理

python script/run.py -c config/transductive/inference.yaml \ --dataset CoDExSmall --epochs 0 --bpe null \ --gpus [0] --ckpt /path/to/ULTRA/ckpts/ultra_4g.pth

运行结束后,日志会输出验证集与测试集的mrrhits@1hits@10等链路预测指标。配置细节可分别查看 config/inductive/inference.yaml 和 config/transductive/inference.yaml。

⚠️注意:所有数据集在首次运行时自动下载。如果计划多卡训练,建议先用单卡跑一次以提前触发下载,避免竞态问题。

五、进阶玩法:微调、批量评测与 UltraQuery 逻辑查询

  • 微调:把--epochs改为大于 0 即可在目标图谱上微调,例如--epochs 20 --bpe 1000
  • 批量评测:script/run_many.py 支持一次指定多个数据集顺序评测,并自动生成 CSV 结果文件:
python script/run_many.py -c /path/to/config/inductive/inference.yaml --gpus [0] \ --ckpt /path/to/ckpts/ultra_4g.pth \ -d FB15k237Inductive:v1,FB15k237Inductive:v2,FB15k237Inductive:v3,FB15k237Inductive:v4
  • 复杂逻辑查询(UltraQuery):借助 script/run_query.py 在任意知识图谱上执行多跳逻辑查询,使用ultraquery.pth检查点时设置--threshold 0.0(实现见 ultra/ultraquery.py):
python script/run_query.py -c config/ultraquery/transductive.yaml \ --dataset FB15k237LogicalQuery --epochs 0 --bpe null \ --gpus [0] --bs 32 --threshold 0.0 \ --ultra_ckpt null --qe_ckpt /path/to/ckpts/ultraquery.pth
  • 预训练自己的模型:用 script/pretrain.py 配合 config/transductive/pretrain_3g.yaml 在多图谱混合上训练。
  • 接入自己的 KG:继承 ultra/datasets.py 中的TransductiveDataset/InductiveDataset基类并填入数据文件链接,即可立即对其做零样本推理或微调。

六、常见问题快速排查

问题解决方案
rspmm编译失败确认已安装 CUDA 11.8+ 工具链(含nvcc)并正确设置CUDA_HOME
无 GPU 或 Mac 环境跳过 CUDA 相关依赖,运行时设置--gpus null
大图零样本推理效果一般换用ultra_50g.pth检查点
用原版检查点跑 UltraQuery 结果异常--threshold调到 0.8 或更高
GPU 显存不足(OOM)调小 yaml 配置中的train.batch_size(见 config/inductive/inference.yaml)

小结

按「克隆仓库 → 二选一安装环境 → 选对检查点 → 一条命令推理」的路径,10 分钟即可在任意知识图谱上体验 ULTRA 的零样本链路预测能力;需要更强效果时,再按需微调即可。

【免费下载链接】ULTRAA foundation model for knowledge graph reasoning项目地址: https://gitcode.com/gh_mirrors/ultra/ULTRA

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询