異種グラフをサポートし、非常に使いやすいグラフニューラルネットワークライブラリであるGraphGymを統合したPyGがバージョン2.0にアップデートされました。

異種グラフをサポートし、非常に使いやすいグラフニューラルネットワークライブラリであるGraphGymを統合したPyGがバージョン2.0にアップデートされました。

最も人気があり、広く使用されている GNN ライブラリ PyG (PyTorch Geometric) のバージョン 2.0 が利用可能になりました。新しいバージョンでは、包括的な異種グラフ サポート、GraphGam、その他多くの機能が提供されます。この一連の改善により、ユーザー エクスペリエンスが向上します。

PyTorch Geometric (PyG) は、構造化データに関連するさまざまなアプリケーション用のグラフ ニューラル ネットワーク (GNN) を記述およびトレーニングするために PyTorch 上に構築されたライブラリです。 PyG は、機械学習の研究者と機械学習ツールキットの初心者の両方にとって使いやすいものです。

[[423998]]

機能と機能の面では、PyG は使いやすく統合された API を備えているため、ユーザーはグラフ ニューラル ネットワークの基礎となるメカニズムの実装と実行に費やす時間を短縮できます。カスタム GNN モデルのトレーニングには、わずか 10 ~ 20 行のコードしか必要ありません。 PyG は、多数の SOTA GNN アーキテクチャ、トレーニングおよびスケーラビリティ プロセスをカバーしており、ユーザー独自のユース ケースに合わせて簡単に拡張したり、独自の GNN 研究を実施したりできます。

さらに、PyG の新しい GraphGym を使用すると、ユーザーは GNN 実験を簡単に再現し、何千もの GNN 実験を実行および分析し、カスタム モジュールを GNN 学習パイプラインに埋め込むことができます。

最近、PyG コアリーダーの Matthias Fey が、PyG 2.0 バージョンがリリースされたことを発表しました。新しいバージョンでは、包括的な異種グラフ サポート、GraphGam、その他多くの機能が提供されます。

PyG 2.0 の詳細アドレス: https://github.com/pyg-team/pytorch_geometric/releases/tag/2.0.0

PyG 2.0 の新機能

PyG 2.0 は、複雑な異種グラフのサポート、GraphGym 統合、およびその他の新機能を提供する新しいバージョンです。

PyG 2.0 では完全な異種グラフ サポートが利用できます。異種グラフのサポートには、データ ストレージ レイヤーの完全な書き換え (下位互換性は維持)、異種グラフの変換、近傍サンプリングによるリレーショナル データ読み込みルーチン、異種 GNN モデル/例の完全なセットが含まれます。

ハイライト

異種グラフ ストレージ: 異種グラフを専用の data.HeteroData クラスに保存できるようになりました。

  1. torch_geometric.data から HeteroDataをインポート
  2. データ = HeteroData()
  3. # 単一の特徴マトリックスを保持する 2 つのノード タイプ「paper」「author」を作成します。
  4. データ[ '論文' ].x = torch.randn(論文数, 論文の特徴数)
  5. データ[ 'author' ].x = torch.randn(num_authors, num_authors_features)
  6. # グラフの接続性を保持するエッジ タイプ ( 「paper」「written_by」「author」 ) を作成します。
  7. data[ '論文' , '執筆者' , '著者' ].edge_index = ... # [ 2 , num_edges]

異種ミニバッチロード: loader.DataLoader と loader.NextorLoader を使用して、それぞれ多数の小さなグラフと単一の巨大なグラフを変換することにより、異種グラフをミニバッチに変換できます。これらのローダーは、同種グラフと異種グラフの両方を処理できるようになりました。

  1. torch_geometric.loader から DataLoaderをインポートします
  2. ローダー = DataLoader(heterogeneous_graph_dataset、batch_size= 32 、shuffle=True)
  3. torch_geometric.loader から NeighborLoaderをインポートします
  4. ローダー = NeighborLoader(heterogeneous_graph, num_neighbors=[ 30 , 30 ], batch_size= 128 ,
  5. input_nodes=( 'paper' , data[ 'paper' ].train_mask), shuffle=True)

異種グラフ ニューラル ネットワーク: nn.to_hetero、nn.to_hetero_with_bases を介して、同種 GNN から異種 GNN を簡単に作成できるようになりました。これらのプロセスは、既存の GNN モデルを取得し、そのメッセージ機能を複製して、さまざまなノードとエッジ タイプを考慮します。

  1. torch_geometric.nn から SAGEConvをインポートし、to_hetero をインポートします。
  2. クラスGNN(torch.nn.Module):
  3. def __init__(hidden_​​channels, out_channels):
  4. スーパー().__init__()
  5. self.conv1 = SAGEConv((- 1 , - 1 ), 隠しチャンネル)
  6. self.conv2 = SAGEConv((- 1 , - 1 ), out_channels)
  7. def forward(self, x, edge_index):
  8. x = self.conv1(x, edge_index).relu()
  9. x = self.conv2(x, エッジインデックス)
  10. xを返す
  11. モデル = GNN(hidden_​​channels= 64 、out_channels=dataset.num_classes)
  12. モデル = to_hetero(モデル、data.metadata()、aggr= 'sum' )

