mlmodel

개요

ML 모델을 관리하는 명령어

설명

학습 모델에 대해 목록 조회, 상세 조회, 삭제, 적재, 반출, 배포, 중지 기능을 제공합니다.

mlmodel list

전체 모델 목록을 조회합니다. 아래 내용을 확인 할 수 있습니다.

이름 설명
id 식별자 1
user 유저명 root
name 모델명 mnist_v1
type 유형 spark, tf, sklearn, r 등
category 범주 classification, regression 등
algorithm 알고리즘 deep
serving 모델 서빙 상태 on / off
create 생성 시간 20191001145628
modified 수정 시간 20191002145628

Parameters

mlmodel list

Examples

전체 모델 목록을 조회합니다.

mlmodel list

출력 결과

id user name type category algorithm serving create modified
1 root mnist_v1 tf classification deep off 2019/11/19 00:11:22 2019/11/19 00:11:33

Parameters BNF

mlmodel_command : LIST
                |

LIST = r'(?i)list'

mlmodel summary

특정 모델의 상세 내용을 조회합니다. 아래 내용을 확인 할 수 있습니다.

이름 설명
id 식별자 1
user 유저명 root
name 모델명 mnist_v1
filename 파일명 model.h5
format 포멧 h5, saved_model 등
type 유형 spark, tf, sklearn, r 등
category 범주 classification, regression 등
algorithm 알고리즘 deep
feature 특징 컬럼 x
label 레이블 컬럼 y
parameter 파라미터 { “epochs”: 3, “batch_size” : 64, “train_validation_ratio” : 0.8 }
evaluation 학습 평가 결과 [ { “losses” : { “loss” : 12.345 , “val_loss” : 12.345 }, “metrics” : { “acc” : 12.345, “val_acc” : 12.345 } }, { “losses” : { “loss” : 12.345 , “val_loss” : 12.345 }, “metrics” : { “acc” : 12.345, “val_acc” : 12.345 } }, { “losses” : { “loss” : 12.345 , “val_loss” : 12.345 }, “metrics” : { “acc” : 12.345, “val_acc” : 12.345 } } ]
cross_validation 교차검증 옵션 {}
grid_info 그리드 옵션 {}
train_cnt 학습 건수 10000
elapsed 소요 시간 (초) 60
dictionary 사전 파일명 dict.tsv
cdate 생성 시간 20191001145628
mdate 수정 시간 20191002145628
serving 모델 서빙 상태 on / off
serving_name 서빙 이름 root_mnist_v1
state 모델 실행 상태 READY, RUNNING, DONE, ERROR

Parameters

mlmodel summary model_name

이름 설명 기본값 예시값 타입 필수
model_name 모델명   mnist_v1 문자열 O

Examples

“mnist_v1” 모델의 상세 내용을 조회합니다.

mlmodel summary mnist_v1

출력 결과

name value
id 1
user root
name mnist_v1
filename saved_model.pb
format saved_model
type tf
category deep
algorithm deep
feature feature
label label
parameter {‘batch_size’: 128, ‘epochs’: 5, ‘continuous’: ‘True’, ‘config’: ‘objectstorage.MINIO_AI_SOURCE:USERS/pjh0347/mnist/angora_mnist_config.json’}
evaluation []
cross_validation {}
grid_info {}
train_cnt 55260
elapsed 569.0207872390747
dictionary dict.tsv
cdate 20200323171102
mdate 20200324100417
serving off
serving_name root_mnist_v1
state DONE

Parameters BNF

mlmodel_command : SUMMARY model_name
                | SUMMARY model_name fields
model_name : WORD
           |
fields : field
       | fields COMMA field
field : WORD

