온디맨드 방식으로 Inception 모델 서빙하기 (InceptionServingExample)


텐서플로우 기반 Inception 모델을 이용한 이미지 분류 RESTful 서비스 예제를 소개합니다.

모델 등록하기

웹툴킷 화면에서 [Repository] 탭을 클릭하여, Inception 모델을 등록합니다.

모델 폴더 생성하기

웹툴킷 화면에서 [New Directory] 메뉴를 클릭하여, Inception 모델을 등록할 폴더를 생성합니다.
모델 폴더 생성화면

모델 업로드

웹툴킷 화면에서 [File Upload] 메뉴를 클릭하여, 모델을 등록합니다.

[파일 입력] 콤보 박스에서 '폴더'를 선택합니다.
모델 업로드 메뉴
[파일 선택] 버튼을 클릭하여, 등록할 모델을 선택합니다.
모델 업로드 선택

모델 등록 완료

웹툴킷 화면에서 모델이 등록된 것을 확인할 수 있습니다.
모델 등록 완료

워크플로우 생성하기

워크플로우 편집기를 이용하여, 다음의 절차에 따라 워크플로우를 생성합니다.

엔진 선택

본 예제는 온 디맨드 타입의 분류 서비스를 제공하므로, OnDemandServing 엔진을 선택합니다.

Reader

본 예제에서는 Reader를 사용하지 않습니다.

Writer

본 예제에서는 Writer를 사용하지 않습니다.

Controller

본 예제의 Controller는 TensorflowServingController를 사용하고, 속성을 기본 값으로 설정합니다.

Runner

본 예제의 Runner는 TensorflowServingRunner를 사용하고, 속성을 다음과 같이 설정합니다.

field value 설명
modelBasePath models/inception 모델 경로
port 8002 이미지 분류 결과를 서비스할 포트 번호
modelName inception 서비스에 사용할 inception 모델의 이름

'modelBasePath' 설정은 위에서 등록한 Inception 모델을 선택합니다.
모델 경로 설정

Operator

본 예제의 Operator는 TensorflowServingOperator를 사용하고, 속성을 기본 값으로 설정합니다.

완성된 워크플로우는 다음과 같습니다.
워크플로우 완성 화면

웹툴킷에 ksbuser@etri.re.kr 계정으로 로그인하면, 본 예제 워크플로우가 이미 만들어져 있는 것을 확인할 수 있습니다.
워크플로우 편집기의 불러오기 메뉴를 통해 본 예제를 실행할 수 있습니다.

워크플로우 실행 및 모니터링하기

워크플로우 실행하기

워크플로우 편집기 화면 상단의 실행 버튼을 클릭하여, 위에서 작성한 워크플로우를 실행합니다.
본 예제는 온 디맨드 타입의 엔진이므로, Batch 체크박스를 해제하고 Run 버튼을 클릭합니다.
워크플로우 실행

워크플로우 모니터링 하기

워크플로우 상태 확인

웹툴킷 [Monitoring] 화면에서 [Workflow] 탭을 선택하여, 위에서 실행한 워크플로우와 엔진의 동작 상태를 확인할 수 있습니다.
정상적으로 실행되어 Status 값이 Inprogress인 것을 확인할 수 있습니다.
워크플로우 동작 상태 확인

워크플로우 로그 보기

[Workflow History] 탭을 선택하여, 현재 동작 중인 워크플로우의 로그 정보를 확인할 수 있습니다.
워크플로우 히스토리

서빙 서비스 상태 보기

웹툴킷 [Dashboard] 탭을 선택하면, 화면 하단의 'Services' 테이블에서 위에서 실행한 온 디멘드 서빙 서비스에 대한 정보를 확인할 수 있습니다.
서비스 정보 확인

결과 확인하기

Postman 프로그램을 이용하여, 본 예제의 이미지 분류 서비스의 기능을 확인하는 과정입니다.

Inception 모델의 메타데이터 조회

이미지 분류 질의 결과 보기

워크플로우 종료하기

웹툴킷 [Monitoring] 화면의 [Workflow] 탭에서, 현재 Status가 Inprogress인 InceptionServingExample 워크플로우의 정지() 버튼을 클릭하여 종료시킵니다.

워크플로우 저장하기

워크플로우 편집기에서 작성한 워크플로우를 "Save Workflow" 메뉴를 이용하여 저장합니다.