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배까지도 실행속도 차이가 남
- 여러가지 선택지들은 많지만 어떤 하드웨어를 사용할것인지는 아직도 사용자의 몫 (뭐가 좋을지 선택은 사용자가)
- 런타임은 비용과 비례함
- 클라우드에서 기계 학습 작업의 런타임을 추정할것임 (온라인,오프라인 모두 성능 추정치를 제공하고, 비용예산및 성능 목표에 따라 선택할수있는 바람직한 옵션을 제공할것이라고함)
- 클라우드에서 딥 러닝 훈련 작업의 런타임 예측을 위한 비선형 회귀 모델을 개발 - 오프라인
- 학습 로그를 사용하여 클라우드에서 진행 중인 작업의 남은 런타임 추정을 위한 기술을 개발. 서비스는 작업을 실행하는 기본 DL 프레임워크와 독립적인 일반화된 형식으로 로그를 사용 - 온라인
II. CHALLENGES & USE CASES
A. Challenges in Building a Runtime Estimation Service
- 계속 DL 요소들과 GPU 갯수들 등등 많은 요소들에 의해 런타임 예측이 아주 복잡하다는걸 계속 반복해서 말하고 있다.
- 여러가지 프레임워크에도 적용되는 유연성을 제공할것이라고 한다.
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가지 기능을 제공한다
- 실행중인 작업을 모니터링 ( Grafana 가 실시간 모니터링에 적합한 플랫폼인것같다 ex:kibana)ㄴ 작업 모니터링 서비스
- 실행중인 작업의 남은 런타임 및 비용추정ㄴ 온라인 견적서비스
- 작업의 총 실행시간과 비용을 추정ㄴ 오프라인 견적 서비스
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)
- 시계열 데이터를 테스트하는 방법
- 주로 시계열 데이터가 안정적인가? 여부를 확인하는데 이용되는 방법이다
- https://skyeong.net/285 (파이썬 ADF 테스트 참조하기)
- 귀무가설 ( null hypothesis ) : 기각에 실패하면 시계열이 안정적이지 않음을 의미한다.
- Alernative hypothesis 귀무가설이 기각되고 시계열이 안정적임을 의미한다.
- 귀무가설을 기각하기 위해서는 p-value 가 0.05보다 낮게 나와야한다고 한다. 그 이상이면 시계열 데이터가 안정적이지않다는것을 의미한다.
** coV (변동 계수)
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 알고리즘을 사용하여 결정트리를 구성함
** ID3 알고리즘 (재)
https://leedakyeong.tistory.com/entry/Decision-Tree란-ID3-알고리즘 (정리굳)
엔트로피가 불순도를 측정하는 지표!
** CART 알고리즘
https://tyami.github.io/machine learning/decision-tree-4-CART/
CART는 ID3알고리즘과 비슷한 시기에, 별도로 개발된 알고리즘으로 Classification And Regression Tree의 약자입니다.
이름 그대로 Classification뿐 아니라 Regression도 가능한 알고리즘인데, 이 외에도 앞서 소개한 알고리즘들과 몇 가지 차이점이 존재합니다.
https://leedakyeong.tistory.com/entry/의사결정나무Decision-Tree-CART-알고리즘-지니계수Gini-Index란 (설명 굳)
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
- Optimus ( 지라에 있음) https://i.cs.hku.hk/~cwu/papers/yhpeng-eurosys18.pdf
- (클러스터내 DL 작업의 턴어라운드 시간을 개선하는 스케쥴러)