NNI 개요
NNI 개요
NNI는 '어떤 하이퍼파라미터가, 어떤 모델 구조가, 얼마나 압축해도 잘 동작할까'를 자동으로 탐색해 주는 툴킷이에요. AutoML을 시작하려는 개발자에게 말로 다 설명하기보다, 실제로 어떤 문제를 자동화하는지 보여주는 게 빠르죠.
출처: microsoft/nni
NNI는 피처 엔지니어링, 신경망 구조 탐색, 하이퍼파라미터 튜닝, 모델 압축을 위한 오픈소스 AutoML 툴킷이에요. 딥러닝 실험을 자동화해서, 사람이 일일이 하이퍼파라미터를 바꿔가며 실험하는 대신 최적 설정을 탐색하게 해 줘요.
설치부터 볼게요.
pip install nni
NNI가 제공하는 핵심 기능은 크게 세 갈래예요.
- 하이퍼파라미터 튜닝(HPO) — Grid Search, Random, TPE, Anneal, Evolution, Hyperband, PBT, Bayesian optimization, BOHB, SMAC 등 여러 탐색 알고리즘
- 신경망 구조 탐색(NAS) — DARTS, ENAS, FBNet, ProxylessNAS, SPOS 같은 원샷(one-shot) 방식과 다중 시도(multi-trial) 방식
- 모델 압축 — L1 Norm, Taylor FO Weight, Movement 같은 프루닝(pruning)과 Naive, QAT, LSQ, DoReFa, BNN 같은 양자화(quantization)
이런 탐색 작업을 로컬 머신, 원격 SSH 서버, Azure ML, Kubernetes 기반 등 다양한 트레이닝 서비스에서 실행할 수 있어요. NNI는 오픈소스라서 자체 WebUI도 제공해 실험 진행 상황을 눈으로 확인할 수 있어요.