Materials Informatics
VASPの機械学習力場をLAMMPSで使う方法とGRACE対応の注意点
- VASP
- 機械学習力場
- 分子動力学
- GRACE
- LAMMPS
- VASPml
- ML_TYPE
- ML_MODE
- pair_style
- 第一原理分子動力学
- オンザフライ学習
- ベイズ的な不確かさ
- 予測専用
- 汎用力場
- ファインチューニング
- MPI
- tensorpotential
- ICAMS
- PACEmaker
- Kokkos
- ML_FF
- ML_LOGFILE
- 熱力学積分
- 熱流束
- ポテンシャルエネルギー面
- MACE-MP-0
- 能動学習
- INCAR
- IBRION
目次
第一原理分子動力学で材料の振る舞いを調べる研究者を考える。第一原理分子動力学は、原子にかかる力を電子の量子力学的な計算(密度汎関数理論など)から一歩ごとに求めて原子を動かす計算である。一歩の計算が重いので、扱える原子の数と時間の長さは限られる。研究者は、より大きな系をより長い時間動かしたい。
そのために、研究者は機械学習力場を使う。機械学習力場は、第一原理計算で得たエネルギーと力を学習し、原子の配置からそれらを予測するモデルである。研究者が使ってきた計算コードでは、力場の学習と利用がコードの中に閉じていた。学習した力場を別の分子動力学コードの温度・圧力の制御や高度な手法と組み合わせることも、多様な材料で事前に学習された外部の力場を普段の入力と構造最適化の手順のまま使うことも、できなかった。
本稿は、VASP の機械学習力場と、その周りに開いた二つの経路を例に取る。VASP を選んだのは、作り手が自身の wiki に、どの版から何ができ、何がまだできないかを書いており、変化の前後を一次資料で比べられるからだ。汎用力場を VASP の外で、別の分子動力学コードや Python のツールから動かす方法や、汎用力場を自分の系の少量のデータで学習し直す方法(ファインチューニング)もあるが、本稿はそれらを比べない。
VASP で第一原理分子動力学を回す研究者にとって、力場を VASP の外へ持ち出し、外部の力場を VASP に入れられるようになったことで、何ができるようになり、何を自分で確かめなければならないのか。
第一原理計算のコードに組み込まれた機械学習力場は、コードの中で学習し中でだけ使う形から、学習済みの力場を外部の分子動力学コードへ持ち出し、外部の汎用力場をコードの計算に差し込める形へ開き始めたが、外部の力場は予測専用で、系ごとの検証は利用者が行う。 VASP 本来の学習は、予測の不確かさが大きい歩で第一原理計算を呼び、その結果で力場を更新するので、不確かさが閾値を超えた配置を一つの実行の中で学習に加える。VASPml は VASP の力場を LAMMPS で使えるようにし、VASP 6.6.0 は GRACE の学習済みモデルで VASP の計算を動かせるようにした。GRACE の経路は予測専用で、VASP の計算の中で誤差の指標を示さないので、その系で予測が正しいかを確かめる仕事は、実行の外で利用者が負う。VASP 本来の力場でも、予測を第一原理計算の値と比べて品質を確かめる仕事は利用者に求められている。
一万歩のうち第一原理計算を呼んだ歩だけが、予測を参照値と比べる歩になる
※ この節の数値は説明のための仮定で、測定値ではありません。
10,000 歩の分子動力学を二通りで回す。一つ目は学習しながら進める実行で、力場は毎歩、力の予測と一緒にその不確かさを出し、不確かさが閾値を超えた歩だけ第一原理計算を呼ぶ。二つ目は予測専用の実行で、学習済みの力場が全ての歩の力を出し、第一原理計算を一度も呼ばない。予測専用とは、力場が予測だけを行い、学習も第一原理計算による確認もしない使い方を指す。
途中の 6,100 歩目から 6,599 歩目までの 500 歩で、系が力場の学習データに無い配置に入るとする。
学習しながら進める実行では、不確かさを毎歩見る。6,100 歩目で不確かさが閾値を超えたとすると、その歩で第一原理計算が呼ばれる。実行全体で第一原理計算を呼んだ歩が 120 歩なら、その割合は 1.2% で、残る 9,880 歩は力場の予測で進む。
予測専用の実行では、第一原理計算は 0 回である。500 歩の予測はどの参照値とも比べられず、軌跡の 5%(500 / 10,000)が学習の範囲外の予測で進む。計算の後で、保存した構造を間引いて第一原理計算で確かめるとする。1,000 歩ごとに 10 構造を確かめると、6,000 歩目と 7,000 歩目は区間の外にあるので、10 回のどれもこの 500 歩に当たらない。250 歩ごとに 40 構造を確かめると、6,250 歩目と 6,500 歩目の 2 構造が当たる。
予測専用の実行で第一原理計算が 0 回であることは、予測を第一原理計算と比べる手段がその実行の中に無いことを意味する。後から間引いて確かめる場合、間隔が範囲外の区間より長いと、その区間を見落としうる。連続する 500 歩の区間を必ず一度捉えるには、間隔を 500 歩以下にする(10,000 歩で 20 構造以上)。学習しながら進める実行では、不確かさが閾値を超えた歩で第一原理計算を呼び、計算時間の一部を予測と参照値の比較に使う。予測専用でも、外挿の目安を実行中に出す力場なら、50 歩ごとに出すと 500 歩の区間で 10 回の値が得られ、区間に入ったことを実行中に知る機会がある。ただしこの目安は第一原理計算との比較ではなく、学習データとの似かたを測るだけである。
VASP の機械学習力場は、学習と利用を VASP の分子動力学の中で完結させていた
VASP は、VASP Software GmbH が開発し、wiki で文書を公開する第一原理計算コードである1。VASP の文書は、オンザフライ学習の機械学習力場を置く目的を二つ挙げる。第一原理分子動力学の高い計算コストと、古典的な力場を従来の方法で作るのに要る経験的な知識である1。オンザフライ学習とは、分子動力学を進めながら、その場で学習データを集めて力場を作る方式を指す。
理論のページによれば、力場は毎歩、エネルギー・力・応力とその不確かさを予測し、第一原理計算をするかを決める2。ここでの不確かさは、ベイズ線形回帰で学習データから求める予測のばらつきの見積もりで、本稿はこれをベイズ的な不確かさと呼ぶ。いずれかの原子の力の不確かさが閾値(ML_CTIFOR)を超えると構造を学習の候補に加え、候補が一定数たまるか、より厳しい閾値を超えると力場を学習し直す2。力場が良くなるほど第一原理計算の歩は減る1。理論のページは、このベイズ的な不確かさが学習データの不足による誤差だけを映し、モデルの近似による系統誤差は測れないと断る。学習が数百歩進むと、予測された不確かさは真の誤差より通常かなり小さくなるとも書く2。VASP の手順書は、VASP 本来の力場についても、予測を第一原理計算の既知の値と比べて品質を確かめるよう利用者に求める3。
利用者の手順は、INCAR の ML_MODE で切り替わる3。train で学習しながら分子動力学を回し、refit で高速な予測のために力場を当て直し、run で予測専用の本番計算を回す。文書は、refit を済ませないと高速予測モードが使えず、このモードは refit なしの予測のおよそ 20〜100 倍速いと書く3。この数字は VASP 本来の力場についての記述である。学習中は OUTCAR や XDATCAR が通常どおり書かれ、力場の詳細は ML_LOGFILE に、力場そのものは ML_FFN に出る3。
VASP の文書は、学習した力場(ML_FF)を VASP の外で使う手段として、6.5.0 からの VASPml と LAMMPS 連携を載せる。文書は、LAMMPS が持つ多くの機能の中に、VASP が直接は提供しないものもありうると書く4。並列化にも制約がある。MPI は、計算を複数のプロセスに分け、プロセス間で通信しながら並列に進めるための標準規格である。文書は現時点の制約として、VASP の機械学習力場が MPI による並列化だけを持ち、予測専用の実行が GPU への計算の移し替えを使えないと書く3。
VASPml は、VASP で学習した力場を LAMMPS の pair_style vasp として持ち出す
VASPml は、VASP 6.5.0 から付く C++ のライブラリで、文書はその目的を、Fortran で書かれた既存の機械学習のコードを拡張し、いずれ置き換えることとする4。現時点では学習の機能を持たず、推論に絞る4。推論とは、学習済みのモデルで予測だけを行う処理である。最初の用途は LAMMPS とのインターフェースで、文書は、VASP で作った力場を LAMMPS の多くの分子動力学の機能と組み合わせるためと書く4。
LAMMPS について、VASP の文書は、広く使われる分子動力学のパッケージで、高度なシミュレーション手法を多く実装すると紹介する。VASP 自身も分子動力学を持つが、LAMMPS は柔軟性が高く、温度・圧力の制御(サーモスタットとバロスタット)や原子のグループ分けなど、追加の手法を持つと文書は書く5。
仕組みは LAMMPS のソースへのパッチである。利用者は vasp-dev の GitHub にある LAMMPS の複製から、VASP の版に対応するブランチを取り、ML-VASP パッケージを有効にして VASPml とリンクする5。VASP 6.6.0 からは CMake でのビルドだけに対応する5。入力では pair_style vasp を指定し、pair_coeff で ML_FF のファイル名と、LAMMPS の原子の型から VASP の元素への対応を与える。文書の例は「pair_coeff * * ML_FF Pb Br Cs」で、末尾の三つが型 1・2・3 に対応する元素である5。単位は Å と eV で、LAMMPS の units metal とだけ組み合わせられる5。文書は、型の対応を誤っても計算はすぐには止まらず、後処理で初めて食い違いが見えることがあると注意する5。
VASPml は、VASP の中の予測専用の実行にも使われる。VASPml を入れてビルドすると、Fortran のコードと VASPml の両方が持つ機能では VASPml が既定で使われ、INCAR の ML_LIB=.FALSE. で Fortran のコードに戻せる4。
ML_TYPE=grace は、外部の汎用力場を VASP の入力と手順のまま動かす
逆向きの経路は、VASP の外で作られた力場を VASP に入れる。汎用力場(universal MLIP)は、多様な材料のデータセットで事前に学習し、すぐ使える力場として、また個別の系へ調整する土台として提供される機械学習力場である6。VASP 6.6.0 は、INCAR の ML_TYPE に kernel・vasp・grace の三つの値を置いた。kernel と vasp は VASP 本来の力場を指し、grace は GRACE の力場を指す7。
GRACE は、ルール大学ボーフムの ICAMS が開発する機械学習力場である。README によれば、GRACE の学習用ソフトウェアは PACEmaker を大きく改変し、大部分を書き直したソフトウェアである8。手法の論文は 2023 年に arXiv に出て、2024 年に Physical Review X に掲載された98。GitHub のリポジトリは 2024 年 9 月に作られ、2026-10-08 時点で 106 のスターを持つ8。
VASP の文書によれば、学習済みの GRACE の力場は、予測専用モード(ML_MODE=run)を使うほぼ全ての VASP の計算を駆動できる。分子動力学、IBRION で選ぶ構造最適化、高度なサンプリング手法が含まれる10。利用者は、VASP を VASPml と GRACE への対応を付けてビルドし、tensorpotential という Python パッケージでモデルを取得し、INCAR で ML_TYPE=grace と ML_GRACE_MODEL を指定する10。tensorpotential はモデルの取得に使うだけで、VASP の実行には要らない10。文書が挙げるモデルの一つ GRACE-2L-OMAT は、OMat24 データセットで学習した 2 層のモデルである10。GRACE の経路は、VASP の文書が実験的と明記する VASPml を前提にする1011。GRACE の予測は、GPU があれば自動でそこへ移される10。VASP 本来の予測専用の実行が MPI だけで並列化し GPU を使えないのに対し、GRACE の実行は GPU を使い MPI を使えない。
VASP の文書は、外部の力場として GRACE を選んだ理由を書いていない。
GRACE のモデルは 0.6.0 より前から LAMMPS と Python のツール(ASE)で動いており、作り手は 2026 年 2 月の論文で両方の上で計算の速さを測っている12。tensorpotential 0.6.0(2026年7月)は、GRACE のモデルを LAMMPS の速い Kokkos 版の pair style へ書き出せるようにし、原子ごとの不確かさの値(gamma)を出せるようにした8。README は、この値が外挿を示し、信頼できない領域を見つけることと能動学習に役立つと書き、LAMMPS の実行中にも使えると書く8。能動学習とは、モデルが不確かな構造を選んで参照計算を足し、学習し直す方式を指す。0.6.0 が GRACE に足したのは新しい計算コードではなく、LAMMPS の中の速い経路と、その実行中に使える不確かさの値である。
GRACE の経路では、誤差の指標を VASP の計算の中で見られない
GRACE を ML_TYPE=grace で使えるのは ML_MODE=run のときだけである7。予測専用の実行は第一原理計算を呼ばない3。予測専用で第一原理計算を呼ばない点は、VASP 本来の力場の本番計算(ML_MODE=run)も同じである3。違いは、実行中に見られる指標の有無にある。VASP 本来の本番計算は、スピリング係数という誤差の指標を ML_LOGFILE に出せ、VASP はこれを監視するときは Fortran のコードを使うよう勧める11。VASP の GRACE の文書は、GRACE の不確かさの値を VASP の計算の中で使う方法に触れていない10。GRACE の経路は VASPml を通るので(ML_LIB=.TRUE.)、VASPml が持たない ML_LOGFILE などのファイル出力は、二つのページを合わせて読む限りこの経路でも得られない1011。
汎用力場には、系統的な誤差の報告がある。Deng らは、三つの汎用力場 M3GNet・CHGNet・MACE-MP-0 で、ポテンシャルエネルギー面(原子の配置に対するエネルギーの形)の軟化を報告した6。軟化とは、表面、欠陥、固溶体のエネルギー、フォノン、イオンの移動障壁、高エネルギーの状態で、エネルギーと力を一貫して低く予測する傾向を指す6。論文は原因を主に、事前学習のデータが平衡に近い配置に偏ることに求める。少ないデータでのファインチューニングで軟化を和らげられ、特定の化学系では一つの第一原理計算の値から作る線形の補正で軟化の多くを除けたと書く6。ファインチューニングとは、事前に学習したモデルを、対象の系の少量のデータで学習し直すことである。論文が測ったのは三つのモデルで、GRACE は含まれない。GRACE の作り手は、GRACE-2L-OMAT などの学習に使った OMat24 が平衡に近い構造を超え、原子をずらした構造や第一原理分子動力学の配置を含むと書く12。同じ論文は粒界・表面・点欠陥の形成エネルギーで GRACE を含む汎用力場を比べ、点欠陥の平均絶対誤差は多くのモデルで格子間原子 0.2〜0.4 eV、空孔 0.1〜0.2 eV ほどと書く12。本稿は GRACE が同じ傾向を示すかを示す資料を持たず、GRACE を含め、どの力場も実行していない。
それでも、汎用力場の誤差が系や性質によって偏りうることは、利用者が自分の系で予測を第一原理計算と比べる理由になる。予測専用の経路は、予測と第一原理計算の比較を実行の中で行わないので、利用者が構造を選んで別に計算する。
版の組み合わせと実験段階は一時的で、ライセンスと系ごとの検証は利用者が負い続ける
版の組み合わせの問題は一時的と判定する。VASP 6.6.0 は、tensorpotential 0.5.8 以降のモデルを読めない(既知の問題 95)10。6.6.0 では 0.5.7 のモデルを使い、metadata.json を自分で作る必要がある10。文書は、この問題が 6.6.1 で解決し、0.5.9 と 0.6.0 で試したと書く10。tensorpotential は 2026年9月に 0.6.1 を出し、不確かさの値に関わる不具合を直すために、配布する基盤モデルを作り直した8。VASP の文書は 0.6.0 を入れる手順を示し、0.6.1 の確認は無い10。ただし、VASP と GRACE は別々に版を出すので、両者の版を合わせる作業そのものは、組み合わせ方によって今後も起こりうる。
MPI の並列化は現時点で使えず、対応の時期は文書に書かれていないので、本稿は一時的とも恒久とも判定しない10。予測専用に限られる点は、資料からは判定できない。ML_TYPE の文書は GRACE を run に限ると書くだけで、学習や不確かさによる確認を加える予定を書いていない7。この制限が続く限り、第一原理計算による確かめは実行の外に残る。
VASPml の実験段階は、作り手自身が一時的と位置づける。文書は、VASPml を実験的な機能とし、結果を Fortran のコードと注意して比べるよう求め、VASPml が安定と見なせるまで既知の不具合を同じページに集めると書く11。LAMMPS 連携のページも、同じ理由で結果を注意して確かめ、可能なら同様の VASP の分子動力学と比べるよう求める5。機械学習関連のファイル出力(ML_LOGFILE など)、熱力学積分、熱流束の計算は、開発中のためまだ使えない機能として挙がる11。文書は、VASP の中の高速予測モードでは VASPml を使っても現時点で速さは上がらないとも書く11。LAMMPS へのパッチは VASP の版ごとのブランチで配られ、本稿の資料はこれを LAMMPS 本体に入れる予定を書いていないので、VASP の版を上げるたびに LAMMPS をビルドし直す手間は資料の範囲では続く5。
モデルのライセンスは、VASP の更新では消えない条件である。VASP の文書が示すモデル一覧の出力で、GRACE-2L-OMAT に Academic Software License が表示される10。他のモデルのライセンスは資料に無く、モデルごとに確かめる必要がある。本稿はライセンスの本文を読んでいないので、利用者は自分の使い方が条件に合うかを確かめる。系ごとの検証も恒久と判定する。汎用力場の誤差の傾向はモデルと系で異なりうるので、検証の仕事は版の更新で利用者から離れない。
出典12件
-
VASP Software GmbH「Category:Machine-learned force fields」VASP Wiki(2026-10-08 取得). https://www.vasp.at/wiki/index.php/Category:Machine-learned_force_fields — オンザフライ学習を置く二つの目的と、力場が良くなるほど第一原理計算が減ること。 ↩ ↩2 ↩3
-
VASP Software GmbH「Machine learning force field: Theory」VASP Wiki(2026-10-08 取得). https://www.vasp.at/wiki/index.php/Machine_learning_force_field:_Theory — オンザフライ学習の手順と、力のベイズ的な不確かさが閾値を超えたときの学習の条件。 ↩ ↩2 ↩3
-
VASP Software GmbH「Machine learning force field calculations: Basics」VASP Wiki(2026-10-08 取得). https://www.vasp.at/wiki/index.php/Machine_learning_force_field_calculations:_Basics — train・refit・run の手順、高速予測モードの速さ、MPI だけの並列化。 ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7
-
VASP Software GmbH「VASPml library」VASP Wiki(2026-10-08 取得). https://www.vasp.at/wiki/index.php/VASPml_library — 6.5.0 からの C++ ライブラリで、Fortran のコードを拡張し置き換える目的、推論に絞る現状、最初の用途が LAMMPS であること。 ↩ ↩2 ↩3 ↩4 ↩5
-
VASP Software GmbH「Running machine-learned force fields in LAMMPS」VASP Wiki(2026-10-08 取得). https://www.vasp.at/wiki/index.php/Running_machine-learned_force_fields_in_LAMMPS — LAMMPS を使う理由、パッチと pair_style vasp の設定、CMake 限定のビルド、結果を確かめる注意。 ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8
-
Deng ほか「Systematic softening in universal machine learning interatomic potentials」npj Computational Materials 11, 9(2025). https://www.nature.com/articles/s41524-024-01500-6 — 三つの汎用力場の軟化と、少量のデータによる補正。 ↩ ↩2 ↩3 ↩4
-
VASP Software GmbH「ML_TYPE」VASP Wiki(2026-10-08 取得). https://www.vasp.at/wiki/index.php/ML_TYPE — 6.6.0 で加わったタグの三つの値と、grace が ML_MODE=run に限られること。 ↩ ↩2 ↩3
-
ICAMS「grace-tensorpotential」GitHub(2026-10-08 取得). https://github.com/ICAMS/grace-tensorpotential — PACEmaker からの系譜、0.6.0 の不確かさの値と LAMMPS Kokkos への書き出し、0.6.1 の基盤モデルの作り直し、作成時期とスター数。 ↩ ↩2 ↩3 ↩4 ↩5 ↩6
-
Bochkarev ほか「Graph Atomic Cluster Expansion for Semilocal Interactions beyond Equivariant Message Passing」Phys. Rev. X 14, 021036(2024). https://arxiv.org/abs/2311.16326 — GRACE の手法の初出と掲載。 ↩
-
VASP Software GmbH「Running GRACE force fields in VASP」VASP Wiki(2026-10-08 取得). https://www.vasp.at/wiki/index.php/Running_GRACE_force_fields_in_VASP — GRACE を ML_MODE=run で使う手順、GPU 利用と MPI 非対応、既知の問題 95 の 6.6.1 での解決、モデルのライセンス表示。 ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 ↩9 ↩10 ↩11 ↩12 ↩13 ↩14
-
VASP Software GmbH「VASPml library」の Restrictions 節, VASP Wiki(2026-10-08 取得). https://www.vasp.at/wiki/index.php/VASPml_library — 実験的で Fortran のコードと比べる必要、ファイル出力・熱力学積分・熱流束が未対応、高速予測で速さが上がらないこと。 ↩ ↩2 ↩3 ↩4 ↩5 ↩6
-
Lysogorskiy ほか「Graph atomic cluster expansion for foundational machine learning interatomic potentials」npj Comput. Mater. 12, 114(2026). https://www.nature.com/articles/s41524-026-01979-1 — LAMMPS での実行、OMat24、欠陥の誤差。 ↩ ↩2 ↩3
この記事はAIが執筆しています。内容には誤りが含まれる可能性があります。ご注意ください。