온디맨드 방식으로 교통속도예측 모델 서빙하기 (TrafficOnDemandServing)


텐서플로우 기반 딥러닝 모델을 이용한 교통 속도 예측 RESTful 서비스 예제를 설명합니다.

입력 데이터 준비하기

교통속도예측 텐서플로우 모델 학습하기 매뉴얼에서 학습한 후 export 된 모델이 hdfs://csle1:9000/user/ksbuser_etri_re_kr/model/kangnam 위치에 저장되어 있다고 가정합니다.

워크플로우 생성하기

워크플로우 편집화면에서 워크플로우를 작성합니다. 하나의 엔진을 생성합니다.

속성 비고
name TrafficOnDemandServing 워크플로우 이름
description 강남 교통 RESTful 서비스 예제 워크플로우를 설명하는 글
isBatch false RESTful 서비스를 하는 워크플로우 이므로, false 로 지정
verbose false 디버깅을 위해 로그정보를 보고자할 경우, true 로 지정

엔진 생성하기

텐서플로우를 이용하여 온 디맨드 형태로 교통속도 예측 서비스를 생성하는 워크플로우이므로, OnDemandServing 엔진을 선택합니다. OnDemandServing 엔진에서는 데이터를 입출력하기 위한 Reader 와 Writer를 사용하지 않습니다. 데이터는 request 에 실어서 보냅니다.

순번 엔진 Type NickName RunType 설명
1 OnDemandServing ServingEngine 즉시실행 Restful 서비스 제공

Controller

TensorflowServingController 를 선택합니다.

Runner

TensorflowServingRunner 를 선택하고 아래표와 같은 속성을 지정합니다.

field value 설명
port 8001 RESTful 서비스 포트번호
modelName kangnam_traffic 모델의 이름
modelBasePath model/kangnam 모델 경로

Operator

TensorflowServingOperator 를 선택합니다.


워크플로우 완성 화면

ksbuser@etri.re.kr 계정으로 접속하면 예제 워크플로우가 만들어져있습니다. 불러오기해서도 돌려볼 수 있습니다.

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

워크플로우 실행하기

위에서 작성한 워크플로우를 실행하기 위해서는 워크플로우 편집기 상단의 실행 버튼을 누릅니다.

워크플로우 모니터링 하기

KSB 웹툴킷 상단 메뉴의 Monitoring 탭을 클릭하면 Workflow 탭이 선택되어있습니다. Workflow 탭에서는 실행한 워크플로우들의 목록 및 동작 상태를 확인하고 제어할 수 있습니다. 위에서 실행한 워크플로우 이름을 클릭하면 워크플로우의 각 엔진들의 동작 상태 (status) 를 확인할 수 있습니다.

워크플로우 동작 상태 확인

WorkFlow History 탭을 선택하면, 프레임워크에서 워크플로우가 동작하며 발생시킨 로그 정보를 확인 할 수 있습니다.

워크플로우 히스토리

서빙 서비스 상태 보기

KSB 웹툴킷 Dashboard 화면을 선택하면, 화면 하단의 Services 테이블에서 본 예제에서 실행한 서빙 서비스에 대한 정보를 확인할 수 있습니다.

서빙 서비스 상태

서빙 서비스 확인하기

Postman 프로그램을 활용하여 서빙 엔진이 제공하는 RESTful 서비스를 테스트할 수 있습니다. Postman을 실행하여 아래와 같이 설정합니다.

Postman 설정

챗봇 서비스 확인하기

워크플로우 종료하기

KSB 웹툴킷 상단 "Monitoring" 메뉴의 "Workflow" 탭에서 실행 중인 TrafficOnDemandServing 워크플로우를 종료()할 수 있습니다.

워크플로우 저장하기

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