e-mail: [email protected], mobile: 010-4058-8210
Docker
- Docker-compose (Container management)
Python
- Flask (API)
- Tensorflow, ONNX, ONNXRuntime (Machine learning)
- 모델 학습에 필요한 하이퍼파라미터(epoch 수, batch size)를 받아 MNIST 분류를 위한 딥러닝 모델을 학습한다.
- MLflow 로컬 experiment tracking server에 metrics와 artifacts를 로깅한다.
- 학습이 완료되면 추적된 학습 정보를 반환한다.
epochs
(required): train set을 반복 학습할 수batch_size
(required): 한 번에 학습할 데이터의 수
{'epochs': 5, 'batch_size': 128}
- 학습 실험의 reference인 run id를 받아 해당하는 모델을 ONNX format으로 export한다.
- 변환된 ONNX 모델을 검증한다.(Tensorflow 모델과의 prediction 결과 값의 차이를 확인): Model governence process
- ONNX 모델을 Mlflow Model Registry에 등록한다.
- 등록된 모델의 정보를 반환한다.
run_id
(required): 머신러닝 실험의 id
{'run_id': fd10a17d028c47399a55ab8741721ef7}
- 이미지 파일을 받고, 가장 최근에 모델 레지스트리에 등록된 모델을 이용하여 숫자를 추론한다.
- 예측 결과를 반환한다.
image
(required): 28x28x1 이미지
{'image': [[...], ..., [...]]}
- API에 요청하는 샘플 코드: api_request.py(train, register, predict API 호출)
-
애플리케이션 실행하기:
docker compose up
-
MLflow ui 접속:
https://localhost:5000/
-
애플리케이션 멈추기:
docker compose stop
-
애플리케이션 다시 띄우기:
docker compose start
-
애플리케이션 삭제:
docker compose down