概要
GemNetは、分子全体のエネルギーと各原子に作用する力の予測を目的とした、幾何学的メッセージパッシングニューラルネットワークです。このリポジトリが提供するのはPyTorch参照実装であり、元のTensorFlow 2実装ではありません。READMEでは後者が別途リンクされています。このプロジェクトは、モデルをNeurIPS 2021の論文と、分子動力学におけるグラフニューラルネットワークポテンシャルを検討した後続の論文に関連付けています。
このリポジトリは、モデルの学習から分子の予測およびシミュレーション例までのワークフローをサポートします。ユーザーは config.yaml または config_seml.yaml を使って作業を設定します。train.ipynb では学習を説明し、predict.ipynb ではASE経由で読み込んだ分子の予測を示します。文書に記載された出力は分子エネルギーと原子に作用する力です。出典の抜粋には、完全な入力スキーマ、対応する化学系の範囲、または学習データの要件は記載されていません。クラスターでのワークフロー向けには、train_seml.py がSacredおよびSEMLと学習を統合し、ase_example.ipynb が分子動力学での使用例を示します。
追加の準備手順として、初期化時の活性化スケーリングがあります。ユーザーは提供されている scaling_factors.json を選ぶか、fit_scaling.py を使って係数を計算できます。READMEによると、これらの係数はGemNetの各バリアントで共有されます。抜粋から確認できるのはこれらのワークフロー構成要素であり、数値精度の結果、実行時間の測定値、または実証されたシミュレーション安定性の限界は示されていません。したがって、利用を検討するユーザーは、特定の用途で検証済みとみなすのではなく、自身の分子とシミュレーション条件に対する適合性を評価してください。
主な機能
- 幾何学的メッセージパッシングニューラルネットワークを用いて、分子全体のエネルギーと個々の原子に作用する力を予測します。
- PyTorch参照実装を提供し、元のTensorFlow 2実装は別途リンクされています。
- 学習用の `train.ipynb` と、ASE経由で読み込んだ分子の予測用 `predict.ipynb` を含みます。
- SacredとSEMLを併用する `train_seml.py` により、クラスターでの学習ワークフローをサポートします。
- 分子動力学シミュレーションでGemNetを使う方法を示す `ase_example.ipynb` を含みます。
- 事前計算済みの活性化スケーリング係数 `scaling_factors.json` と、`fit_scaling.py` を使った計算ワークフローを提供します。
用途
- 評価案:ASEを用いた予測ノートブックと適切な参照結果を使い、代表的な分子についてエネルギーと原子に作用する力の予測を評価する。
- 評価案:分子エネルギーと原子に作用する力を学習する研究に合わせて、学習ノートブックと設定ファイルを調整する。
- 評価案:ASE分子動力学ワークフローにおけるGemNetの役割を調べ、想定するシミュレーション条件下での挙動を確認する。
- 評価案:クラスター上のモデル学習実験を整理するうえで、SacredとSEMLによる学習ワークフローが適切か評価する。
使い方
- リポジトリのREADMEを読み、PyTorchのワークフローと、別途リンクされたTensorFlow 2実装との違いを確認してください。採用前にコードライセンスを確認してください。
- パッケージ設定とリポジトリの依存関係を確認してください。設定にはPython
>=3.8と記載されていますが、出典の抜粋からはテスト済み環境を確認できません。 - ノートブックのワークフローでは
config.yamlを、文書に記載されたクラスター学習の経路ではconfig_seml.yamlを調整してください。リポジトリのtrain.ipynbまたはtrain_seml.pyを参照してください。 - READMEの説明に従い、提供されている
scaling_factors.jsonを選ぶか、fit_scaling.pyを使って初期化用のスケーリング係数を計算してください。 predict.ipynbを使い、ASE経由で読み込んだ分子の予測を確認してください。シミュレーションが目的であれば、次にase_example.ipynbを調べてください。評価の手順として、結果を信頼する前に、出力を適切な参照データと比較してください。