Microsoft NNi
- NNI(Neural Network Intelligence)은 아래의 기능 들의 자동화를 도와주는 강력한 도구
- Feature Engineering
- Neural Architecture Search
- Hyperparameter Tuning
- Model Comperssion
- AutoML(Automated Machine Learning)을 실험들을 관리
- 로컬머신, 원격서버, OpenPAI, Kubeflow, K8S, 클라우드 같은 다른 학습 환경에서 최적의 신경망 구조, 하이퍼파라미터들을 찾기 위해 알고리즘을 튜닝
NNI 기능 요약
- 학습 실험들을 관리하기 위해 Commnd Line과 Web UI 모두 제공
- 확장 가능한 API를 사용하면 AutoML 알고리즘과 학습 서비스를 커스터마이징 할 수 있음
- 새로운 사용자를 위해 최신 AutoML 알고리즘과 인기있는 학습 플랫폼을 제공
NNI의 아키텍쳐
- 주요 컨셉
- 실험(Experiment): 모델의 최적의 하이퍼파라미터를 찾는 것, 최적의 신경망을 찾는 것
- 검색공간(Search Space): 모델 튜닝을 할 수 있는 영역(각 하이퍼파라미터의 변수 범위)
- 구성(Configuration): 검색 공간의 인스턴스(각 하이퍼파라미터가 갖는 특정 값)
- 트라이얼(Trial): 새로운 구성(하이퍼파라미터를 특정 신경망 구조를 설정)을 적용하는 개별적인 시도, 트라이얼 코드는 실행가능 해야 함
- 튜너(Tuner): 다음 시도를 위한 새로운 구성을 생성하는 AutoML알고리즘, 다음 트라이얼은 이 구성과 함께 실행됨
- 평가자(Assesor): 트라이얼의 중간 결과(주기적으로 테스트 데이터 셋의 accuracy를 평가)를 분석하여 이 트라이얼이 조기 종료되어야 하는지 아닌지 알려줌
- 학습플랫폼(Training Plaform): 트라이얼을 실행하는 환경, 실험들의 구성에 의존적
- 실험의 실행
- 튜너는 검색공간과 생성된 구성들을 수신
- 구성은 학습 플랫폼에 제출, 추후 행위들은 튜너에 보고됨
- 새로운 구성을 다시 생성하고 제출
- 실험의 과정
- Step 1: 검색공간의 정의
- Step 2: 모델 코드 업데이트
- Step 3: 실험의 정의
설치(테스트 당시 최신 버전 v1.4)
python -m pip install --upgrade nni
설치 검증
-
Tensorflow 2.x 예제 이용
-
소스코드를 clone하여 예제 다운로드
git clone -b v1.4 https://github.com/Microsoft/nni.git
-
MNIST 에제를 실행
nnictl create --config nni/examples/trials/mnist-tfv2/config.yml
-
INFO: Successfully Started experiment!
메시지가 커맨드라인 창에 출력되면 성공적으로 시작된 것 -
표시된 Web UI URL을 웹 브라우저에 입력하여 접속
실행결과
-
설정대로 실행됨(자세한 내용은 차후에 기록할 예정), 총 10번의 트라이얼 수행, 49분 소요
-
Web UI
Overview
-
Web UI
Trials detail → Hyper-Parameter
-
실행 후 체크포인트 등 결과파일 생성(디렉토리만 출력)
참고문서
'AI&BigData > MLOps' 카테고리의 다른 글
머신러닝 실험관리 도구 Sacred를 위한 웹 대시보드 Omniboard (0) | 2020.03.01 |
---|---|
Sacred - 머신러닝 실험관리 도구 (1) | 2020.02.21 |