nsml:
상상하는 모든것이 이루어지는 클라우드 머신러닝 플랫폼
성낙호
Leader, Clova AI Research (CLAIR), Naver
CLAIR
의 선행 연구 조직
다양한 문제를 해결하기 위한 새로운 모델의 연구, 개발
nsml
CLAIR의 효과적인 연구를 위해 시작된 머신러닝 플랫폼 프로젝트
(현재 개발 중!)
1.
빠르게 변화하는 딥러닝
딥러닝 트렌드
몰려드는 사람들, 폭발적인 연구
https://medium.com/@karpathy/a-peek-at-trends-in-machine-learning-ab8a1085a106
딥러닝 트렌드
몰려드는 사람들, 폭발적인 연구
2017 NIPS 티켓 판매 추이
https://twitter.com/soumithchintala/status/909057642731130880
경쟁력“효율”
https://xkcd.com/303/
https://www.youtube.com/watch?v=lxZyxxHOw3Y
Boost your lab w/ nsml
2.
연구 최적화: 기계와 사람
https://www.youtube.com/watch?v=cTvXbMSmIcI
self-motivated
http://insights.nationalseminarstraining.com/500/self-motivation-is-not-a-personality-trait/
Drive!
자기 결정 이론 (SDT)
Autonomy
상황을 통제하고 싶은 needs
Competence
능력을 향상시키고 싶은 needs
Relatedness
주변 사람들과 연결, 교류, 보살핌 등의 needs
‘사용자’를 포함한 시스템 최적화
‘사용자’를 포함한 시스템 최적화
쉽고 익숙하게
- 로컬 PC 사용 경험 같은,
- 기존의 작업 환경과 유사한,
- 빠른 응답 속도의,
‘사용자’를 포함한 시스템 최적화
쉽고 익숙하게
- 로컬 PC 사용 경험 같은,
- 기존의 작업 환경과 유사한,
- 빠른 응답 속도의,
해커처럼
- 동시에 여러 아이디어 병행 실험
- 작동 중인 실험의 실행 시간 변형
- 효과적인 분석
‘사용자’를 포함한 시스템 최적화
함께. 같이.
- 다른 사람의 실험을 쉽게 재현해 볼 수 있는,
- 다른 사람의 모델과 나의 모델을 쉽게 비교해 볼 수 있는,
쉽고 익숙하게
- 로컬 PC 사용 경험 같은,
- 기존의 작업 환경과 유사한,
- 빠른 응답 속도의,
해커처럼
- 동시에 여러 아이디어 병행 실험
- 작동 중인 실험의 실행 시간 변형
- 효과적인 분석
3.
여러 사람 + 다수의 기계
GPU 공유하기
수동 분배
각 서버마다 GPU를 특정 사용자에게 수동 분배 (게시판?)
http://www.remodeling.hw.net/business/leadership/charted-territory-a-low-tech-way-to-effectively-schedule-multiple-jobs
문제
어려운 재분배, 긴 유휴 시간, 환경 충돌
Dirty Hack
“당분간 우리 실험실은 텐서플로 버전 0.12만 쓴다!”
환경 충돌 해결
Containerization
Docker, Singularity
정적 배분 = 놀고 있는 GPU
재분배, 유휴 시간 문제 해결
Overbooking
GPU 리소스 가상화 — 문제 복잡도, 비결정적 시스템 응답
최대한 짧은 사용 시간
정확히 리소스를 사용할 시간만큼만 자원 배정
Save & resume
할당 받은 새로운 서버, 새로운 gpu를 이용해 작동하고 있던 실험을 쉽게 이주
Session, Model
Session: GPU를 할당 받아 한시적으로 작동하는 ‘프로그램’
GPU를 필요한 시간 동안만 점유하도록 함
Model: Session의 부산물(checkpoint)
자동 정량화: Validation을 거쳐 별도의 storage에 보관
실험 재개/이주
실험 설정 변경
[Game save 파일?]
필요할 때 더 많은 GPU
자유로운 GPU 할당
더 많은 GPU로 더 빠른 실험
Accurate, Large Minibatch SGD: Facebook
Scheduler
Bin packing: GPU
활용되지 못하고 방치되는 GPU 최소화
Soft constraint: Cache
Locality
문제: naïve한 중요도, 의미 없는 우선 순위?
Scheduler (w/ dynamic priority)
상황에 따른 우선 순위 배정
진행 경과에 따라 변화하는 우선 순위에 따른 자원 배정
Dynamic Priority Queue
실험이 ‘best model’을 갱신할 가능성을 기준으로 우선순위로 계산
단순한 grid search만으로도 쓸만한 AutoML
3.
쉽고 익숙한 nsml
cluster
web frontend
cli
storage
redis
Virtualized cluster
on your PC
One-liner cli (Your PC)
데이터셋 등록
학습
서빙
6.
더 효율적인 당신
당신의 Idle time 줄이기
병렬화의 한계
Amdahl’s law
당신의 Idle time 줄이기
동시에 여러 실험을 수행
분산된 응답
Exp. #1
Exp #2. vari. 1
Exp #2. vari. 2
Exp #3
당신의 인지 능력 향상
Balance your brain
Visualization: 수고 없이 정보를 이해할 수 있는 방법
https://www.interaction-design.org/literature/book/the-encyclopedia-of-human-computer-interaction-2nd-ed/data-visualization-for-human-perception
실험 경과 파악
기존 솔루션을 더 편리하게
Tensorboard, Visdom 등 이미 공개되어 있는 서버 활용
귀찮음 — 서버를 미리 띄워 놓고 데이터를 전송해야 함
느림 — 미리 코드에 리포트 관련 코드를 넣어 둬야 함
Your code @2 Visualization toolnsml
Your code @3
Your code @1
Event replay
Your program.py
…:/logs/events.log
PUB
SUB
push
가상 터미널 환경 (REPL)
작동 중인 실험에 명령 수행
변수 내용 확인
하이퍼 파라미터 변경
plot 내용 변경
임의의 함수 실행
가상 터미널 환경
Cli
다른 고급 nsml 기능의 기초
- 모델 save / load / infer
가상 터미널 환경
cli session
command command
resultresult
eval hack
5.
더 가벼운 실험
Async IO
응답 시간
유동적인 리소스 사용의 side effect
Slow boot-up
작업 시작 후, 첫 iteration 보고까지의 시간
Optimize!
자주 변경되지 않지만 용량이 큰 것: Environment, Dataset
자주 변경되지만 용량이 작은 것: Code
Dataset + Code
model code
dataset
user container
data volume container
문제: 느린 docker file copy
Dataset + Code
model code
user container
data volume container
cp
build 자주 변경되는 코드를 이미지로 다루는 게 맞지 않음
micro commit
https://pagethink.com/v/blog-detail/Collaborate-to-Design-Build-a-Lab-Three-Essential-Tactics/4l/
가장 쉬운 환경 설정 방법
기존 환경 설정 방법을 사용
새로 배울 게 없다!
가장 쉬운 환경 설정 방법
Base docker image
다양한 docker image 사용 가능
가장 쉬운 환경 설정 방법
문제: 전보다 “훨씬” 느린 실험 부팅 시간
setup.py, requirements.txt를 실행하는데 반복적으로 소요되는 시간
tensorflow/tensorflow
(base docker image)
setup.py
requirements.txt
+ nsml-23ab42ac(sha1)
(user docker image)
해결책: User docker image
Demo
Demo
nsml.DATASET_PATH
GPU server 10.0.0.1
Demo
python your_model.py
stdout
6.
실용적인 연구
7.
같이. 함께.
협업
Leaderboard
CI-ML
협업하는 연구 환경
다른 연구자의 결과를 쉽게 재현 및 확장
Kaggle 같은 leaderboard
학습된 모델은 자동적으로 순위 집계
응집력 있는 경쟁적 연구 환경
데이터셋을 대상으로 학습된 모델의 zoo
표준화, 정량화된 평가
잘 만들어진 경쟁 환경의 연구 가속화
AutoML의 environment
Continuously Integrated ML
sota server
Bob’s model 12
98.2%
Bob’s model 13
94.2%
Alice’s model 4
92.1%
Alice’s model 5
98.3%
REST API
https://service.nsml.navercorp.com/ASR
Stay tuned
RL MPI open-source
감사합니다
https://research.clova.ai/nsml-alpha

[224]nsml 상상하는 모든 것이 이루어지는 클라우드 머신러닝 플랫폼