
ホームページ|論文|ドキュメント|ディスカッションフォーラム|データセット|中文
COGDLは、研究者と開発者がグラフドメインのノード分類、グラフ分類、およびその他の重要なタスクのベースラインまたはカスタマイズされたモデルを簡単にトレーニングおよび比較できるグラフディープラーニングツールキットです。
次のように、COGDLの貢献を要約します。
cogdl論文はwww 2023で受け入れられました。www2023で私たちを見つけてください!また、Graphmae、Graphmae2、Bgrlなどのグラフ自己監視学習の例を追加する新しいV0.6リリースもリリースします。
このリンクには、COGDLチームが提供する無料のGNNコースが存在します。また、中国のユーザー向けのディスカッションフォーラムも提供しています。
新しいV0.5.3リリースは、 textIT {fp16 = true}を設定することにより、混合精度トレーニングをサポートし、Jittorによって書かれた基本的な例を提供します。また、ドキュメントのチュートリアルを更新し、一部のデータセットのリンクをダウンロードし、オペレーターの潜在的なバグを修正します。
新しいV0.5.2リリースは、OGBN製品のGNN例を追加し、GEOMデータセットを更新します。また、設定デバイス、推論にCPUを使用するなど、いくつかの潜在的なバグを修正します。
新しいV0.5.1リリースは、 SPMM(CPUバージョン)やScatter_Max(CUDAバージョン)を含む高速演算子を追加します。また、このリンクに記載されているノード分類用のデータセットもたくさん追加します。 ?
新しいV0.5.0は、 GNNの統一トレーニングループを設計および実装します。 DataWrapperを紹介して、トレーニング/検証/テストデータとModelWrapperの準備を支援して、トレーニング/検証/テストの手順を定義します。 ?
新しいV0.4.1リリースは、ディープGNNの実装と推奨タスクを追加します。また、埋め込みと推奨を生成するための新しいパイプラインもサポートしています。 KDD 2021の午前10時30分から午前12時、8月14日(シンガポールタイム)にチュートリアルに参加してください。詳細については、https://kdd2021graph.github.io/をご覧ください。 ?
新しいV0.4.0リリースは、データストレージ( DataからGraphまで)をリファクタリングし、より高速な演算子を提供してGNNトレーニングを高速化します。また、グラフに多くの自己監視学習方法も含まれています。ところで、8月にKDD 2021のチュートリアルを提供することを発表できてうれしいです。詳細については、このリンクをご覧ください。 ?
COGDLは、専門家(MOE)の混合でGNNモデルをサポートしています。 FastMoeをインストールして、今すぐCOGDLでMoe GCNを試すことができます!
新しいV0.3.0リリースは、GNNトレーニングをスピードアップするための高速SPMMオペレーターを提供します。また、Arxivで最初のバージョンのCOGDLペーパーをリリースします。あなたは私たちのSlackに参加して議論することができます。 ???
新しいV0.2.0リリースには、すべての実験とアプリケーションの使いやすいexperimentとpipeline APIが含まれます。 experiment APIは、ハイパーパラメーターの検索のAutoml機能をサポートしています。このリリースは、モデル推論のためのOAGBert APIも提供します( OAGBert 、ラボによって大規模なアカデミックコーパスでトレーニングされています)。一部の機能とモデルは、オープンソースコミュニティによって追加されます(すべての貢献者のおかげか?)。
新しいV0.1.2リリースには、トレーニング前タスク、多くの例、OGBデータセット、いくつかの知識グラフ埋め込み方法、およびいくつかのグラフニューラルネットワークモデルが含まれています。 COGDLのカバレッジは80%に増加します。 TrainerやSamplerなどのいくつかの新しいAPIが開発され、テストされています。
新しいV0.1.1リリースには、ナレッジリンク予測タスク、多くの最先端モデル、およびoptunaサポートが含まれています。また、COGDLリリースに関する中国のWeChatの投稿もあります。
Pytorch(https://github.com/pytorch/pytorch#installation)をインストールするには、こちらの手順に従ってください。
Pytorchがインストールされている場合、次のようにPIPを使用してCOGDLをインストールできます。
pip install cogdlソースからインストール:
pip install git+https://github.com/thudm/cogdl.gitまたは、リポジトリをクローンして、次のコマンドでインストールします。
git clone [email protected]:THUDM/cogdl.git
cd cogdl
pip install -e . COGDL API、特にexperimentを通じてあらゆる種類の実験を実行できます。実験には独自のデータセットとモデルを使用することもできます。 Quick_start.pyにQuickStartの例があります。より多くの例が例/に記載されています。
from cogdl import experiment
# basic usage
experiment ( dataset = "cora" , model = "gcn" )
# set other hyper-parameters
experiment ( dataset = "cora" , model = "gcn" , hidden_size = 32 , epochs = 200 )
# run over multiple models on different seeds
experiment ( dataset = "cora" , model = [ "gcn" , "gat" ], seed = [ 1 , 2 ])
# automl usage
def search_space ( trial ):
return {
"lr" : trial . suggest_categorical ( "lr" , [ 1e-3 , 5e-3 , 1e-2 ]),
"hidden_size" : trial . suggest_categorical ( "hidden_size" , [ 32 , 64 , 128 ]),
"dropout" : trial . suggest_uniform ( "dropout" , 0.5 , 0.8 ),
}
experiment ( dataset = "cora" , model = "gcn" , seed = [ 1 , 2 ], search_space = search_space )python scripts/train.py --dataset example_dataset --model example_modelを使用して、example_dataでexample_modelを実行することもできます。
cora citeseerようなスペースを持つデータセットのリストになります。サポートされているデータセットには、「Cora」、「Citeseer」、「Pumbed」、「PPI」、「Wikipedia」、「BlogCatalog」、「Flickr」が含まれます。より多くのデータセットは、COGDL/データセットにあります。gcn gatなどのモデルのリストになります。サポートされているモデルには、「GCN」、「GAT」、「グラフセージ」、「Deepwalk」、「node2vec」、「hope」、「grarep」、「netMf」、 'netsmf'、 'grone'が含まれます。 COGDL/モデルには、より多くのモデルがあります。たとえば、CoraデータセットでGCNとGATを実行したい場合、5つの異なる種子を使用してください。
python scripts/train.py --dataset cora --model gcn gat --seed 0 1 2 3 4予想出力:
| 変異体 | test_acc | val_acc |
|---|---|---|
| ( 'cora'、 'gcn') | 0.8050±0.0047 | 0.7940±0.0063 |
| ( 'cora'、 'gat') | 0.8234±0.0042 | 0.8088±0.0016 |
上記の手順で物事を機能させるのに苦労している場合は、お気軽に問題を開いてください。 24時間以内に返信が期待できます。
パフォーマンスの良いアルゴリズムがあり、より多くの人々を支援するためにツールキットにそれを実装することをいとわない場合は、最初に問題を開いてからプル要求を作成できます。詳細情報はこちらにあります。
変更をコミットする前に、最初にpre-commit install実行して、 black and flake8を使用してコード形式とスタイルをチェックするためにGitフックをセットアップしてください。その後、 pre-commit git commitで自動的に実行されます! pre-commitの詳細については、こちらをご覧ください。
CORAデータセットで複数のGPU、GCNとGATで複数のGPUを使用してサーバーで並列実験を実行する場合:
$ python scripts/train.py --dataset cora --model gcn gat --hidden-size 64 --devices 0 1 --seed 0 1 2 3 4予想出力:
| 変異体 | acc |
|---|---|
| ( 'cora'、 'gcn') | 0.8236±0.0033 |
| ( 'cora'、 'gat') | 0.8262±0.0032 |
モデルがローカルで正常に動作しているにもかかわらず、「カバレッジが減少した」ため、プルリクエストが拒否された理由を混乱させるかもしれません。これは、本質的に追加したコードの余分な行を実行する単体テストを含めていないためです。 Githubが使用するTravis CIサービスは、コミットしたコードですべての単体テストを実施し、単体テストによってチェックされたコードの数をチェックし、コードの大部分がチェックされていない場合(カバレッジが不十分)、プルリクエストは拒否されます。
では、どのようにユニットテストを行いますか?
models/nn/abcgnn.pyにGNNモデルを実装したとします。次に、スクリプトtests/tasks/test_node_classification.py (またはモデルが行う関連タスク)内にユニットテストを追加する必要があります。tests/tasks/test_node_classification.pyを変更した後、 models/nn/abcgnn.pyと一緒にコミットすると、プルリクエストが合格するはずです。 COGDLは、Tsinghua、Zju、Damo Academy、Zhipu.aiによって開発および維持されています。
コア開発チームには、[email protected]にアクセスできます。
私たちのコードまたは結果があなたの研究に役立つ場合は、私たちの論文を引用してください。
@inproceedings{cen2023cogdl,
title={CogDL: A Comprehensive Library for Graph Deep Learning},
author={Yukuo Cen and Zhenyu Hou and Yan Wang and Qibin Chen and Yizhen Luo and Zhongming Yu and Hengrui Zhang and Xingcheng Yao and Aohan Zeng and Shiguang Guo and Yuxiao Dong and Yang Yang and Peng Zhang and Guohao Dai and Yu Wang and Chang Zhou and Hongxia Yang and Jie Tang},
booktitle={Proceedings of the ACM Web Conference 2023 (WWW'23)},
year={2023}
}