[论文解读] SLAQ: Quality-Driven Scheduling for Distributed Machine Learning
SLAQ 是一种面向分布式机器学习的质量驱动调度器,通过根据每个作业的预测质量提升动态分配集群资源,利用归一化损失变化和收敛速率建模,优先处理最具进步潜力的作业。与公平调度器相比,SLAQ 将达到 90% 损失减少的时间缩短了 45%,显著加速了探索性机器学习训练。
Training machine learning (ML) models with large datasets can incur significant resource contention on shared clusters. This training typically involves many iterations that continually improve the quality of the model. Yet in exploratory settings, better models can be obtained faster by directing resources to jobs with the most potential for improvement. We describe SLAQ, a cluster scheduling system for approximate ML training jobs that aims to maximize the overall job quality. When allocating cluster resources, SLAQ explores the quality-runtime trade-offs across multiple jobs to maximize system-wide quality improvement. To do so, SLAQ leverages the iterative nature of ML training algorithms, by collecting quality and resource usage information from concurrent jobs, and then generating highly-tailored quality-improvement predictions for future iterations. Experiments show that SLAQ achieves an average quality improvement of up to 73% and an average delay reduction of up to 44% on a large set of ML training jobs, compared to resource fairness schedulers.
研究动机与目标
- 解决现有集群调度器对所有作业一视同仁、不考虑其训练阶段的低效问题。
- 通过为具有更大改进潜力的作业分配更多资源,最大化分布式机器学习系统整体的模型质量。
- 在探索性机器学习工作流中实现更快收敛,此类工作流中早期近似模型已足够用于验证。
- 设计一种可扩展的在线调度器,能够适应不断变化的资源需求,而无需离线性能分析。
提出的方法
- 将迭代间损失变化相对于最大观测变化进行归一化,实现不同算法间进度的跨算法比较。
- 使用曲线拟合建模收敛行为:子线性算法使用 $ f(k) = \frac{1}{ak^2 + bk + c} + d $,线性/超线性算法使用 $ f(k) = \mu^{k-b} + c $。
- 采用指数加权历史记录,优先考虑近期损失值,以在接下来的 10 次迭代内实现小于 5% 的预测误差。
- 应用一种贪婪的在线调度策略,每次仅将一个 CPU 核心重新分配给单位资源带来最高预测损失减少的作业。
- 从均等分配(每个作业 1 个核心)开始,防止饥饿,并基于预测的质量增益逐次重新分配资源。
- 集成于 Apache Spark 和 MLlib 中,支持在多样化数据集和算法上的真实世界评估。
实验结果
研究问题
- RQ1通过优先处理最具改进潜力的作业,调度器能否提升分布式机器学习的整体模型质量?
- RQ2如何对不同机器学习算法的损失变化进行归一化,以实现进度的公平比较?
- RQ3仅基于近期训练历史,能否以高精度在线预测未来的损失减少?
- RQ4与公平调度器相比,基于质量的调度是否能缩短达到目标损失减少所需的时间?
- RQ5此类系统能否在实时环境中扩展至数万个并发作业?
主要发现
- 与公平调度器相比,SLAQ 将实现 90% 损失减少的平均时间缩短了 45%(从 71 秒降至 39 秒),将实现 95% 损失减少的平均时间缩短了 30%(从 98 秒降至 68 秒)。
- 在 800 秒的时间窗口内,所有作业的平均归一化损失在 SLAQ 下比在公平调度器下低了 73%。
- SLAQ 将 60% 的 CPU 核心分配给损失最高(最具改进潜力)的 25% 作业,而公平调度器仅将 22% 的核心分配给接近收敛的 50% 作业。
- 在所有测试算法中,对未来 10 次迭代的预测误差均低于 5%,证明了收敛模型的高精度。
- SLAQ 具备高效可扩展性,在 16,000 个核心上处理 4,000 个作业时,调度决策仅需数百毫秒至数秒。
- 该系统显著加速了探索性机器学习工作流,因为在这些工作流中,早期近似模型已足够用于验证。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。