概要
SchNetPack は、分子や材料のポテンシャルエネルギー面およびその他の量子化学的性質を扱うニューラルネットワークの開発と応用を支援します。単一の事前学習済み予測モデルではなく、ツールキットです。研究者は、原子表現、出力モジュール、学習設定を組み合わせて、選択したタスクに応じたモデルを構築します。プロジェクトの README では、利用可能な表現として SchNet の連続フィルターネットワークと PaiNN の等変メッセージパッシングが説明されています。
ワークフローは、ベンチマークデータ、モデル設定、学習、ログ記録をつなぎます。文書化された QM9 の例では原子ごとの物性モデルを学習し、データセットがまだ利用できない場合はダウンロードします。MD17 の例では、選択した分子の参照エネルギーと力を使用します。設定では表現、予測出力、損失、評価指標を指定します。ポテンシャルエネルギーモデルは、力と応力を得るためのエネルギーとその対応する導関数を出力できます。その他の出力モジュールは、双極子モーメント、分極率、および一般的な応答特性に対応します。
学習インターフェースでは PyTorch Lightning とともに Hydra の設定グループを使用し、データセット、表現、個々のパラメーターを変更できます。実行ディレクトリには学習済みモデルが保存され、対応するログ出力には Tensorboard、CSV、Aim が含まれます。学習機能に加えて、ツールキットには静電気および反発モジュール、GPU 加速分子動力学コンポーネント、文書化された LAMMPS インターフェースが含まれます。
抜粋にはこれらのコンポーネントと使用例のワークフローが記載されていますが、測定済みの精度、実行時間の結果、新しい化学系への適用性を検証した結果は示されていません。提供されたプロジェクトメタデータでは Python >=3.12 が宣言されていますが、これは依存要件であり、互換性がテスト済みであることを示すものではありません。そのため、学習済みモデルを新しいデータセットやシミュレーションに適用する際には、引き続き評価が必要です。
主な機能
- 分子や材料の原子モデル向けに、SchNet の連続フィルター表現と PaiNN の等変メッセージパッシング表現を提供。
- 双極子モーメント、分極率、応力、一般的な応答特性の出力モジュール。力と応力テンソルの算出に使うエネルギー導関数も含みます。
- spktrain による Hydra 設定の学習に対応し、文書化された QM9 および MD17 の実験と、設定可能な物性損失重みを提供。
- 静電相互作用、Ewald 和、ZBL 反発を扱う物理関連モジュール。
- 経路積分 MD、サーモスタット、バロスタットを含む GPU 加速分子動力学コンポーネントと、LAMMPS インターフェース。
- PyTorch Lightning による学習ログ記録に対応。デフォルトは Tensorboard で、CSV と Aim の設定も提供。
用途
- 評価案:一貫したデータ分割と評価指標を用い、文書化された QM9 物性予測ワークフローで SchNet と PaiNN の表現を比較する。
- 評価案:ウラシルの MD17 モデルを学習し、文書化された損失重みを変えながらエネルギー誤差と力の誤差を調べる。
- 評価案:SchNetPack のコンポーネントまたは LAMMPS インターフェースを使った分子動力学ワークフローで、学習済みポテンシャルを評価する。
- 評価案:階層的な設定を通じて表現モジュールと出力モジュールを組み合わせ、独自の原子レベル予測タスクを開発する。
使い方
- リポジトリ READMEとドキュメントを参照し、QM9 の物性予測例と MD17 のエネルギー・力の例のどちらを使うか選びます。環境を準備する前に、提供されているプロジェクト要件を確認してください。Python >=3.12 が宣言されていますが、ここでは独立したテストは行われていません。
- README に記載されている pip またはソースからのインストール手順に従います。getting-started ワークフローの説明に沿って、データと学習実行用の作業ディレクトリを用意します。
- 文書化された実験設定を選びます。QM9 の例では qm9_atomwise、分子ポテンシャルの例では md17 を使い、data.molecule を uracil に設定します。QM9 データがない場合は自動的にダウンロードされます。
- 設定ガイドを確認します。SchNet または PaiNN を選び、出力定義を調べ、該当する場合は適切なエネルギー損失と力の損失の重みを設定します。
- spktrain で学習し、保存されたモデルと選択したログ出力を確認します。評価手順として、シミュレーションでモデルを使う前に予測誤差を評価してください。連携が必要な場合は、LAMMPS ガイドを参照してください。