🚀 ULTRA
ULTRAは知識グラフ(KG)推論のための基盤モデルです。事前学習された単一のULTRAモデルは、任意のエンティティや関係語彙を持つ任意の多関係グラフでリンク予測タスクを実行します。性能面では、50以上のKGで平均すると、事前学習された単一のULTRAモデルは、各グラフに特化して学習された多くのSOTAモデルよりも0ショット推論モードで優れています。基盤モデルの事前学習 - 微調整パラダイムに従って、事前学習されたULTRAチェックポイントを任意のグラフでゼロショット方式ですぐに実行することができ、またさらなる微調整も可能です。
🚀 クイックスタート
ULTRAは、任意のKGに対して統一的で学習可能な、転移可能な表現を提供します。内部的には、ULTRAはグラフニューラルネットワークと改良版のNBFNetを採用しています。ULTRAは、下流のグラフに特化したエンティティや関係の埋め込みを学習せず、関係間の相互作用に基づいて相対的な関係表現を取得します。
論文: https://arxiv.org/abs/2310.04562
GitHub: https://github.com/DeepGraphLearning/ULTRA
✨ 主な機能
- 任意の多関係グラフでリンク予測タスクを実行可能
- 0ショット推論モードで多くのSOTAモデルより優れた性能
- 事前学習 - 微調整パラダイムに対応
- 任意のKGに対して統一的で学習可能な、転移可能な表現を提供
📦 インストール
- GitHubリポジトリのインストール手順に記載されている依存関係をインストールします。
- このモデルリポジトリをクローンして、
modeling.py
の中の UltraForKnowledgeGraphReasoning
クラスを見つけ、チェックポイントをロードします(必要なすべてのモデルコードもこのモデルリポジトリに含まれています)。
💻 使用例
基本的な使用法
from modeling import UltraForKnowledgeGraphReasoning
from ultra.datasets import CoDExSmall
from ultra.eval import test
model = UltraForKnowledgeGraphReasoning.from_pretrained("mgalkin/ultra_50g")
dataset = CoDExSmall(root="./datasets/")
test(model, mode="test", dataset=dataset, gpus=None)
高度な使用法
from transformers import AutoModel
from ultra.datasets import CoDExSmall
from ultra.eval import test
model = AutoModel.from_pretrained("mgalkin/ultra_50g", trust_remote_code=True)
dataset = CoDExSmall(root="./datasets/")
test(model, mode="test", dataset=dataset, gpus=None)
📚 ドキュメント
チェックポイント
ここでは、HuggingFace上で事前学習された3つのULTRAチェックポイント(すべて約169kパラメータ)を、事前学習データの量によって提供しています。
- ultra_3g と ultra_4g は、githubリポジトリで報告されているPyGモデルです。
- ultra_50g は、50の異なるKG(帰納的および帰結的)で100万ステップ事前学習された新しいULTRAチェックポイントで、任意の未知の下流KGでの性能を最大化するために学習されています。
性能
ultra-3gとultra-4gの平均ゼロショット性能
モデル |
帰納的 (e) (18グラフ) 平均MRR |
帰納的 (e) (18グラフ) 平均Hits@10 |
帰納的 (e,r) (23グラフ) 平均MRR |
帰納的 (e,r) (23グラフ) 平均Hits@10 |
帰結的 (16グラフ) 平均MRR |
帰結的 (16グラフ) 平均Hits@10 |
ULTRA (3g) PyG |
0.420 |
0.562 |
0.344 |
0.511 |
0.329 |
0.479 |
ULTRA (4g) PyG |
0.444 |
0.588 |
0.344 |
0.513 |
WIP |
WIP |
ULTRA (50g) PyG (50のKGで事前学習) |
0.444 |
0.580 |
0.395 |
0.554 |
0.389 |
0.549 |
特定のグラフでULTRAを微調整すると、平均してMRRとHits@10の両方でさらに10%の相対的な性能向上が得られます。詳細な比較は論文を参照してください。
ULTRA 50gの性能
ULTRA 50gは50のグラフで事前学習されているため、これらのグラフに対してゼロショット評価プロトコルを適用することはできません。ただし、各データセットで最初から学習された教師ありSOTAモデルと比較することができます。
モデル |
帰結的グラフ (16) の平均MRR |
帰結的グラフ (16) の平均Hits@10 |
教師ありSOTAモデル |
0.371 |
0.511 |
ULTRA 50g (単一モデル) |
0.389 |
0.549 |
つまり、あなたのグラフで大規模なKG埋め込みモデルを学習する代わりに、ULTRA(いずれかのチェックポイント)を実行することを検討すると、すでに性能が高い可能性があります🚀
有用なリンク
問題の報告は、ULTRAの公式GitHubリポジトリで行ってください。
📄 ライセンス
このプロジェクトはMITライセンスの下でライセンスされています。