算法训练通用
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_db1d96f9/music-algo-train。
技能介绍
解决什么问题
在 amt_ai、YourMT3 这类旋律转谱训练项目中,常见问题不是“不知道训练框架”,而是每次都要重新确认同一套约定:scratch、resume、warm-start 如何区分,batch size 与 num_workers 怎么按 DDP 配置,bf16-mixed 和 16-mixed 何时切换,NaN、loss 不下降、DDP 卡死、W&B 没数据时从哪里排查。这个技能把仓库里已经落地的训练规范整理成可复用的上下文,适合在改训练脚本、调超参、排障时直接引用。
技能如何工作
- 训练身份先讲清楚:根据是否传
--init-ckpt、是否存在last.ckpt、是否设置AMT_FORCE_SCRATCH,判断当前是scratch、resume还是warm-start,并提示max_steps必须大于当前global_step。 - 脚本骨架统一:推荐沿用“环境变量覆盖 +
args数组 + 显式区分init-ckpt/resume”的写法,并在修改默认配置处保留# 修改:注释,方便复盘。 - 关键超参有默认口径:例如
AdamW更稳、bf16-mixed优先、warmup_steps=500、checkpoint 监控validation/macro_onset_f、save_top_k=7、last.ckpt为真实拷贝。 - 排障路径明确:从
bf16-mixed切到32短跑、打开AMT_DEBUG_GRAD_FINITE和AMT_DETECT_ANOMALY、检查 DDPnum_workers、W&B 凭证回退CSVLogger,逐步定位前向、反向或数值溢出问题。
适用边界
该技能主要面向 AMT / YourMT3 训练,不适合作为通用 PyTorch 项目模板。资料未实现或默认关闭的能力,例如部分 deepspeed offload、额外 RL 分支和动态数据集采样,只能按仓库默认值谨慎启用。若项目不在 ~/code/amt_ai 仓库结构内,需要先确认 src/train.py、config.py、data_presets.py 等路径是否一致。
使用场景
- 在 amt_ai 新建训练脚本时,按 scratch、resume、warm-start 规则配置入口与 checkpoint。
- 调 DDP 训练时,设置 batch、num_workers、bf16-mixed,并检查 last.ckpt 与 max_steps。
- 遇到 NaN 或 loss 不降时,开启梯度与反常检测,定位首个异常算子。
- 配置 W&B 与 checkpoint,监控主指标并保留可恢复的 last.ckpt。
适合人员
- 负责 AMT 旋律转谱训练与超参调试的算法工程师,需要统一 scratch、resume、warm-start 规则。
- 维护 DDP 多卡训练流水线的机器学习工程师,需要配置 batch、workers、精度和 checkpoint。
- 排查训练 NaN、DDP 卡死和 W&B 无数据的算法同学,需要按仓库内置防护定位首个异常。
- 复用同一套 AMT 训练风格、写新训练脚本的研究员,需要沿用默认优化器、调度器和日志约定。