GraphGym で実験を管理する

PyG 2.0 は torch_geometric.graphgym を介して GraphGym を正式にサポートするようになりました。要約すると、GraphGym は、高度にモジュール化されたパイプラインを介して構成ファイルからグラフ ニューラル ネットワークを設計および評価するためのプラットフォームです。

  • GraphGym は、標準化された GNN の実装と評価を学習し始めるのに最適なプラットフォームです。
  • GraphGym は、何千もの GNN アーキテクチャを並行して試し、特定のタスクに最適な設計を見つけるためのシンプルなインターフェースを提供します。
  • GraphGym を使用すると、ハイパーパラメータ検索を簡単に実行し、どの設計選択が優れているかを視覚化できます。

主な変更点

datasets.AMiner データセットは、data.HeteroData オブジェクトを返すようになりました。transforms.AddTrainValTestMask は transforms.RandomNodeSplit に置き換えられました。異種グラフをサポートするために data.Data のストレージ レイアウトが大幅に変更されたため、処理済みのデータセットは、ルート/処理済みフォルダーを削除して再処理する必要があります。

さらに、data.Data.__cat_dim__ と data.Data.__inc__ には追加の入力パラメータが必要になります。

  1. def __cat_dim__(self, キー, 値, *args, **kwargs):
  2. 合格
  3. def __inc__(self, キー, 値, *args, **kwargs):
  4. 合格

カスタム data.Data オブジェクトで __cat_dim__ または __inc__ を変更する場合は、必ず上記の変更を適用してください。

さらなる変更については、元のプロジェクトを参照してください。

コアチームメンバー

PyG コア チームには、ドルトムント工科大学のグラフ機械学習博士課程 4 年生である Matthias Fey 氏、ドルトムント工科大学の博士課程学生である Jan Eric Lenssen 氏 (コア コントリビューター)、グラフ ネットワーク分野の大物でありスタンフォード大学のコンピューター サイエンスの准教授である Jure Leskovec 氏 (アドバイザー) を含む合計 6 人のメンバーがいます。

[[423999]]

左から右へ:マティアス・フェイ、ヤン・エリック・レンセン、ユレ・レスコベック。

さらに、中国人メンバーは3名で、スタンフォード大学コンピュータサイエンスの博士課程4年生であるJiaxuan You氏(コアリーダー)、スタンフォード大学コンピュータサイエンスの博士課程の学生であるRex Ying氏(コアコントリビューター、2022年にイェール大学の助教授として着任予定)、カーネギーメロン大学ハンスカレッジの博士課程3年生であるYue Zhao氏(コアコントリビューター)である。

[[424000]]

左から右へ:You Jiaxuan、Rex Ying、Zhao Yue。

最近、趙悦氏は知乎でPyG 2.0バージョンの設計とアップグレードプロセスに参加した経験を共有しました。興味のある読者は参考にしてください。

知乎リンク: https://www.zhihu.com/pin/1420674585365196800

<<:  ビジネス開発における感情AIの重要性

>>:  ボーダーライン上の質問:テクノロジー企業はAIアルゴリズムを使って従業員の採用と解雇を行っている

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

人工知能と機械学習は、組織がデジタルシステムを運用する上でますます重要になる

[[280794]]いくつかの困難や障害にもかかわらず、多くの企業がデジタル変革プロジェクトで大きな...

...

...

...

...

...

人工知能がインターネットのパフォーマンスに与える影響

[[344519]]インテリジェント エッジ プラットフォームである Akamai のインスピレーシ...

データ ガバナンスは AI 疲労の問題を解決できるか?

データ ガバナンスと AI 疲労は 2 つの異なる概念のように聞こえるかもしれませんが、この 2 つ...

Googleは、生成AI製品のユーザーを著作権侵害の申し立てから保護することを約束

Googleは10月13日、現地時間公開のブログ投稿で、自社の生成AI製品のユーザーは当局によって保...

建設技術におけるAIは潜在性があるが、まだ現実にはなっていない

建設業界がテクノロジーの導入において他の業界に遅れをとっているのは周知の事実です。 2018年の米国...

...

...

2020年のIEEEフェローリストが発表:約30%が中国人で、葉潔平、張同、周博文、熊慧などのAI専門家が選出

本日、IEEE 2020フェローのリストが発表されました。統計によると、280人以上が選出され、その...

...

スループットが5倍に向上、バックエンドシステムとフロントエンド言語を共同設計するLLMインターフェースが登場

大規模言語モデル (LLM) は、複数の連鎖生成呼び出し、高度なプロンプト技術、制御フロー、および外...