概要
MEGNet は、分子および結晶の物性を学習する MatErials Graph Networks を実装しています。Materials Virtual Lab が開発したこのリポジトリには、事前学習済みの予測モデルと、グラフネットワークの学習およびカスタマイズ用ツールが含まれています。現在は非推奨です。README には、今後更新されず、元の TensorFlow 実装の参照用として維持されると記載されており、後継として matgl が挙げられています。
このワークフローでは、原子特徴、結合特徴、接続関係、グローバル状態属性を用いて構造を表現します。積み重ねた MEGNet ブロックがこれらの要素間で情報を交換し、set2set 読み出しによって表現をスカラーまたはベクトルの物性値に写像します。予測例では pymatgen の Structure または Molecule オブジェクトを受け付けます。分子の例には、SMILES からの変換や XYZ ファイルの読み込み方法も記載されています。事前学習済みモデルは HDF5+JSON ファイルとして配布され、QM9 の分子ターゲットおよび Materials Project の結晶ターゲットを対象としています。対象には軌道エネルギー、生成エネルギー、バンドギャップ、対数弾性率が含まれます。
モデル開発では、MEGNetModel を使って構造と対応するターゲット値から学習することも、検証済みのグラフから学習することもできます。より低レベルの MEGNetLayer および Set2Set コンポーネントは、カスタムアーキテクチャの構築に利用できます。また、このリポジトリにはマルチフィデリティの例や、生成エネルギーモデルから抽出した元素埋め込みが含まれており、転移学習のワークフローに利用できます。
研究用ベースラインとして使用する場合、いくつかの重要な制約があります。README は、学習データのカバレッジが限られているため、QM9 モデルを同データセット外の分子に適用しないよう推奨しています。選択した近傍カットオフによって孤立原子が生じると、結晶グラフへの変換に失敗する場合があります。大規模データセットの学習は計算負荷が高く、専用 GPU が推奨されると説明されています。評価では、これらの制約とリポジトリが非推奨であることを考慮してください。
主な機能
- MEGNetModel.from_file を通じてシリアライズされた HDF5+JSON 形式の事前学習済みモデルを読み込みます。モデルは QM9 の分子物性と Materials Project の結晶物性を対象としています。
- 予測には pymatgen の結晶および分子オブジェクトを受け付けます。分子のワークフローとして、SMILES 変換と XYZ 読み込みの手順が文書化されています。
- 構造とターゲット値から MEGNetModel インスタンスを学習するか、無効な構造グラフを除外した後に train_from_graphs を使用します。
- 積み重ねたグラフネットワークブロックで原子、結合、グローバル状態の属性を更新し、set2set 読み出しによってスカラーまたはベクトルを予測します。
- カスタマイズした TensorFlow/Keras グラフネットワークアーキテクチャの構築に使える MEGNetLayer および Set2Set コンポーネントを公開しています。
- 事前学習済み元素埋め込み、転移学習ノートブック、マルチフィデリティのグラフネットワーク学習例を提供します。
用途
- 評価案:代表的な結晶構造を用いて、事前学習済みの生成エネルギー、バンドギャップ、弾性率モデルを過去のベースラインとして評価し、グラフの妥当性とターゲットの単位を確認する。
- 評価案:QM9 の分子物性予測をドメイン内の分子で検討し、無関係な分子化学系にも適用できると想定しない。
- 評価案:ラベル付き結晶構造で物性モデルを学習し、転移した元素埋め込みを使うモデルと使わないモデルを比較する。
- 評価案:付属の例を参考に、グローバル状態特徴とマルチフィデリティ学習が材料物性モデリングのワークフローにどう適合するかを検討する。
使い方
- 公式 README、特に非推奨の告知を確認してください。元の TensorFlow 参照実装が必要か、リンク先の matgl 後継プロジェクトを調べるべきかを判断します。
- 別の評価環境で README のインストール手順に従ってください。インストールと実行時の互換性は、使用環境で確認すべき事項として扱い、確認済みの事実とはみなさないでください。
- mvl_models から事前学習済みターゲットを選び、モデルの詳細を確認します。README にある結晶または QM9 のノートブックへの参照に従って pymatgen 入力を準備し、文書化された API でモデルを読み込みます。
- 予測を解釈する前に、入力のカバレッジ、近傍カットオフ、出力単位を確認してください。特に、体積弾性率の例では log10 の予測値を GPa に変換しています。QM9 モデルにはカバレッジに関する明示的な警告があります。
- カスタム学習では、構造とターゲット値を対応付け、グラフ変換を検証し、文書化された学習手順を使用してください。ホールドアウトデータの予測は別途評価してください。関連する場合は、転移学習とマルチフィデリティの例を参照してください。