Meta的LEAP在提交时预测训练吞吐:30次夜间重训中位准确率77%,替代查表法
核心概要
Meta 的 LEAP 在训练作业提交时预测它在每种候选硬件上的吞吐,并按单位成本吞吐排序,供集群调度器参考。它取代了按模型类型、训练器数、批大小和硬件类型查表的旧方案,旧表只覆盖13%的作业尝试。30次夜间重训的中位准确率为77%,在旧表覆盖的946个作业上,LEAP 有85.1%的预测落在实测值±20%以内,旧表为53.2%。
深度剖析
混合厂商加速器集群里,一个训练作业常能在多种硬件上运行,而选哪种硬件取决于它在每种硬件上的吞吐;LEAP 在作业尚未运行时给出这一估计,并按预测吞吐除以计算成本排序候选硬件。 此前的做法是一张按模型类型、训练器数、批大小和硬件类型查表的规则表,它只覆盖19种模型类型,在留出的一天里只对13%的作业尝试给出估计。 在同一天留出的7,131个作业、276种模型类型上,旧表覆盖其中946个作业,LEAP 在这946个作业上有85.1%的预测落在实测吞吐±20%以内,旧表为53.2%;在±10%以内分别为72.1%和33.4%。
预测器只用提交时就能拿到的信息:作业的启动配置、候选硬件的规格,以及同一作业此前运行测得的吞吐。 吞吐跨越七个数量级,单一回归器难以兼顾两端,因此模型在取对数后的吞吐上分箱,用一组梯度提升树分别拟合不同吞吐区间。 模型把对数吞吐分成13个等频区间,先迭代地为每个区间拟合一个中位数回归器并把样本重新归箱,再训练一个分类器仅凭特征判断作业落在哪个区间;每晚用最近30天约75万个作业尝试重训,并在次日留出数据上评估,30次重训的中位准确率为77.0%,单夜在73.5%到80.6%之间。
启示与展望
已展示的范围是一个生产训练集群:每天约2.5万个作业尝试、660多种模型类型、20多种硬件类型,准确率按作业尝试数加权统计,因此更多反映数量众多的小作业而非占用大部分 GPU 小时的大作业。
新硬件类型在部署运行实际作业之前无法被可靠排序,留出一种硬件类型会使准确率下降37个点;训练中未出现的模型族准确率也偏低,在唯一重新拟合级联的模型族上准确率下降49.7个点。作者还指出,夜间准确率波动约7个点,单日比较可能次日反转。
