SuperAPI AI 工具集

nvalchemi-training-api

智能体与模型

查看项目

更新于 10-16 07:24

技能介绍

用途:nvalchemi Training API 用于配置和运行机器学习势(MLIP)训练工作流。TrainingStrategy 是单个训练任务的持有者,管理模型、dataloader、损失、优化器/调度器配置、验证、hooks、运行时计数器和检查点。

主要能力:支持任意与所选 training_fn 兼容的 torch.nn.Module,推荐使用包装了 BaseModelMixin 的模型以符合 AtomicData/Batch 约定。损失可用单个叶子损失(如 EnergyMSELoss),也可用 ComposedLossFunction 或运算符糖组合多目标;内置 ConstantWeight、LinearWeight、CosineWeight、PiecewiseWeight 调度。优化器通过 OptimizerConfig 配置,可附加 scheduler_cls/scheduler_kwargs。支持 CheckpointHook 周期检查点、TrainingStrategy.load_checkpoint 续训,以及通过 DistributedManager 与 DDPHook 进行多 GPU/多节点 DDP 训练。

使用方式:构建损失与 TrainingStrategy 后调用 strategy.run(train_loader)。多模型时传入命名映射,optimizer_configs 使用相同模型键;未列入的模型在前向中使用但被冻结。自定义 training_fn 接收 (model, batch) 或 (models, batch) 并返回预测映射。DDP 启动示例:torchrun --standalone --nproc_per_node=4 train.py。CLI 可用 nvalchemi-training train init 或 finetune init,并传 --loss-dtype-policy strict|prediction_to_target|target_to_prediction。

限制:内置损失默认 dtype_policy="strict",预测与目标 dtype 不一致会报错;per_epoch=True 的调度需在损失调用时提供 epoch;自定义调度需实现 per_epoch、call(step, epoch) 和 to_spec()。续训应使用原生 TrainingStrategy 检查点,普通预训练权重文件不足以忠实继续。normalize_weights 默认为 True。更多细节见 docs/userguide/training.md、losses.md 和 checkpoints.rst。