Docker로 모델 서빙서버 생성하기
Docker로 훈련된 모델을 서빙하는 방법에 대해서 정리합니다.
모델 서빙서버 생성하기
1. S3 버킷에서 모델 파일 다운 받기 AWS에 접속한 상태에서 아래의 코드를 입력하면 로컬에 다운받을 수 있다.
1 |
|
2. tar 묶음 해제하기 모델을 다운받은 디렉토리로 이동하여 아래의 코드를 입력하면 간단하게 해제할 수 있다.
1 |
|
3.도커에서 사용할 이미지 다운받기 서빙서버를 생성하기 위해서는 아래의 이미지를 다운받아야 한다.
1 |
|
위 이미지는 텐서플로우측에서 서빙을 위해 제공하는 이미지이다. 이 이미지를 사용하면 간단하게 서빙서버를 만들 수 있다.
4. 도커에 서빙서버 생성하기 커맨드라인에서 아래의 코드를 입력하여 다운받은 모델을 서빙할 서버를 생성한다.
1 |
|
이제 모델 서빙서버가 만들어졌다. 아래의 코드를 입력하면 현재 서빙서버가 작동되고 있음을 확인할 수 있다.
1 |
|
예제로 모델 서빙서버 테스트하기
이제 서빙서버에 있는 모델이 잘 작동하는지 확인해보자. 커맨드라인에서 Python을 실행한 후 아래의 라이브러리들을 다운로드한다.
1 |
|
위 모델은 MNIST 데이터를 학습하였다. 따라서 테스트는 텐서플로우 측에서 제공하는 MNIST 데이터셋으로 진행할 것이다. 아래의 코들르 입력하여 MNIST 데이터들을 가져오자.
1 |
|
테스트셋은 10000개나 들어있다. 따라서 시각적으로 확인해보기 위해 앞의 2개의 이미지만 분리하여 예측해볼 것이다. 아래의 코드를 입력하여 이미지 2개를 분리하자.
1 |
|
이제 이미지 2개인 temp
를 서빙서버에 보내고 예측값을 받아오자.
1 |
|
우리가 보낸 이미지의 예측값이 predictions
에 저장되었다. 아래의 코드를 입력하면 값들을 확인할 수 있다.
1 |
|
모델은 첫 번째 이미지를 7이라고 예측했고, 두 번째 이미지를 2라고 예측하였다. 아까 미리 저장해두었던 정답을 확인해보자.
1 |
|
모델의 예측이 정확히 맞았다.