[论文解读] CPR: Understanding and Improving Failure Tolerant Training for Deep Learning Recommendation with Partial Recovery
CPR 是一种用于深度学习推荐模型的部分恢复训练系统,通过允许非故障节点在不重新加载检查点的情况下继续训练,减少了与检查点相关的开销,实现了最高达 8.5% 的开销降低,同时保持了与完整恢复相当的模型精度。它通过优化检查点间隔并优先保存频繁访问的参数,实现了性能与精度之间的平衡。
The paper proposes and optimizes a partial recovery training system, CPR, for recommendation models. CPR relaxes the consistency requirement by enabling non-failed nodes to proceed without loading checkpoints when a node fails during training, improving failure-related overheads. The paper is the first to the extent of our knowledge to perform a data-driven, in-depth analysis of applying partial recovery to recommendation models and identified a trade-off between accuracy and performance. Motivated by the analysis, we present CPR, a partial recovery training system that can reduce the training time and maintain the desired level of model accuracy by (1) estimating the benefit of partial recovery, (2) selecting an appropriate checkpoint saving interval, and (3) prioritizing to save updates of more frequently accessed parameters. Two variants of CPR, CPR-MFU and CPR-SSU, reduce the checkpoint-related overhead from 8.2-8.5% to 0.53-0.68% compared to full recovery, on a configuration emulating the failure pattern and overhead of a production-scale cluster. While reducing overhead significantly, CPR achieves model quality on par with the more expensive full recovery scheme, training the state-of-the-art recommendation model using Criteo's Ads CTR dataset. Our preliminary results also suggest that CPR can speed up training on a real production-scale cluster, without notably degrading the accuracy.
研究动机与目标
- 解决大规模分布式推荐训练中因完整检查点恢复导致的高计算开销问题。
- 减少在频繁发生节点故障的生产集群中,故障引起的训练延迟和资源消耗。
- 通过智能的部分恢复机制,在最小化检查点开销的同时保持模型精度。
- 识别并优化部分恢复系统中训练性能与模型质量之间的权衡。
- 设计一种可扩展、可投入生产的系统,其在效率和容错能力方面均优于完整恢复。
提出的方法
- 提出 CPR,一种部分恢复系统,允许故障发生后非故障节点无需重新加载检查点即可继续训练。
- 利用用户指定的目标模型质量(PLS)估算部分恢复的收益,以指导检查点间隔的选择。
- 优先保存访问频率更高的参数更新,以减少检查点大小和 I/O 开销。
- 实现两种变体——CPR-MFU 和 CPR-SSU——采用不同的检查点保存与恢复优化策略。
- 利用深度学习训练的迭代收敛特性,容忍部分恢复引入的临时不一致性。
- 基于生产环境中故障模式的数据驱动分析,指导系统设计,并在真实条件下验证性能。
实验结果
研究问题
- RQ1在推荐模型训练中应用部分恢复时,训练性能与模型精度之间的权衡关系如何?
- RQ2如何优化检查点保存间隔,以在维持目标模型质量的同时最小化开销?
- RQ3哪些参数访问模式对部分恢复中的检查点开销和精度下降影响最大?
- RQ4与完整恢复相比,部分恢复是否能减少检查点相关开销而不降低模型质量?
- RQ5在现实的故障分布下,CPR 在训练节点数量增加时的可扩展性如何?
主要发现
- 完整恢复中与检查点相关的开销平均占总训练时间的 12%,最差的 5% 任务甚至出现高达 43% 的延迟。
- CPR 将检查点相关开销从完整恢复的 8.2–8.5% 降低至仅 0.53–0.68%(在生产规模集群配置下)。
- 在 Criteo CTR 数据集上训练最先进推荐模型时,CPR 维持了与完整恢复相当的模型精度。
- CPR 的可扩展性优于完整恢复:随着节点数量增加,开销因相对更新损失减少而下降。
- 该系统实现了显著的效率提升——在 30 天内,17,000 个任务中因故障处理共消耗了 1,156 台机器年计算资源,CPR 可显著减少该开销。
- 初步结果显示,CPR 可在真实生产集群中加快训练速度,且未造成明显的精度下降。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。