TACE
模型介绍
TACE(Tensor Atomic/Edge Cluster Expansion)是面向原子间势的等变模型,可预测能量、原子力和应力。
论文:Tensor Atomic/Edge Cluster Expansion for Equivariant Many-Body Interatomic Potentials 参考实现:https://github.com/xvzemin/tace
模型描述
TACE 基于 SO(3) 等变张量代数构建,使用等变消息传递架构对原子结构进行能量、受力和应力预测。模型支持从头训练、全参数/冻结参数/LoRA 微调,以及 ASE 可读结构的单点推理与评估。
适用场景
| 场景 | 说明 |
|---|---|
| 从头训练 | 使用 ASE 可读 XYZ 数据训练 TACE 模型 |
| 微调 | 基于预训练权重进行全参数、冻结参数或 LoRA 微调 |
| 单点推理 | 对 ASE 可读结构执行能量、受力和应力推理 |
| 分布式训练 | 支持单节点多 DCU 和多节点训练 |
使用说明
1. OneCode 使用
可通过 OneCode 在线环境体验智能化一键式 AI4S 编程:
2. 手动安装使用
硬件要求
- 推荐使用 GPU 或 DCU 运行训练。
- CPU 可以用于导入和小配置连通性验证,完整训练速度较慢。
- DCU 用户需要预先安装 DTK,建议使用 DTK 25.04.2 以上版本或与当前集群匹配的 OneScience 推荐版本。
下载模型包
modelscope download --model OneScience/TACE --local_dir ./tace
cd tace
安装运行环境
DCU环境
# 请首先激活DTK及CONDA
conda create -n onescience311 python=3.11 -y
conda activate onescience311
# 支持uv安装
pip install onescience[matchem-dcu] -i http://mirrors.onescience.ai:3141/pypi/simple/ --trusted-host mirrors.onescience.ai
GPU环境
# 请首先激活CONDA
conda create -n onescience311 python=3.11 -y libstdcxx-ng=12 libgcc-ng=12 gcc_linux-64=12 gxx_linux-64=12
conda activate onescience311
# 支持uv安装
pip install onescience[matchem-gpu] -i http://mirrors.onescience.ai:3141/pypi/simple/ --trusted-host mirrors.onescience.ai
训练数据介绍
本仓库不内置训练数据。以 BaTiO3 示例数据为例,配置文件中默认路径为 ${ONESCIENCE_DATASETS_DIR}/matchem/TACE/BaTiO3.xyz。用户应提供与目标任务一致的 ASE 可读带标签轨迹,并在配置中将 dataset.train_file 指向该文件。
demo/run.sh 会自动将仓库根目录作为工作目录,输出保存在 outputs/<name>_<timestamp>/。
训练
使用 smoke 配置验证数据读取、建模、训练和 checkpoint 保存:
bash demo/run.sh --config demo/configs/tace_smoke_1dcu.yaml
使用完整配方从头训练:
bash demo/run.sh --config demo/configs/tace.yaml --submit
单节点 8 DCU 或两节点 16 DCU 训练:
bash demo/run.sh --config demo/configs/tace_8dcu.yaml --submit
bash demo/run.sh --config demo/configs/tace_2node_8dcu.yaml --submit
微调
为预训练权重生成微调配置:
python finetune.py --model weight/TACE-OAM-7M.pt
使用 DMC 数据的 smoke 微调测试:
bash demo/run.sh --config demo/configs/tace_finetune_dmc_smoke_1dcu.yaml --submit
微调模板(需替换为用户数据和模型路径后使用):
bash demo/run.sh --config demo/configs/tace_finetune_1dcu.yaml --submit
推理
对 ASE 可读结构执行单点能量、受力和应力推理:
python single_point.py \
--input structure.xyz \
--model weight/TACE-OAM-7M.pt \
--output predict.xyz \
--device cuda \
--batch_size 16
对带标签数据添加 --test 1 可输出误差指标。
训练权重
本仓库提供以下预训练权重:
| 文件 | 说明 |
|---|---|
weight/TACE-OAM-7M.pt |
OAM 预训练 TACE 模型,可用于单点推理或微调初始权重 |
weight/TACE-OMat24-7M.pt |
OMat24 预训练 TACE 模型 |
weight/TECE-OAM-RRA-1.0.pt |
OAM 预训练 TECE 模型 |
weight/TECE-OMat24-RRA-1.0.pt |
OMat24 预训练 TECE 模型 |
OneScience 官方信息
| 平台 | OneScience 主仓库 | Skills 仓库 |
|---|---|---|
| Gitee | https://gitee.com/onescience-ai/onescience | https://gitee.com/onescience-ai/oneskills |
| GitHub | https://github.com/onescience-ai/OneScience | https://github.com/onescience-ai/oneskills |
引用与许可证
- TACE 相关代码来自 OneScience 项目中的 matchem 示例实现,并参考了上游 TACE 项目(https://github.com/xvzemin/tace)。上游 TACE 代码以 MIT License 发布。
- 如果在科研工作中使用 TACE 训练结果,建议引用 TACE 原始论文、OneScience 相关项目信息和实际使用的数据集来源。