概要
M3GNetは、材料グラフニューラルネットワークのアーキテクチャと、原子間ポテンシャルおよび物性予測サロゲートモデル向けの実装を提供します。そのグラフ表現には三体相互作用、原子座標、結晶格子行列が含まれており、自動微分によって力と応力を求めることができます。リポジトリには、Materials Projectの構造緩和データを用いて開発された事前学習済みポテンシャルと、モデルの適用および学習に使うツールが用意されています。
計算材料科学のワークフローでは、事前学習済みポテンシャルを結晶構造緩和や分子動力学に利用できます。ドキュメントに記載された構造緩和の例では、pymatgen Structureを入力として受け取り、最終構造とエネルギーを含む軌跡を返します。別のコマンドラインインターフェースでは、結晶構造ファイルを読み込み、緩和後の構造を標準出力またはファイルに書き出せます。分子動力学の例では、軌跡と熱力学ログを保存します。カスタムポテンシャルの学習では、PotentialTrainerに構造、エネルギー、原子ごとの力、任意の応力行列を渡し、検証データを使って学習を停止するエポックを選択します。
このリポジトリはアーカイブ済みで、現在は保守されていません。READMEでは、Deep Graph LibraryとPyTorchに基づくMatGLを後継として挙げています。そのため、主にリファレンス実装として、または既存のM3GNetワークフローを調べる用途に適しています。事前学習済みポテンシャルは、実験測定値ではなくMaterials ProjectのDFT結果を再現することを目的としています。提示されている立方晶の比較では、材料によって差異があり、一部のヨウ化物や希ガスも含まれます。したがって、幅広い元素を扱えることを、均一な精度が得られることとみなすべきではありません。READMEには、例示された学習設定でGPUメモリを相当量必要とすることも記載されています。これはソースに記載された要件であり、独立に検証された互換性情報ではありません。
主な機能
- 三体相互作用、原子座標、3×3の結晶格子行列を組み込み、微分可能な力と応力の計算を可能にする材料グラフアーキテクチャ。
- Materials Projectの構造緩和データで学習された既定の事前学習済み原子間ポテンシャル。Relaxerから利用可能。
- 最終構造とエネルギー軌跡を返す構造緩和機能。CLIは構造ファイルの入力と緩和後構造の出力に対応。
- 温度、アンサンブル、時間刻みを設定でき、軌跡と熱力学ログを出力するMolecularDynamicsワークフロー。
- PotentialTrainerを使い、構造、エネルギー、力、任意の応力を用いてカスタム原子間ポテンシャルを学習する機能。検証データを入力可能。
- 原子間ポテンシャルに加え、材料物性予測サロゲートモデルの開発も想定したアーキテクチャ。
用途
- 評価案:代表的な材料で事前学習済みの結晶構造緩和を評価し、最終構造とエネルギーを適切なDFT参照値と比較する。
- 評価案:選択した結晶で分子動力学を試し、結果を科学的に利用する前に、保存された軌跡と熱力学ログを確認する。
- 評価案:構造、エネルギー、力、任意の応力から対象領域向けの原子間ポテンシャルを学習し、学習に含めなかった材料で評価する。
- 旧版のM3GNetワークフローを調べたり、MatGLへの移行を計画したりする際の参考として、アーカイブ済み実装を利用する。
使い方
- リポジトリのREADME、特にアーカイブに関する通知を確認してください。このリファレンス実装が必要か、推奨されているMatGLへの置き換えのほうがプロジェクトに適しているかを判断します。
- READMEのインストールおよびシステム要件に関する節を確認してください。記載されたパッケージのインストール方法と、該当するプラットフォーム固有の手順に従ってください。アーカイブ済みの依存関係が現在の環境で動作すると想定しないでください。
- pymatgen Structureを用意し、ドキュメントに記載されたRelaxerの例に従ってください。返されたfinal_structureと軌跡のエネルギーを確認します。READMEには、CLIを使ったファイルベースの構造緩和も記載されています。
- 分子動力学では、MolecularDynamicsの例に従い、温度、アンサンブル、時間刻み、記録設定を選択してください。評価案の一環として、軌跡と熱力学ログの出力を確認します。
- カスタム学習では、エネルギーをeV、力をeV/Å、任意の応力をGPa単位で用意し、ドキュメントに記載された応力の符号規約を確認してください。検証用の入力を使用し、APIドキュメントを参照してください。ソースでは、MPF.2021.2.8が事前学習済みポテンシャルの学習データセットとして示されています。