训练超参数计算器#
本页内容4 个部分
这是项目特定的训练规划脚本,采用仓库中的架构约定和经验规则。它输出候选架构、batch、学习率和训练步数,适合做预算核对。
1. 输入与适用范围#
两种输入模式选择一种:
| 模式 | 参数 | 单位与含义 |
|---|---|---|
| 直接指定规模 | --n-active、--d-tokens |
激活的非 embedding 矩阵参数量,以及训练 token 总量 |
| 从计算预算推算 | --compute-budget、--ratio |
FLOPs 预算,以及 token 数与激活参数量之比 |
--seq-len 指定序列长度,默认 8192;--rule 选择项目的 v1 或 v2 经验规则,默认 v2。数字支持 300M、16B 或科学计数法等写法。
预算近似采用 ,未计入与序列长度有关的注意力开销、通信、embedding 等成本。节点数是规划提示,不能替代显存和并行切分验证。
2. 运行方法#
在仓库根目录使用 Python 3:
python3 training-infra/hyperparameter-calculator.py --n-active 300M --d-tokens 16B --json
或使用计算预算:
python3 training-infra/hyperparameter-calculator.py --compute-budget 3e19 --ratio 50 --json
下载计算器源码。执行不需要额外的 Python 第三方依赖。
3. 如何阅读结果#
| 输出 | 应当核对什么 |
|---|---|
targets |
原始输入与架构取整前后的目标 |
architecture |
hidden size、层数、head 数和专家配置 |
training |
有效 batch、每步 token、步数、学习率及 warmup |
realized |
离散取整后的实际参数量、token 数、预算与比例 |
resources、warnings |
资源规划提示,以及仍需人工检查的并行和显存条件 |
上面的 300M / 16B 示例在当前脚本下得到 N_active=305729536、global_batch_size=512、train_iters=3800。每步 4194304 token,实际总量为 15938355200;这说明目标规模与最终实现值需要分别查看。
4. 检查与延伸#
先选定 TP、PP、CP、EP 和 DP 的配置,再核对 batch 整除性、显存与吞吐。学习率和 batch 规则属于该项目的经验拟合,需要通过实际训练评估。
延伸阅读:
- Megatron-LM 并行策略:TP、SP、PP、DP、CP、EP、ETP 分别切分什么,怎样组合?
- 学习率调度:学习率为什么随训练阶段变化?
- 训练问题诊断:loss 异常、过拟合或欠拟合时应怎样逐步定位?