[논문 리뷰] Strategies and Principles of Distributed Machine Learning on Big Data
이 논문은 대규모 데이터에서 효율적이고 확장 가능하며 정확한 분산 기계학습 시스템을 설계하기 위한 네 가지 핵심 원칙—분포 전략, 통신 브리징, 통신 메커니즘, 통신 내용—을 제안한다. 이 원칙들을 활용해 Petuum이라는 일반 목적의 기계학습 프레임워크를 도입하였으며, 오차 내성과 압축된 업데이트와 같은 기계학습 전용 특성을 활용하여 10대에서 1000대의 머신에서 거의 이상적인 스피드업을 달성한다. 이를 통해 딥 뉴럴 네트워크나 토픽 모델과 같은 복잡한 모델의 고성능 분산 학습을 가능하게 한다.
The rise of Big Data has led to new demands for Machine Learning (ML) systems to learn complex models with millions to billions of parameters, that promise adequate capacity to digest massive datasets and offer powerful predictive analytics thereupon. In order to run ML algorithms at such scales, on a distributed cluster with 10s to 1000s of machines, it is often the case that significant engineering efforts are required --- and one might fairly ask if such engineering truly falls within the domain of ML research or not. Taking the view that Big ML systems can benefit greatly from ML-rooted statistical and algorithmic insights --- and that ML researchers should therefore not shy away from such systems design --- we discuss a series of principles and strategies distilled from our recent efforts on industrial-scale ML solutions. These principles and strategies span a continuum from application, to engineering, and to theoretical research and development of Big ML systems and architectures, with the goal of understanding how to make them efficient, generally-applicable, and supported with convergence and scaling guarantees. They concern four key questions which traditionally receive little attention in ML research: How to distribute an ML program over a cluster? How to bridge ML computation with inter-machine communication? How to perform such communication? What should be communicated between machines? By exposing underlying statistical and algorithmic characteristics unique to ML programs but not typically seen in traditional computer programs, and by dissecting successful cases to reveal how we have harnessed these principles to design and develop both high-performance distributed ML software as well as general-purpose ML frameworks, we present opportunities for ML researchers and practitioners to further shape and grow the area that lies between ML and systems.
연구 동기 및 목표
- 기계학습 시스템 설계의 비효율성으로 인해 이론적 기대에 못 미치는 스피드업이 자주 발생하는 분산 기계학습의 확장성 격차를 해소하기 위해.
- 기계학습 연구와 시스템 공학 간 격차를 해소하기 위해 분산 기계학습 시스템 설계를 기계학습의 통계적 및 알고리즘적 통찰에 기반하게 하기 위해.
- 다양한 알고리즘을 지원하면서도 정확성과 수렴 보장을 보장하는 일반 목적의 고성능 분산 기계학습 프레임워크를 개발하기 위해.
- 10대에서 1000대의 머신으로 이루어진 클러스터에서 복잡한 모델(예: 딥 러닝, 토픽 모델)을 최소한의 엔지니어링 오버헤드로 효율적으로 실행하기 위해.
- 저수준 시스템 복잡성을 추상화하여 기계학습 전문가가 모델 논리에 집중할 수 있도록 하면서 거의 이상적인 병렬 성능을 달성할 수 있는 플랫폼을 만들기 위해.
제안 방법
- 네 가지 핵심 설계 원칙을 도입: (1) 기계학습 프로그램을 어떻게 분산할 것인지, (2) 기계 간 통신과 기계학습 계산을 어떻게 브리징할 것인지, (3) 어떻게 통신할 것인지, (4) 어떤 정보를 기계 간에 교환할 것인지.
- Bösen이라는 유한 비동기 키-밸류 스토리지에서 Stale Synchronous Parallel (SSP) 일관성 모델을 활용하여 데이터 병렬 학습에서 성능과 정확성의 균형을 확보한다.
- 모델 병렬 학습을 위한 동적 스케줄러인 Strads를 사용하여 핵심 모델 구성 요소에 대한 계산을 우선순위로 배정하고 안전하지 않은 병렬 업데이트를 방지한다.
- 요소 분해 및 집계 전략을 적용하여 통신 비용을 최소화한다. 예를 들어 상단 레이어에서는 요소를 브로드캐스트하고 하단 레이어에서는 업데이트를 집계하여 대역폭을 절감한다.
- Caffe의 메모리 접근 루틴을 Bösen의 분산 공유 프로그래밍 인터페이스로 대체하여 Petuum 위에 Poseidon이라는 분산 딥 러닝 시스템을 구축함으로써, 최소한의 코드 변경으로 GPU 수준의 분산 학습을 가능하게 한다.
- C++ 및 자바, YARN, HDFS를 지원하는 통합 프레임워크로서 Petuum을 설계하여 기존 Hadoop 클러스터에 배포 가능하게 하면서도 고성능과 정확성을 유지한다.
실험 결과
연구 질문
- RQ110대에서 1000대의 머신으로 이루어진 클러스터에서 알고리즘적 정확성과 수렴성을 유지하면서 기계학습 프로그램을 효과적으로 분산 배포할 수 있는 방법은 무엇인가?
- RQ2반복적인 기계학습 계산과 기계 간 통신 사이의 격차를 가장 잘 메우는 시스템 수준의 추상화와 일관성 모델은 무엇인가?
- RQ3기계학습 워크로드에 고유한 통계적 및 구조적 특성을 활용하여 분산 기계학습에서 통신 오버헤드를 어떻게 최소화할 수 있는가?
- RQ4성능을 극대화하고 지연을 최소화하기 위해 무엇을 기계 간에 교환할 것인지 결정하는 기준은 무엇인가?
- RQ5일반 목적의 기계학습 프레임워크가 다양한 기계학습 알고리즘에서 거의 이상적인 스피드업을 달성하면서도 저수준 시스템 복잡성을 추상화할 수 있는가?
주요 결과
- Petuum은 기계학습 전용 시스템 설계 원칙을 적용하여 10대에서 1000대의 머신에서 거의 이상적인 스피드업을 달성함으로써 분산 기계학습에서 흔히 발생하는 비선형 스피드업 문제를 해결한다.
- Bösen의 Stale Synchronous Parallel (SSP) 모델은 수렴성이나 정확성을 희생시키지 않으면서도 비동기 방식과 유사한 성능을 제공하여, MapReduce와 배치 동기 실행 방식을 모두 능가한다.
- 동적 스케줄러인 Strads는 필요로 하는 부분에 가장 많은 계산을 우선순위로 배정함으로써 성능을 향상시키며, 수렴하지 않는 병렬 업데이트를 방지한다.
- 요소 브로드캐스트와 업데이트 집계를 통한 통신 최적화로 통신 비용을 $KD$에서 $S(K+D)$ 또는 $KD \ll S(K+D)$로 줄여, 레이어에 따라 상당한 확장성 향상을 이룬다.
- Petuum 기반으로 구축된 Poseidon은 Caffe의 분산 버전으로, 최소한의 코드 변경으로 GPU 수준의 분산 학습을 가능하게 하여 기존 Caffe 사용자에게도 사용성과 유사성을 유지한다.
- 프레임워크는 로지스틱 회귀, k-means, 랜덤 포레스트, MedLDA, 딥 러닝 등 10개 이상의 즉시 실행 가능한 기계학습 알고리즘을 지원하여 광범위한 적용 가능성과 높은 성능을 입증한다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.