분산 머신러닝 플랫폼 비교

분산시스템 관점에서 ML 플랫폼을 연구하고 이러한 플랫폼의 통신 및 제어, 병목 현상을 분석합니다. 우리는 또한 이러한 플랫폼에서 결함 허용성과 프로그래밍 용이성을 조사했습니다.

분산 ML 플랫폼은 3 가지 기본 설계 방식이 있습니다. 1)기본 데이터플로우, 2)파라미터-서버 모델, 3)고급 데이터플로우로 분류됩니다.

각 방법에 대해 간략하게 이야기합니다. 기본 데이터플로우 접근법의 예로 Apache Spark, 파라미터-서버 모델의 예로 PMLS(Petuum), 고급 데이터플로우 모델의 예로 TensorFlow 및 MXNet이 있습니다. 우리는 그들의 성과를 비교하는 몇 가지 평가 결과를 제공합니다. 평가 결과에 대한 자세한 내용은 보고서를 참조하십시오.

Spark

Spark에서 연산은 DAG(directed acyclic graph)로 모델화 됩니다. 여기서 각 정점은 RDD(Resilient Distributed Dataset)를 나타내고 각 에지는 RDD에서의 연산을 나타냅니다. RDD는 논리적 파티션으로 분할된 객체 모음으로, 디스크에 shuffle/overflow와 함께 메모리에 저장되고 처리됩니다.

 

 

PMLS

PMLS는 깨끗한 슬레이트로 ML을 위해 특별히 설계되었습니다. 반복 집약적인 ML 학습 프로세스를 제공하기 위해 파라미터 서버 (PS) 추상화를 도입했습니다. PS (그림에서 녹색 상자에 표시됨)는 분산 메모리 내 키값 저장소로 유지 관리되며 복제되고 공유됩니다 : 각 노드는 모델의 공유(매개 변수 공간)에 대한 기본 역할을하며 다른 공유에는 보조/복제본 역할을 합니다. 따라서 PS는 노드 수와 관련하여 잘 확장됩니다.

 

 

TensorFlow

Google은 DistBelief라는 파라미터 – 서버 모델 기반의 분산형 ML 플랫폼을 사용했습니다. DistBelief 에 대한 주요 문제는 ML 응용 프로그램을 작성하기위한 저수준 코드를 망칠 필요가 있다는 것이 었습니다. Google은 직원들이 분산 실행에 정통하지 않으면서 ML 코드를 작성할 수 있기를 원했습니다. Google이 대규모 데이터 처리를 위해 MapReduce 프레임 워크를 작성한 것과 같은 이유입니다.

따라서 TensorFlow는 그 목표를 실현하도록 설계되었습니다. TensorFlow는 데이터 흐름의 패러다임을 채택하지만 계산 그래프가 DAG 일 필요는 없지만 사이클을 포함하고 변경 가능한 상태를 지원할 수 있는 고급 버전을 채택합니다. Naiad 디자인은 TensorFlow 디자인에 영향을 미칠 수 있다고 생각 합니다.

 

 

평가 결과

평가를 위해 Amazon EC2 m4.xlarge 인스턴스를 사용했습니다. 각각은 Intel Xeon E5-2676 v3 프로세서 및 16GB RAM으로 구동되는 4개의 vCPU를 포함합니다. EBS 대역폭은 750Mbps입니다. 평가를 위해 두 가지 공통적인 머신러닝 과제인 2 계층 로지스틱 회귀와 다중 계층 신경망을 사용한 이미지 분류를 사용했습니다. 여기에 몇 개의 그래프 만 제공하고 있습니다. 더 많은 실험을 위해 논문을 확인하십시오. 실험에는 몇 가지 제한 사항이 있었습니다. 적은 수의 기계를 사용했기 때문에 규모를 테스트 할 수 없었습니다. 또한 CPU 컴퓨팅에만 국한되어 GPU로 테스트하지 않았습니다.

 

 

이 그림은 DNN에 대한 플랫폼의 속도를 보여줍니다. Spark는 단일 계층 logistic 회귀와 비교하여 두 계층의 NN에 더 큰 성능 손실이 있음을 확인했습니다. 이것은 반복적인 계산이 필요하기 때문입니다. 이것이 맞을 수 있기 때문에 Spark의 드라이버에 파라미터를 보관했습니다. 파라미터를 RDD에 보관하고 모든 반복 후에 파라미터를 업데이트하면 상황이 훨씬 더 악화되었을 것입니다.

 

 

이 그림은 플랫폼의 CPU 사용률을 보여줍니다. Spark 애플리케이션은 CPU 사용률이 현저히 높은 것으로 보이며, 주로 직렬화 오버 헤드로 사용됩니다. 이전 문제로 인해 이 문제가 지적되었습니다.

결론 및 향후 방향

ML / DL 응용 프로그램은 당황 스럽지만 동시에 병렬 알고리즘 관점에서는 별로 흥미롭지 않습니다. 분산 ML 플랫폼에서의 교육을 위해 파라미터 – 서버 방식이 성공했다고 말할 수 있습니다.

원문
http://muratbuffalo.blogspot.kr/…/a-comparison-of-distribut…

논문
https://www.cse.buffalo.edu/~de…/publications/DistMLplat.pdf

Tags:

머신러닝

Spark

PMLS

TensorFlow

logistic

DNN

RDD

Naiad

DistBelief