如何快速上手ULTRA:知识图谱链路预测环境安装与零样本推理完整教程(Conda/Pip双方案) 📅 发布时间:2026/8/22 14:33:47 👁 浏览次数: 如何快速上手ULTRA知识图谱链路预测环境安装与零样本推理完整教程Conda/Pip双方案【免费下载链接】ULTRAA foundation model for knowledge graph reasoning项目地址: https://gitcode.com/gh_mirrors/ultra/ULTRAULTRA 是一款面向知识图谱推理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.9PyTorch2.1PyTorch Geometric (PyG)2.4CUDA11.8GPU 用户Mac 可省略完整依赖清单可参考 requirements.txt。2.2 克隆仓库git clone https://gitcode.com/gh_mirrors/ultra/ULTRA cd ULTRA2.3 方案一Conda 快速安装推荐conda install pytorch2.1.0 pytorch-cuda11.8 cudatoolkit11.8 pytorch-scatter2.1.2 pyg2.4.0 -c pytorch -c nvidia -c pyg -c conda-forge conda install ninja easydict pyyaml -c conda-forge2.4 方案二Pip 安装完整命令pip install torch2.1.0 --index-url https://download.pytorch.org/whl/cu118 pip install torch-scatter2.1.2 torch-sparse0.6.18 torch-geometric2.4.0 -f https://data.pyg.org/whl/torch-2.1.0cu118.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-cyaml 配置文件inductive / transductive 场景各有一份--dataset数据集名称内置 57 个知识图谱首次运行自动下载--versioninductive 数据集的版本号如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.pth4.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运行结束后日志会输出验证集与测试集的mrr、hits1、hits10等链路预测指标。配置细节可分别查看 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.pypython 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),仅供参考