Set Up Master Configurations
모델관리 구조
TensorMSA 에서는 딥러닝 및 머신러닝의 훈련 및 서비스를 위한 데이터 및 모델을 위와 같은 구조로 관리하여 최종적으로 서비스까지 연결하고 있다. 구축하고자 하는 대상자체를 정의 – 파이프라인의 구성 및 하이퍼 파라메터 – 훈련에 따른 배치 단위 모델과 같은 구조로 관리하여 사용자가 원하는 버전을 활성화하여 서비스 할 수 있다.
등록된 신경망 리스트 확인 API
import requests import json, os url = "{0}:{1}".format(os.environ['HOSTNAME'] , "8000") resp = requests.get('http://' + url + '/api/v1/type/common/target/nninfo/nnid/%/' ) data = json.loads(resp.json()) return_list = [] for row in data : return_list.append(row['nn_id']) print (return_list)
현재 시스템이 등록되어 있는 딥러닝, 머신러닝 서비스 리스트를 조회할 수 있다. 조회는 자신이 권한을 가지고 있는 대상만 조회 가능하며, TensorMSA 에서 제공하는 화면을 사용할 경우 더 편하게 데이터를 조회 할 수 있다.
새로운 신경망의 정의
resp = requests.post('http://' + url + '/api/v1/type/common/target/nninfo/nnid/nn00016/', json={ "nn_id": "nn00016", "biz_cate": "Category", "biz_sub_cate": "Sub Category", "nn_title" : "Title", "nn_desc": "Description for neural network", "use_flag" : "Y", "dir": "type of model", "config": "status flag (1,2,3) not necessary" }) data = json.loads(resp.json()) print("evaluation result : {0}".format(data))
우리의 프레임웍에서 신경망의 정의라함은, 비지니스 레벨에서의 정의를 의미한다. 아이디의 경우 입력하지 않으면 랜덤 번호가 발번되며, 향후 모든 프로세스 및 서비스는 해당 아이디를 기준으로 발생하게 된다. 나머지 정보의 경우 카테고리, 서브카테고리, 제목, 설명등의 정보를 위한 항목과 서비스 여부, 사용 알고리즘, 상태값 등을 나타낸다. 이러한 생성행위는 당연히 UI/UX 통해서 제공이 되지만, 경우에 따라 서버간의 연동을 통해 자동적인 생성이 필요한 경우라면 권한을 부여 받아 해당 API를 사용할 수도 있다.
등록된 정보 확인
resp = requests.get('http://' + url + '/api/v1/type/common/target/nninfo/nnid/nn00016/') data = json.loads(resp.json()) print("evaluation result : {0}".format(data))
위에서 등록한 정보를 위의 API 를 통해서 확인 할 수 있다.
버전 등록
resp = requests.post('http://' + url + '/api/v1/type/common/target/nninfo/nnid/nn00016/version/', json={ "nn_def_list_info_nn_id": "", "nn_wf_ver_info": "test version info", "condition": "1", "active_flag": "Y" }) data = json.loads(resp.json()) print("evaluation result : {0}".format(data))
AutoML 을 사용하는 경우 버전 등록 과정부터 전체 과정이 자동으로 실행되기 때문에 별도의 조작이 필요 없지만, 단일로 훈련을 진행하기 원하는 경우 위와 같은 API 를 통해서 특정 버전을 강제로 생성하고 훈련을 진행할 수 있다.