https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8924184 (논문pdf 링크)

노션 참조 

참조 :

http://www.nextobe.com/2020/05/14/딥러닝을위한-멀티-gpu-시스템-구축-및-사용-방법/

https://www.udna.kr/post/gpu-클러스터-관리의-어려움을-한-방에-해결하는-gpu-on-demand

https://www.samsungsds.com/kr/insights/TechToolkit_2021_GPU.html

 

 

ABSTRACT

클라우드의 다양한 구성 옵션에서 딥 러닝 모델을 훈련하기 위한 런타임 및 비용을 추정하는 클라우드 서비스인 AI 게이지를 제공한다.

INTRODUCTION

  • GPU 종류에 따라 10배까지도 실행속도 차이가 남
  • 여러가지 선택지들은 많지만 어떤 하드웨어를 사용할것인지는 아직도 사용자의 몫 (뭐가 좋을지 선택은 사용자가)
  • 런타임은 비용과 비례함
  1. 클라우드에서 기계 학습 작업의 런타임을 추정할것임 (온라인,오프라인 모두 성능 추정치를 제공하고, 비용예산및 성능 목표에 따라 선택할수있는 바람직한 옵션을 제공할것이라고함)
  1. 클라우드에서 딥 러닝 훈련 작업의 런타임 예측을 위한 비선형 회귀 모델을 개발 - 오프라인
  1. 학습 로그를 사용하여 클라우드에서 진행 중인 작업의 남은 런타임 추정을 위한 기술을 개발. 서비스는 작업을 실행하는 기본 DL 프레임워크와 독립적인 일반화된 형식으로 로그를 사용 - 온라인

II. CHALLENGES & USE CASES

A. Challenges in Building a Runtime Estimation Service

  1. 계속 DL 요소들과 GPU 갯수들 등등 많은 요소들에 의해 런타임 예측이 아주 복잡하다는걸 계속 반복해서 말하고 있다.
  1. 여러가지 프레임워크에도 적용되는 유연성을 제공할것이라고 한다.

B. AI Gauge Use Cases

  • 현재 딥러닝 실험을 위한 프레임워크 제공 경쟁이 치열하다 (= 한마디로 사용자가 지정가능한 옵션들이 매우 다양하다는 의미)
  • AI 게이지 서비스는 이런 서비스속에서 사용자가 어떤 GPU 유형을 선택해야할지,몇개를 선택할지(멀티지피유), 얼마나 오래 실행할것인지 , 얼마나 가성비좋은 선택인지등등 사용자의 질문에 답하는데 도움을 줄것
  • 한마디로 다양한 GPU 구성에 따른 작업 런타임 및 총 비용의 추정치를 제공할것

III. AI GAUGE SERVICE DESIGN

  • AI gauge 는 1)온라인 견적서비스 2)오프라인 견적서비스 이렇게 두가지를 제공

** 오프라인 : 미리 트레이닝해놓고 적용.

** 온라인 : 온라인 학습에서는 데이터를 순차적으로 미니배치별로 시스템을 훈련.온라인 학습은 연속적으로 데이터를 받고 빠른 변화에 스스로 적응해야 하는 시스템에 적합하다.

A. AI Gauge service overview

 

  • AI gauge 아키텍쳐에 대해 설명하고 있다.
  • API 를 사용하여 사용자와 서비스가 상호작용할수 있게 해준다
  • JOB Monitoring Service ⇒ 실행중인 잡의 진행상황을 모니터링하기 위해 개발.(It records the job progress as a time series with epoch/iteration numbers.)
  • online estimation service ⇒ retrieve the latest job progress from the database directly
  • 예측 결과등 시각화를 제공하기 위해 Grafana 대시보드를 사용해서 배포한다고 한다.
  • ** Grafana (개방형 분석및 모니터링 플랫폼)

    Grafana란, 시계열 매트릭 데이터를 시각화 하는데 가장 최적화된 대시보드를 제공해주는 오픈소스 툴킷이다. 다양한 DB를 연결하여 DB의 데이터를 가져와 시각화 할 수 있으며, 그래프를 그리는 방법도 간단히 마우스 클릭으로 완료할 수 있다.

    Grafana는 시계열 매트릭 데이터 수집에 강한 모습을 보이는 만큼, 활용하는 부분도 서버 리소스의 매트릭 정보나 로그 같은 데이터를 시각화는 데 많이 사용한다.

    시각화한 그래프에서 특정 수치 이상으로 값이 치솟을 때(예를 들어 CPU 사용량 80% 이상) 알림을 전달받을 수 있는 기능도 제공한다. 이러한 기능은 인프라 운영 관점에서 굉장히 중요한 기능이라고 할 수 있다.

    예시로 볼수있는 링크 : https://play.grafana.org/d/000000012/grafana-play-home?orgId=1

 

