PACE 与 Pacemaker 教程文档(中文译稿)
仓库说明
本仓库包含 PACE 与 Pacemaker 拟合工具的教程文件。
教程幻灯片 见此链接
环境准备
通过超算仪表盘 (https://www.puhti.csc.fi/pun/sys/dashboard/) 启动 Jupyter:
分区:interactive(交互式) 资源:32 核(推荐)/ 16 核(尚可) 时长:4 小时 环境设置:Python - tensorflow Jupyter 类型:Lab 工作目录: /user/[你的用户名]
连接至 Jupyter 后,在 JupyterLab 中打开终端(Ctrl+Shift+L → Terminal)。
安装 Pacemaker(含 python-ace 与 tensorpotential)
echo'export PYTHONPATH=$HOME/.local/lib/python3.9/site-packages/:$PYTHONPATH' >> ~/.bashrc
source ~/.bashrc
cd
mkdir tools
1. 安装 python-ace
cd ~/tools
git clone https://github.com/ICAMS/python-ace.git
cd python-ace
pip install . --user
cd lib/maxvolpy
pip install . --user
2. 安装 TensorPotential
cd ~/tools
git clone https://github.com/ICAMS/TensorPotential.git
cd TensorPotential
pip install . --user
3. 编译支持 PACE 的 LAMMPS
cd ~/tools/
git clone --depth 1 --branch develop https://github.com/lammps/lammps.git lammps
cd lammps/
mkdir build && cd build/
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_MPI=ON -DPKG_ML-PACE=ON ../cmake
cmake --build . -- -j
make install
获取教程数据
cd ~
git clone https://github.com/yury-lysogorskiy/pace-tutorial.git
cd pace-tutorial
tar zxvf AlLi_vasp_data.tar.gz
教程正文
一、DFT 数据收集
cd AlLi_vasp_data
pace_collect --free-atom-energy auto --output-dataset-filename AlLi.pkl.gz
二、Pacemaker:自动生成输入文件
准备文件夹并复制数据集:
cd ~/pace-tutorial
mkdir AlLi_fit && cd AlLi_fit
cp ../AlLi_vasp_data/AlLi.pkl.gz .
运行自动配置:
pacemaker -t
按提示依次输入:
Generating 'input.yaml'
Enter training dataset filename: AlLi.pkl.gz
Enter testset fraction or size: 0.05
Please enter list of elements: [回车,自动识别]
Enter number of functions per element: 300
Enter cutoff (Angstrom, default:7.0): 6.0
Enter weighting scheme type - `uniform` or `energy`: energy
Input file is written into `input.yaml`
三、Pacemaker:拟合势函数
若当前目录已有 input.yaml,直接执行:
pacemaker
运行结束后,若成功则生成 output_potential.yaml;无论成功与否都会生成 interim_potential_0.yaml(始终保存最新版本)。建议将其重命名:
mv interim_potential_0.yaml AlLi.yaml
四、pace_activeset:计算活性集(Active Set)
pace_activeset -d fitting_data_info.pckl.gzip AlLi.yaml
五、LAMMPS:运行含不确定性指示的分子动力学
进入 AlLi-LAMMPS 目录并执行:
cd ~/pace-tutorial/AlLi-LAMMPS
lmp -in in.lammps
检查输出:
若 extrapolative_structures.dump为空,说明未发生外推;查看 log.lammps中的c_max_pace_gamma列。
可尝试增大超胞、调整温度曲线、切换 NPT 系综或改变原子类型以触发外推。注意:LAMMPS 会覆盖 extrapolative_structures.dump,请提前备份。
六、pace_select:为主动学习选取结构
pace_select -p AlLi.yaml -a AlLi.asi -e "Al Li" -m 20 -o selected/POSCAR extrapolative_structures.dump
七、(选做)主动探索(Active Exploration)
参考 ~/tools/python-ace/examples/Active_Exploration.ipynb,将其适配至 Al/Li 体系及你的 AlLi.yaml/asi 势函数。
延伸阅读
在线文档 Lysogorskiy Y. 等, Active learning strategies for atomic cluster expansion models, Phys. Rev. Materials 7, 043801 (2023) Bochkarev A. 等, Efficient parametrization of the atomic cluster expansion, Phys. Rev. Materials 6(1), 013804 (2022) Lysogorskiy Y. 等, Performant implementation of the atomic cluster expansion (PACE), npj Comput. Mater. 7, 1-12 (2021) Drautz R., Atomic cluster expansion for accurate and transferable interatomic potentials, Phys. Rev. B 99, 014104 (2019)
博导点评
总体评价:这是一份来自 Ruhr-Universität Bochum ICAMS 团队的高质量技术教程,覆盖了从第一性原理数据收集 → 机器学习势拟合 → 分子动力学验证 → 主动学习迭代的完整闭环。对于从事材料计算、尤其是数据驱动势函数开发方向的研究生而言,这是入门 ACE/PACE 框架不可多得的实操材料。
一、值得肯定的方面
1. 流程设计完整,体现了现代 MLIP(机器学习原子间势)开发的标准范式
该教程并非简单的"跑一个例子",而是完整呈现了当代 MLIP 研究的四大核心环节:
数据工程( pace_collect打包 DFT 数据)模型训练( pacemaker自动调参与拟合)不确定性量化( pace_activeset+c_max_pace_gamma外推检测)主动学习闭环( pace_select选取新结构补充训练集)
这与我们组里强调的 "DFT-data → model → MD-validation → active learning → DFT" 迭代范式完全一致。能把这个流程走通的学生,基本上就具备了独立开展 MLIP 研究的能力。
2. 对超算环境的考虑较为务实
教程基于 CSC 的 Puhti/Mahti 超算编写,明确给出了 Jupyter Lab 的启动配置(32 核、TensorFlow 环境、4 小时交互式分区)。对于刚接触超算的学生来说,这种"手把手"式的环境配置指导能显著降低入门门槛。pip install . --user 和 PYTHONPATH 的设置也体现了在无 root 权限环境下部署科学软件的成熟经验。
3. 关键参数给出了合理的默认值,同时保留了可调空间
例如:
截断半径 6.0 Å(对于 Al-Li 这类金属体系是合理的) 基函数数量 300(在精度与计算成本之间取了平衡) 能量加权( energyweighting)而非均匀加权,这对于能量景观复杂的合金体系尤为重要
这些默认值的选取反映了开发团队对 ACE 势函数参数化经验的积累。
二、需要提醒与深化理解的地方
1. 不要停留在"跑通例子",要理解每一步的物理与数学内涵
pace_collect中的--free-atom-energy auto:这里涉及的是原子参考能的选取问题。ACE 势通常以孤立原子能量为参考,但不同元素的单原子能量如何定义(spin-polarized or not?)会直接影响拟合的绝对能量值。建议你去读 Drautz 2019 的原文,理解 ACE 的多体展开是如何从原子基态出发构建的。活性集(Active Set)与 B 矩阵: pace_activeset计算的是设计矩阵(design matrix)中一组线性无关的基函数组合,其物理意义是确定模型在哪些化学环境上有可靠的数据支撑。c_max_pace_gamma本质上是一种杠杆值(leverage score)或Mahalanobis 距离的变体,用于衡量新结构是否落在训练分布之外。这不是简单的"阈值判断",而是涉及统计学习理论中的外推(extrapolation)概念。
2. 对拟合质量的评估不能只看"跑完了"
教程中 pacemaker 运行结束后只提到重命名输出文件,但没有详细说明如何诊断拟合质量。作为导师,我要求你至少检查以下几点:
训练集与测试集的 RMSE/MAE(能量、力、应力) 能量-体积曲线(EOS)与 DFT 的对比 声子谱是否出现虚频(这是势函数稳定性的硬指标) 对已知缺陷(如空位、层错)形成能的预测精度
3. LAMMPS 编译环节是常见的"卡脖子"点
教程中的 LAMMPS 编译命令看似简单,但在实际超算环境中,学生经常遇到:
CMake 版本过低(需要 ≥3.16) MPI 库与编译器不匹配(GCC vs Intel vs Cray) 缺少 yaml-cpp或Eigen3依赖
建议:在正式用于科研前,先用 lmp -h | grep pace 确认 PACE 包已正确加载,并用一个小体系(如 32 原子的 FCC Al)跑 100 步 NVE 验证能量守恒。
4. 主动学习(Active Learning)策略需要批判性思考
教程最后提到了 pace_select 和 Active Exploration,但主动学习的效率高度依赖于"选择策略"。pace_select 基于外推指标(gamma 值)选结构,这是一种不确定性驱动的策略。然而:
如果初始训练集覆盖不足,早期外推可能是系统性的,而非随机的; 对于多元合金,成分空间的采样是否充分? 是否考虑了动力学稳定性?有些结构虽然 gamma 值高,但可能是动力学不稳定的(如虚假的高能构型),直接做 DFT 会浪费机时。
建议结合 query-by-committee 或 dynamics-based exploration(如元动力学、超平面约束)来丰富采样策略,不要单一依赖 gamma 值。
三、给你的学习建议
| 第 1-2 周 | ||
| 第 3-4 周 | input.yaml 和初步势函数 | |
| 第 5-6 周 | ||
| 第 7-8 周 | ||
| 长期 |
四、总结
这份教程是入门的优质地图,但不是科研的终点。它能带你快速建立"数据 → 模型 → 模拟 → 迭代"的工程能力,但真正的科研突破来自于对原子团簇展开(ACE)数学结构的深刻理解,以及对材料物理问题的敏锐把握。
下一步:跑通后,不要急着发文章。先回答我三个问题:
为什么 ACE 的基函数数量(300)和截断半径(6.0 Å)对 Al-Li 体系是足够的?如果换成含有长程相互作用的离子体系,你需要如何调整? c_max_pace_gamma的数值大小与外推风险之间是线性关系吗?如果不是,你如何建立一个更可靠的"外推警报"机制?如果你的主动学习迭代 5 轮后测试集误差不再下降,是数据饱和了,还是模型表达能力(basis size)到了瓶颈?
把这三个问题想清楚了,你才算真正"学会"了这个教程,而不仅仅是"跑完"了它。
参考链接🔗点击阅读原文可跳转:https://github.com/yury-lysogorskiy/pace-tutorial
导师签字(Kimi-AI)
2026年8月
Further reading
Online documentation Lysogorskiy Y., Bochkarev A., Mrovec M., Drautz R., Active learning strategies for atomic cluster expansion models, Phys. Rev. Materials 7, 043801 (2023) Bochkarev, A., Lysogorskiy, Y., Menon, S., Qamar, M., Mrovec, M. and Drautz, R. Efficient parametrization of the atomic cluster expansion. Physical Review Materials 6(1) 013804 (2022) Lysogorskiy, Y., Oord, C. v. d., Bochkarev, A., Menon, S., Rinaldi, M., Hammerschmidt, T., Mrovec, M., Thompson, A., Csányi, G., Ortner, C. and Drautz, R. Performant implementation of the atomic cluster expansion (PACE) and application to copper and silicon. npj Computational Materials 7(1), 1-12 (2021) Drautz, R. Atomic cluster expansion for accurate and transferable interatomic potentials. Physical Review B, 99(1), 014104 (2019)
夜雨聆风