異種グラフをサポートし、非常に使いやすいグラフニューラルネットワークライブラリである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アルゴリズムを使って従業員の採用と解雇を行っている

推薦する

生成型 AI が従来のデータベースを破壊する 10 の方法

ピーター・ウェイナーノアが編集生成 AI の華やかさにもかかわらず、この新しい時代における最大の変化...

...

人工知能の次の段階として、なぜインターネットの巨人に期待すべきなのでしょうか?

過去10年間を振り返ると、人工知能の進歩は「目覚ましい」ものと言えます。特に2015年にAlphaG...

2024 年にソフトウェア開発の生産性を向上させる 10 のベスト AI ツール

2023年までに、AIは複数の業界で広く採用されるようになります。 2024 年までに、ソフトウェア...

工業情報化省がロボット産業の「第14次5カ年計画」を発表:2035年までに指定規模以上の製造業でデジタル化が普及する

12月28日、工業情報化部など各部門は「第14次5カ年計画:インテリジェント製造業発展計画」(以下、...

...

マルチモーダル世界モデルで未来を予測!カリフォルニア大学バークレー校の新しいAIエージェントは人間の言語を正確に理解し、SOTAを刷新する

現在、強化学習ベースのエージェントは、「青いレンガを拾う」などの指示を簡単に実行できます。しかし、ほ...

AIOps の歴史、用途、そして将来

[[413083]]今日のテクノロジー システムの管理と運用は人間だけでは管理するには複雑すぎるため...

画像分類を40ナノ秒で完了、ニューラルネットワークを内蔵した画像センサーがNatureに掲載

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

Timsort アルゴリズムと Yutu 月面探査車のバグを見つけるにはどうすればよいでしょうか?

0×00 背景形式手法は、私たちのほとんどにとっては非常に高度なものです。せいぜい授業で聞いたこと...

10年以内にAGI?次世代のジェミニは環境を感知できるのか?ディープマインドCEOハサビス氏がAIについて語る

「今後10年でAGIのようなシステムが登場しても驚かないだろう」と、グーグル・ディープマインドの共同...

Pythonとdlibを使用した顔検出

「Dlib は、高度なソフトウェアを作成するための機械学習アルゴリズムとツールの最新の C++ ツー...

ビッグニュース! Meta が「次世代」の大型モデル Llama 2 をオープンソース化、Zuckerberg: 無料かつ商用利用可能!

今朝早く、私たちがまだ寝ている間に、海の向こうの Meta が大きなことをしました。Llama 2 ...

2024 年のクラウド コンピューティング セキュリティの 5 つのトレンドと進歩

クラウドの世界を探ってみましょう。ただし、単なるクラウドではなく、未来のクラウドです。具体的には、2...

ザッカーバーグは涙ながらに300人のチームを解散させた! Meta、Google、その他の大手企業によるMetaverse OSをめぐる戦いが正式に始まったのでしょうか?

Appleの春のカンファレンスまで残り4日となりました。カラフルなAR招待状が届きました。これはク...