B. AI Gauge service request flows

  • AI Gauge 는 3가지 기능을 제공한다
    1. 실행중인 작업을 모니터링 ( Grafana 가 실시간 모니터링에 적합한 플랫폼인것같다 ex:kibana)ㄴ 작업 모니터링 서비스
    1. 실행중인 작업의 남은 런타임 및 비용추정ㄴ 온라인 견적서비스
    1. 작업의 총 실행시간과 비용을 추정ㄴ 오프라인 견적 서비스
    이 3가지는 완전히 본리되어있고 서로 상호호환하지않는다.

IV. ONLINE ESTIMATION (제공하는 두번째 서비스)

  • 온라인 예측 (2번째 서비스) 는 작업이 시작되고 나서야 사용가능하며, 남은 런타임을 에측한다.
  • 사용자는 AI 게이지를 사용하려면 Epoch/iteration 시간당 및 현재 완료된 Epoch/iteration 횟수에 관한 정보를 알아야한다.
  • 시계열 데이터를 기반으로 하기때문에 데이터의 시간적 속성을 연구해야한다.(= 시계열이 정상적이여야한다)
  • 그림4에서 1, 2, 4 GPU가 있는 작업은 단일 노드인 반면, 8 GPU 작업은 2노드에 분산된 작업이다.
  • 그림4에서 단일노드, 분산작업 모두다 iteration 별로 아주작은 변동은 존재하지만, 특별한 경향성이나 계절성같은것은 보이지않는다.
  • 그림4를 보면, Caffe jobs의 시간별 시계열 데이터를 보여주는데, 8개 gpu 작업에서 배치사이즈가 다른것보다 거의 2배인걸 확인할수있다.
  • ADF 테스트에서 실패한 작업들을 더 살펴보았다고한다, → 모든 작업의 총 에포크가 100개미만이고 테스트할 데이터 포인트가 너무 작아서 테스트가 실패했다는 이유를 발견함
  • 그다음으로 각 잡 타입에 따라 (모델과, gpu 를 달리해서) 잡 실행시간을 비교하기위해 coV를 계산.
  • ** IBM WML

    IBM 에서 제공하는 클라우드 서비스인가보다

    https://ibm-wml-api-pyclient.mybluemix.net/

    IBM 왓슨 기계 학습 서비스와 함께 작업 할 수 있습니다. 모델을 훈련, 저장 및 배포하고 API를 사용하여 점수를 매기고 마지막으로 애플리케이션 개발과 통합할 수 있습니다. ibm-watson-machine-learning라이브러리는 데이터 버전 3.5 이상에서 (나중에 IBM 클라우드라고 함) 서비스로 데이터를위한 IBM 클라우드 Pak® (2020 년 9 월 1 일 이후에 생성) V2 인스턴스 계획뿐만 아니라 IBM 클라우드 Pak® 작업 할 수 있습니다. 이전 버전의 IBM Cloud Pak® for Data의 경우 링크에 제공된 라이브러리의 베타 버전을 사용하십시오 .

  • ** ADF test ( Augmented Dicky-Fuller Test)
    • 시계열 데이터를 테스트하는 방법
    • 주로 시계열 데이터가 안정적인가? 여부를 확인하는데 이용되는 방법이다
    • 귀무가설 ( null hypothesis ) : 기각에 실패하면 시계열이 안정적이지 않음을 의미한다.
    • Alernative hypothesis 귀무가설이 기각되고 시계열이 안정적임을 의미한다.
    • 귀무가설을 기각하기 위해서는 p-value 가 0.05보다 낮게 나와야한다고 한다. 그 이상이면 시계열 데이터가 안정적이지않다는것을 의미한다.

V. OFFLINE ESTIMATION (제공하는 세번째 서비스)

 

  • 오프라인 견적 서비스는 클라우드에서 돌리기전에!!!! 실행해서 제공한다.
  • 이 제공된 추정치를가지고 사용자에게 가장 적합한 리소스구성을 제안한다. 즉 사용자가 잡관련 설명만 인풋으로 넣으면, 오프라인 견적 서비스는 아웃풋으로 비용 & 리소스 구성목록을 반환한다.
  • 피처로 플랫폼 하드웨어 특성뿐만 아니라, DL 클러스터와 관련된 피처들도 고려하기위해서 DL 클러스터의 작업로그를 분석했다.
  • 여기서 문제점 : 표1에 나오는 다양한 요소조합을 포함하는 공개 데이터를 찾을수 없었다. → 그래서 이것은 클러스터에서 실행되는 실제 사용자 작업에 대한 런타임 데이터로 보완이 되었다
  • 이것에 그치지않고 클러스터에서 더 많은 작업 추적이 수집될때, 예측모델을 점진적으로 조정하기 위해 오프라인 추정 구성요소는 확장가능한 설계를 가지고 있다. 재교육도 가능하다.
  • 기계 학습 모델에 사용되는 일반적인 성능 메트릭에는 평균 제곱 오류, 평균 절대 오류, 평균 제곱 로그 오류, 중간 절대 오류 및 R-제곱이 포함됩니다. 그러나 런타임 추정을 위한 예측 정확도는 초 단위의 절대 오차로 잘 설명되지 않습니다. 1분이라는 동일한 오류가 10시간 작업에는 작을 수 있지만 2분 작업에는 클 수 있습니다.
  • 현재 모델은 nonlinear regression and machine learning techniques like decision tree, random forest, and gradient boosting.
  • CART 알고리즘을 사용하여 결정트리를 구성함

 

