グランドプロジェクト(NeuralMD連携)

通常のプロジェクトでは1つの原子構造モデルだけを扱いますが、グランドプロジェクトを使うと多数の構造に対する計算結果をまとめて扱うことができます。

グランドプロジェクトの作り方

元となる構造のプロジェクトで、左下のメニュー projectmenuicon から Grand-project をクリックします。

ダイアログが表示されますので、 Type of Grand-Project で作成するグランドプロジェクトの種類を選択します。

  • NeuralMD

    Advance/NeuralMDで使用する教師データの作成と、ニューラルネットワークの学習ができます。

    元となる構造から多数の構造を生成し、それぞれについて全エネルギーを計算して、1つの教師データファイルに出力するという手順、およびNeuralMDを実行してニューラルネットワークの学習を行うという手順を、グランドプロジェクト内で実行することができます。

Path of Grand-Project のボタンをクリックし、名前を指定して保存すると、グランドプロジェクトの画面が開きます。

作成したグランドプロジェクトは、エクスプローラーで他のプロジェクトやモデルに並んでアイコン grandicon で表示されます。

NeuralMD

注釈

ニューラルネットワークの学習を行う場合は、別途NeuralMDのライセンスが必要です。

NeuralMDの実行ファイルはNanoLabo Toolに含まれているため、インストールを別途行う必要はありません。リモート実行時にも、他の計算エンジン(QE・LAMMPS)と同様、自動的に実行ファイルをサーバーに転送して実行します。

  • ローカル(NanoLaboを使っているマシン)で実行する場合は、 画面左上のアイコン mainmenuicon から Properties ‣ Advance/NeuralMD でライセンスファイルの場所を設定してください。

  • リモート(計算サーバー等)で実行する場合は、ライセンスサーバーの設定が必要です。

  • Windowsから操作する場合、弊社ツールremoteLicenseを使うことで、簡単にLinuxマシン上でライセンスサーバーを起動することができます。詳細はマニュアルを参照してください。

  • Linux上で操作する場合、NeuralMDのインストーラーにライセンスサーバーの実行ファイルが含まれていますので、ライセンスサーバーとして使うマシンにインストールを行い、ドキュメントに従ってライセンスサーバーを起動してください。また、環境変数 ADVANCED_LICENSE_FILE にライセンスファイルのパスを設定する必要がありますので、NanoLaboのJob Script設定画面でコマンドを追加するか、シェルの初期化ファイルで設定してください。

  • ライセンスサーバーとは別のマシンでNeuralMDを実行する場合は、実行するマシンのアクセスできる場所にライセンスファイルを置き、環境変数 ADVANCED_LICENSE_FILE にファイルパスを設定(NanoLaboのJob Script設定画面でコマンドを追加するか、シェルの初期化ファイルで設定)してください。

  • メトロポリス法による構造生成・ニューラルネットワークのテストについては、ライセンスは必要ありません。

  • macOSでNanoLaboをご使用の場合、リモート実行でNeuralMD連携機能をお使いいただけます(現在NeuralMD macOS版がリリースされていないため、ローカル実行はできません)。

画面構成

../_images/grandproject.svg

