Resource Elasticity in Distributed Deep Learning

논문 위치 : https://www.cs.princeton.edu/~andrewor/deep-learning-elasticity.pdf (MLSys'20)

논문 요약 : 현재 Distributed Learning (분산학습) 방식이 매우 별로다 ... 즉 Resource를 Over-provisioninig 또는 Under-provisioning 하는 경우가 많다. 그래서 Resource를 효율적으로 사용하면서 학습에 필요한 Cost도 줄일 수 있는 분산학습 방법을 본 논문에서 제안한다.

Motivation

현재는 특정 Model 들에 대해서는 학습 방식에 대한 다양한 가이던스가 제공되지만, 여전히 가이던스가 없는 Dataset이나 Model에 대해서는 Trial-and-Error (노가다) 방식이 가장 보편적으로 사용되는 방식이다.

학습을 위한 적절한 리소스를 찾는 과정도 꽤 많은 Trial-and-Error가 필요하다.

그렇기 때문에 대부분 Suboptimal이긴 하지만 fixed set of resource를 사용해서 학습 job을 수행한다. 아래의 문제들이 쉽게 발생한는데

만약 Optimal 하게 설정을 했음에도 불구하고 Persistent Straggler들에 의해서 전체 성능이 크게 감소할 수 있다. (Figure 1. 은 Synchronous SGD 학습에서 Straggler가 있는 경우 Perf Degradation)

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/e222e674-330e-4234-b519-af95522077b4/Untitled.png

Resource elasticity

저자들은 위의 문제를 해결하기 위해서 근본적으로 분산 학습 시스템은 elastic 해야한다고 주장한다. 즉 상황에 따라서 Resource의 할당과 해지가 dynamic하게 학습 중간에 발생할 수 있어야 한다. (이미 대부분의 분산 cluster들은 이러한 elasticity를 제공하고 있다.)

Main Challenges

그럼 현재의 분산 학습 시스템에서 elasticity를 제공하기 어려운 이유는 현재 학습 Framework (Tensorflow, MXNet, Pytorch) 들이 학습에 필요한 여러 자원들을 static하게 관리하고 있기 때문이고, 또 다른 이유는 학습 방식이 기존 분산 시스템에서 도는 Application과의 특성이 현저히 다름에도 있다.

일반적인 분산 workload 와 분산 학습 workload의 차이점

Autoscaling engine for distributed learning