VI. PERFORMANCE EVALUATION

A. Online Runtime Estimation

  • 그림6을 보면 4개의 장기 실행작업의 남은 실행시간을 살펴본다.ㄴ 예측한것과 실제 남은양이 거의같은걸 볼수있다.
  • 온라인 추정은 작업로그에서 읽은 반복시간에 이동평균을 사용하고 남은 런타임을 계산한다.
  • 그림7에서도 100K 반복에 대해 CIFAR10 데이터 세트[12]에서 실행된 Tensorflow ResNet 모델의 예상값과 실제값을 비교해서 보여준다.
  • 잔여 런타임을 구하기위해서 반복 런타임에 지수 가중이동평균을 적용해서 얻는다고한다 ( 10프로안짝의 오류로 싱글!!!!!!!!지피유!!!!!에 대한 우수한 에측을 제공한다고함

 

B. Offline Runtime Estimation

  • 이미지 분류를 위해 Pytorch 교육 작업을 사용하여 오프라인 런타임 추정을 평가합니다. 다양한 구성으로 옥스포드 꽃 데이터 세트에 대해 여러 이미지 분류기를 훈련하여 작업 추적을 수집했다.그리고나서 한 에포크당 평균시간을 측정
  • The configurations covered the feature space of network (Alexnet, ResNet18, ResNet50, VGG16); GPU-type (K80, P100, V100); number of learners (1,2,4); batch-size (16, 32, 64, 128, 256); and data-loading threads (0, 1, 2, 4, 8, 16, 32).
  • 여러가지 ML 모델개발 ( 5중교차검증사용, 521개의 데이터 포인트를 416개의 훈련 세트와 105개의 검증 세트로 무작위로 나눔)

 

  • y 가 예측한 에포크 레이턴시
  • I1, ..., I4는 One-Hot의 이진 변수
  • W는 작업자 수, B는 배치 크기, T는 스레드 수, F는 상대 네트워크 수
  • GPU 플롭의 경우 K80의 경우 1.87, P100의 경우 5.3, V100의 경우 7.8을 사용 (이는 K40에 대한 GPU 플롭의 비율)
  • 실험적으로 T와 F에 따라 런타임이 감소한다는 것을 관찰했고, 따라서 (2)에서 분모에 T와 F를 추가
  • 그림 8-a 는 선형 모델 2에 대한 테스트 데이터 세트에 대한 상대 오차(예: |y - y~|/y)의 CDF(누적 분포 함수)를 표시
  • (수정된) 선형 회귀 모델의 성능이 떨어지는 이유 중 하나는 종속 변수가 모델 매개변수의 기능에 대한 복잡한 비선형 종속성을 가질 수 있고 간단한 1차 비선형 항이 이를 포착할 수 없기 때문입니다. 예를 들어, 작업자 수 W는 그림 8b와 같이 Epoch 시간과 비선형 관계를 갖습니다. 이 비선형성을 포착하려면 일반 회귀 모델을 조사해야 합니다.

 

2) Nonlinear ML Models with One-Hot-Encoding:

  • 여기서는 런타임 추정을 위해 의사결정 트리, 랜덤 포레스트, 그래디언트 부스팅, 심층 신경망(DNN)의 네 가지 ML 모델을 제안!!!!!
  • 피처는 10개 사용 !!!! (OneHot-Encoding을 사용하여 3개의 숫자 변수와 7개의 이진 변수(네트워크 유형용 이진 변수 4개, GPU 유형용 이진 변수 3개)를 포함하여 10개의 독립 변수를 갖습니다)
  • 비선형 ML 모델 하이퍼파라미터 세트는 1. 트리최대깊이 2. 랜덤포레스트 부트스트랩사용여부 3. 그래디언트 부스팅 추정기수,학습률,최대특징수비율 4. DNN 레이어마다 노드개수
  • 표2 보면 바로확 이해갈것
  • 모든 ML 모델은 상대 예측 오류가 상당히 낮습니다(<15%) wow !

 

3) Nonlinear ML Models with Network Features:

훈련 데이터 세트의 알려진 네트워크에 네트워크 기능이 있는 예측 모델의 성능은 One-HotEncoding을 사용한 것과 거의 동일(표 II 참조).

 

 

VII. RELATED WORK

  • 딥러닝 프레임워크별 벤치마크

T. Ben-Nun, M. Besta, S. Huber, A. N. Ziogas, D. Peter, and T. Hoefler, “A modular benchmarking infrastructure for high-performance and reproducible deep learning,” CoRR, vol. abs/1901.10183, 2019. [Online]. Available: http://arxiv.org/abs/1901.10183

  • (클러스터내 DL 작업의 턴어라운드 시간을 개선하는 스케쥴러)

 

 

 

 

 

+ Recent posts