簡単な使用例

  1. カラム上部に元となる構造が表示されているのを確認します。

  2. Random Geometries #1Use for Training NNP にチェックを入れます。

  3. Generate Geometries をクリックします。ランダム構造が生成されます。

  4. Run をクリックして、SCF計算を実行します。

  5. 計算が終わったらグランドプロジェクトの画面に戻り、画面右側の Training Neural Network PotentialStart Training NNP ボタンをクリックします。

  6. NNP設定画面が開きます。 左下メニュー ‣ Run でニューラルネットワークの学習を実行します。(Windowsでローカル実行する場合は #Processes を1に設定)

  7. 計算が終わったらNNPのタブに戻り、結果画面の force-field をクリックして力場ファイルを保存します。

  8. 作成した力場ファイルを使って分子動力学計算を行うには、新たにLAMMPSのプロジェクトを作成し、 Force-Field の設定画面で Type of Force Field をNeuralMDに設定して、 Potential File で作成した力場ファイルを選択します。

構造の追加・削除

グランドプロジェクトを作成した時には、元となる構造が1つだけ設定された状態です。画面右側の Add Sample Geometry をクリックして、プロジェクトまたは原子構造ファイルをダブルクリックすると、その構造を追加することができます。

  • グランドプロジェクトの画面内に原子構造ファイルをドラッグ&ドロップすることでも追加できます。

1つの元構造につき、1つのカラムが表示されます。

  • カラムの右クリックメニューから、コピー・ペースト・削除ができます。

  • カラム上部の remove でも削除ができます。

  • ショートカットキーによるカラム操作が可能です。

    操作

    コピー

    Ctrl + C

    貼り付け

    Ctrl + V

    削除

    Ctrl + D

    リネーム

    F2

    * macOSでは Ctrlcommand と読み替えてください。

ヒント

1つのグランドプロジェクト内にバルクモデルとスラブモデルなど異なる構造を設定し、まとめて教師データにする、という使い方ができます。

また、1つの元構造から、異なる複数の設定でランダム構造を生成することもできます。最初は構造生成の設定が1つだけ(Random Geometries #1)ある状態です。カラム内の Add Random Geometries で設定の追加、Remove Random Geometries で設定の削除ができます。

ヒント

元となる構造から2通りの設定でランダム構造を生成し、片方は教師データ、もう片方はテストデータにする、という使い方ができます。

元構造・ランダム構造生成の設定項目

Edit Input File of Q.E.

SCF計算の設定をします。この設定がカラム内のランダム構造の計算に適用されます。また、カラムが複数ある場合は、設定の変更が他のカラムにも反映されます(教師データ内でSCF計算条件を揃えるため)。

Edit Geometry by Modeler

元構造をモデラーを使って編集します。

Add Random Geometries / Remove Random Geometries

元構造からランダム構造を生成するための設定を追加・削除します。

Use for Training NNP / Use for Testing NNP

ランダム構造を教師データ・テストデータに使うかの設定です。最終的にデータを出力する時、ここでの設定に基づいて集計・出力の対象が決まります。

チェック状況はタイトルの左に色で表示されます。設定画面を折り畳んでいても、一目で確認することができます。

../_images/grand_control.svg
Generating Geometries
  • Randomly Atomic Shift

    元構造からランダムに原子を動かした構造を生成します。

  • Trajectory of MD (LAMMPS)

    元構造からLAMMPSで分子動力学計算を実行し、そのトラジェクトリーから構造を抽出します。 Calculate MD のボタンをクリックするとLAMMPSの画面が開きますので、設定を行い、左下メニューの Run から計算を実行してください。

  • Monte-Carlo (Metropolis)

    NeuralMDを使い、元構造からメトロポリス法によるモンテカルロ計算で構造を生成します。予めニューラルネットワークの学習を行っておく必要があります。 Calculate MC のボタンをクリックするとメトロポリス法の設定画面が開きますので、設定を行い、左下メニューの Run から計算を実行してください。

Generate Geometries をクリックすると、指定した設定でランダム構造を生成(抽出)します。

  • Self-Learning Hybrid MC

    自己学習ハイブリッドモンテカルロ法(SLHMC)を実行し、その過程で生成された構造を使います。 Edit SLHMC Input のボタンをクリックするとSLHMCの設定画面が開きます。設定を行ったらタブを閉じて戻り、 Run ボタンで計算を実行してください。

    • SLHMCの設定項目詳細(NeuralMDマニュアル)

    • ここでのSLHMC設定画面のデフォルトパラメーターは構造生成を目的としたものであるため、力場生成時とは異なるものになっています。

    • SLHMCの過程でSCF計算が行われるため、別途Quantum ESPRESSOの計算実行は必要ありません。

注釈

座標を固定した原子がある場合、ランダム構造生成時にもその座標は固定されたままになります。

Calculation of Q.E.

生成したランダム構造に対し、SCF計算を実行します。

  • 同一のグランドプロジェクト内であっても、設定ごとに別の計算サーバーで計算を実行することもできます。

Result画面では、計算の状況を確認できます。ダウンロードボタン granddownload をクリックすると計算サーバーから結果一式をダウンロードし、進捗を更新します(負荷を抑えるため、自動的には更新されません)。 EnergyForce から終了した計算の結果をまとめて確認できます。

ダウンロード抑止ボタン grandavoiddownload をクリックして有効にしておくと、教師データを集計するときに自動的にダウンロードを行わないようになります。

../_images/grandresult.png

ニューラルネットワークの学習・テスト

画面右側の Training Neural Network Potential にある Start Training NNP をクリックすると、グランドプロジェクト内で計算が終了しているものを集計し、教師データとして、ニューラルネットワークの学習を行う画面が開きます。

  • 計算サーバーで計算を実行した場合は、自動的に結果を取得し、集計します。

設定項目の詳細については、NeuralMDのドキュメントにある設定ファイルの説明 sannp.prop , sannp.behler の対応する項目を参照してください。

  • Training w/o Force をyesにすると、力の損失関数の係数 coefForce が0になり、エネルギーだけを使って学習します。

../_images/nnp_setting.png

設定後、左下メニューの Run から学習(最適化)を実行します。

注釈

Windows版NeuralMDは現在MPI並列に対応していないため、Windowsでローカル実行する場合は #Processes を1に設定してください。OpenMP並列は使用可能です。

ヒント

Advance/NeuralMD Pro版をお使いの場合、GPUを使って計算を高速化することができます。

  • (Linuxのみ)ローカルで実行する場合、 メインメニュー ‣ Properties ‣ Advance/NeuralMDNumber of GPU に使用するGPUの数を設定します。複数のGPUを使用する設定の場合、MPI並列のプロセスを各GPUに均等に割り当てて実行されます。0を設定するとGPUを使用しません。

  • リモートで実行する場合、SSHサーバーの設定で使用するキューのGPU設定を有効にしてください。

注釈

  • GPUドライバを事前にインストールしておく必要があります。CUDA 11.4.4を使用しており、これに対応するドライババージョン470.82.01以上が必要です。

  • 元素数が5以上の場合は、重み付き対称関数を使う(Element Weightをyesに設定する)必要があります。

実行後、タブに戻るとResult画面が表示され、計算の状況を確認できます。

  • RMSE ボタンで収束の様子が確認できます。

  • Classical Potential (Δ-NNP法)を有効にした場合、 LJ-like.pot で古典力場の形状を確認できます。

force-field をクリックすると、学習したニューラルネットワークをLAMMPSの力場ファイルとして保存できます。

ヒント

作成した力場ファイルを使って分子動力学計算を行うには、LAMMPSのプロジェクトの Force-Field 設定画面で Type of Force Field をNeuralMDまたはNeuralMD with Chargeに設定して、 Potential File で作成した力場ファイルを選択します。

../_images/nnpresult.png

また、既にニューラルネットワークの学習を行ったグランドプロジェクトで Testing Neural Network Potential にある Start Testing NNP をクリックすると、ニューラルネットワーク力場のテスト(エネルギー・力・電荷の教師データとの比較)を実行します。Result画面の Tested ボタンで結果を確認できます。

教師データ・テストデータのインポート

既に計算済みの教師データ( sannp.train )・テストデータ( sannp.test )をグランドプロジェクトにインポートするには、画面右側の Open Project of NNP をクリックしてNNPの設定画面を開き、左下メニューの Import TRAIN-data または Import TEST-data からインポートするファイルを選択してください。グランドプロジェクトに含まれるデータを入れ替えるか、データを残して追加するかをダイアログで選択します。

教師データの分割

グランドプロジェクトにある教師データを分割し、一部をテストデータにすることができます。NNPの設定画面で左下メニューの Split TRAIN-data をクリックすると、テストデータとして分割する割合を指定するダイアログが表示されます。グランドプロジェクトに既にテストデータがある場合は、上書きするかどうかの確認が表示されます。