[Tensorflow] Tensorflow Serving models.config 설정 방법

참조


목적

  • Tensorflow Serving 을 사용할 때 models.config 파일을 통해 모델 서버 구성 파일을 사용하여 모델 환경 설정을 할 수 있습니다.
  • 모델 서버 구성 파일은 프로토콜 버퍼 파일(protobuf)로, 언어 중립적이고 플랫폼 중립적 인 확장 가능하지만 구조 데이터를 직렬화하는 간단하고 빠른 방법을 제공합니다.

모델 구성 파일 예시

model_config_list {
 config {
    name: 'mnist'
    base_path: '/models/mnist/'
    model_platform: 'tensorflow'
    model_version_policy: {all: {}}
        }
}
  • name : 게재 가능한 모델 이름
  • base_path : 제공 가능한 버전을 찾을 경로를 지정합니다.
  • model_flatform : 모델이 개발된 플랫폼 정보입니다.
  • model_version_policy : 모델의 버전 정책은 클라이언트를 로드하고 제공할 모델의 버전을 나타냅니다. 기본적으로 모델의 최신 버전이 제공되며, model_version_policy 필드를 변경하여 재정의 할 수 있습니다.

models.config 파일 생성

  • 로컬 PC에 Tensorflow Serving Docker Container 와 볼륨 하기 전 models.config 파일이 우선 있어야 합니다.
  • models.config 파일이 없으면, Docker Container 가 정상적으로 실행되지 않습니다.
  • models.config 실행 경로는, 본인 로컬 경로 자유롭게 설정하면 됩니다.
  • 저는 Training 된 모델이 저장된 save_model 경로 안에 Config 디렉토리 생성하여 model.config 파일 생성했습니다.
  • 파일 내용은 아래와 같습니다.
  • 현재 Config 파일 내용을 보게 되면 총 2개의 Model Xception, vgg_19 를 정의 하였습니다.
  • 아래와 같이 설정하게 되면, Tensorflow Serving은 주기적으로 Xception, vgg_19 모델의 경로를 Polling 하여 모델을 주기적으로 Inference 하여 결과 값을 추론하게 됩니다.
model_config_list {
  config {
    name: 'Xception'
    base_path: '/models/model/Xception/'
    model_platform: 'tensorflow'
  }
  config {
    name: 'vgg_19'
    base_path: '/models/model/vgg_19/'
    model_platform: 'tensorflow'
  }
}

Docker로 model_config_file 설정 및 컨테이너 실행

  • 다음 명령어를 통해 Tensorflow Serving 컨테이너를 실행 합니다.
docker run -t --rm --name=tf-serving-mnist \
-p 8500:8500 \
-p 8501:8501 \
-v "C:/src/test_data/save_model/tensorflow/:/models/model" \
tensorflow/serving \
--model_name=mnist-model \
--model_config_file=/models/model/models.config \
--model_config_file_poll_wait_seconds=60
  • 위 명령어 의미는 다음과 같습니다.
    • --rm : docker 컨테이너가 종료됨과 동시에 자동으로 삭제 기능
    • -p : 포트포워딩, 포트 맵핑 설정, -p 옵션을 추가하여 실행함으로써 포트 포워딩 설정 할 수 있습니다.
      • 8500 : gRPC 서버
      • 8501 : rest API 서버
    • -v : Docker Volume 설정
    • --model_name : 모델 이름 설정
    • model_config_file : models.config 파일 경로
    • model_config_file_poll_wait_seconds : Tensorflow Serving 모델 확인
  • 위 명령어를 실행하게 되면 tf-serving-mnist 이름의 Docker Container가 실행됩니다.

컨테이너 정상 실행

  • 정상적으로 tf-serving-mnist 컨테이너가 실행된 것을 확인할 수 있습니다.

728x90

이 글을 공유하기

댓글

Designed by JB FACTORY