WORD = [^,|^ |^\|^(|^)|^\'|\"|^\=]+
SUMMARY = (?i)list
COMMA = ","

mlmodel delete

특정 모델을 삭제합니다. 모델 meta정보와 객체저장소의 모델 파일들을 삭제합니다. 성공 시, 모델목록을 보여줍니다.

Parameters

mlmodel delete model_name

이름 설명 기본값 예시값 타입 필수
model_name 모델명   mnist_v1 문자열 O

Examples

“mnist_v1” 모델을 삭제합니다.

mlmodel delete mnist_v1

출력 결과

id user name type category algorithm serving create modified
1 root multi_in_out tf classification deep on 2020/03/24 10:20:57 2020/03/24 10:21:19
3 root tf_clothes tf classification deep on 2020/03/25 07:51:30 2020/03/25 07:53:34

Parameters BNF

mlmodel_command : DELETE model_name
model_name : WORD
           |

WORD = [^,|^ |^\|^(|^)|^\'|\"|^\=]+
DELETE = (?i)delete

mlmodel import

객체 저장소에 있는 내 계정 소유의 학습 모델 파일을 IRIS Discovery Service가 관리하는 객체저장소에 적재 합니다. 적재된 모델은 학습, 예측, 평가, 배포 명령어 등에 활용할 수 있습니다.

학습 모델 파일은 tar 아카이브 형태이어야 하며, 아카이브 파일 내 타입별 필수 파일은 다음과 같습니다.

타입 필수 포함 파일
R 학습 모델 파일 (model.rda)
Scikit-Learn 학습 모델 파일 (model.pkl)
Spark 학습 모델 파일 (data.parquet), 학습 모델 메타 파일 (metadata)
TensorFlow 학습 모델 파일 (model.h5 or saved_model.pb)

Parameters

mlmodel import name=mnist_v1 type=tf category=classification algorithm=deep format=saved_model path=OBJECTSTORAGE.{CONNECTOR_NAME}:{KEY}

이름 설명 기본값 예시값 타입 필수
name 저장할 모델명   sklearn_test 문자열 O
type 유형   sklearn 문자열 O
category 범주   classification 문자열 O
algorithm 알고리즘   LogisticRegression 문자열 O
format 모델 포멧   pickle 혹은 h5 혹은 saved_model 문자열 O
path 객체 스토리지 내 모델 소스 경로   USERS/root/sklearn_model.tar 문자열 O

CONNECTOR_NAME : Conncetor Name입니다. IRIS UI에서 연결정보 생성 후, 연결정보의 이름 컬럼에서 확인할 수 있는 값입니다.

KEY : OBJECTSTORAGE의 key입니다. bucket은 생략해야 합니다.

Examples

모델정보를 아카이브한 파일을 IRIS Discovery Service가 관리하는 객체저장소에 업로드 합니다.

mlmodel import name=tf_clothes type=tf category=classification algorithm=deep format=saved_model path=OBJECTSTORAGE.MIN_AI:USERS/root/clothes/model.tar

출력 결과

result
ok

Parameters BNF

mlmodel_command : IMPORT options
options : option
        | options option
        |
option : WORD EQ WORD
       | WORD EQ SQ_TERM_SQ

WORD = [^,|^ |^\|^(|^)|^\'|\"|^\=]+
SQ_TERM_SQ = '[a-zA-Z0-9가-힣 _\-\[\]{}()\.:,=]*'
EQ = \=
IMPORT = (?i)import

mlmodel export

객체 저장소에 관리되고 있는 학습 모델 디렉토리를 아카이브하여 개인 객체 저장소에 저장하고 download url을 제공합니다.

관리되고 있는 학습모델은 fit명령으로 학습된 모델 혹은 mlmodel import로 적재된 모델을 의미합니다.

Parameters

mlmodel export name=mnist_v1 path=OBJECTSTORAGE.{CONNECTOR_NAME}:{KEY}

이름 설명 기본값 예시값 타입 필수
name 내보낼 모델명   sklearn_test 문자열 O
path 객체 스토리지 내 모델 저장 경로   USERS/root/sklearn_test.tar 문자열 O

Examples

mnist_v1 모델을 개인 객체 저장소에 저장합니다.

mlmodel export name=mnist_v1 path=OBJECTSTORAGE.MIN_AI:USERS/root/tf_mnist.tar

출력 결과

result download_url expired time (sec)
ok http://IP:PORT/test/ANGORA/AI/DOWNLOAD/root/mnist_v1/tf_mnist.tar 3600

Parameters BNF

mlmodel_command : EXPORT options
options : option
        | options option
        |
option : WORD EQ WORD
       | WORD EQ SQ_TERM_SQ

WORD = [^,|^ |^\|^(|^)|^\'|\"|^\=]+
SQ_TERM_SQ = '[a-zA-Z0-9가-힣 _\-\[\]{}()\.:,=]*'
EQ = \=
EXPORT = (?i)export

mlmodel deploy

관리되고 있는 학습된 모델을 서빙 가능하도록 TersorFlow Serving에 배포합니다. tf 타입만 제공합니다.

모델 배포시, 최초 version은 1이며, 같은 모델명으로 배포 시, version이 1씩 올라갑니다. 배포가 되면, serving 명령어 로 version별 모델 예측, 모델 서빙 상태 확인이 가능합니다.

Parameters

mlmodel deploy model_name label='stable'

이름 설명 기본값 예시값 타입 필수
model_name 배포할 모델명   mnist_v1 문자열 O
label 배포 모델 설명   unstable 문자열  

Examples

학습된 mnist_v1모델을 배포합니다.

mlmodel deploy mnist_v1 label='unstable'

출력 결과

  • serving_name은 유저명과 모델이름을 합친 문자열입니다. curl로 서빙에 요청할 경우 해당 이름으로 요청해야합니다.
reslut latest_version serving_name
on 1 root_mnist_v1

mnist_v1모델을 업데이트하고 재배포합니다.

mlmodel deploy mnist_v1 label='stable'

출력 결과

  • 버전이 1 올라갑니다.
reslut latest_version serving_name
on 2 root_mnist_v1

restapi 로 배포 모델을 확인합니다.

!curl -d '{"signature_name": "serving_default", "instances": [[[[0.0], [0.0],..., [0.8196078431372549], [0.8156862745098039], [1.0], [0.8196078431372549],..., [0.0], [0.0], [0.0]]]]}' -X POST http://localhost:8501/v1/models/root_mnist_v1/versions/2:predict

{
    "predictions": [[1.34083416e-06, 6.62974609e-09, 4.16653876e-08, 6.56875301e-08, 1.06879767e-07, 0.00958874, 7.81568906e-06, 0.354254484, 0.00198251382, 0.634164929]]
}

Parameters BNF

mlmodel_command : DEPLOY model_name options
options : option
        | options option
        |
option : WORD EQ WORD
       | WORD EQ SQ_TERM_SQ

WORD = [^,|^ |^\|^(|^)|^\'|\"|^\=]+
SQ_TERM_SQ = '[a-zA-Z0-9가-힣 _\-\[\]{}()\.:,=]*'
EQ = \=
DEPLOY = (?i)deploy

mlmodel stop

서빙 중인 배포 모델을 더 이상 서빙 하지 않도록 중지합니다. 버전 상관없이 모두 중지합니다.

Parameters

mlmodel stop model_name

이름 설명 기본값 예시값 타입 필수
model_name 중지할 모델명   mnist_v1 문자열 O

Examples

mnist_v1모델을 중지합니다.

mlmodel stop mnist_v1

reslut
ok

Parameters BNF

mlmodel_command : STOP model_name
model_name : WORD
           |

WORD = [^,|^ |^\|^(|^)|^\'|\"|^\=]+
STOP = (?i)stop