大规模机器学习训练的高级技巧与优化策略
1. 评估与提升吞吐量
在机器学习训练中,总作业吞吐量是一个关键指标。一方面,要确保批量大小足够小,以保证模型得到适当训练;另一方面,要最大化作业性能,以获得尽可能准确的模型。
为了衡量吞吐量,许多研究团队采用模型TFLOPS(每秒万亿次浮点运算)这一综合指标,它结合了模型大小和完成的操作数。以Chinchilla论文中的计算方法为例,考虑到前向传播和反向传播的性能不同,反向传播的计算成本是前向传播的两倍,因为需要计算梯度并更新权重和参数。
另一种更简单但稍不精确的计算总模型TFLOPS的方法是:$C = 6 \cdot D \cdot N$,其中$N$是模型中的参数数量。Chinchilla发现这种计算方法与前面的公式计算结果没有显著差异。
以下是一个不同阶段实验的示例时间表:
| 阶段 | 模型类型 | 模型大小 | 数据集大小 | 计算资源规模 | 计算效率 | 实验运行时间 |
| — | — | — | — | — | — | — |
| 小规模测试 | 通用预训练基础模型 | 5 - 30 GB | 1 - 4个较便宜的GPU | 低 | 对小数据样本进行一次完整遍历 |
| 增加数据集 | 半定制模型 | 数十亿参数 | 100 GB - TB级 | 数十到数百个更好的GPU | 中等 | 几个步骤或轮次 |
| 增加模型(和数据) | 高度定制模型 | 数百亿参数 | TB级 | 数百到数千个高性能GPU | 高 | 几个步骤或轮次 |
| 最大化计算预算 | 完全定制模型 | 数千亿参数 | TB - PB级 | 数千个或更多高性能GPU |
超级会员免费看
订阅专栏 解锁全文
4736

被折叠的 条评论
为什么被折叠?



