모델을 배포하고 테스트할 수 있도록 IBM watsonx.ai Runtime 외부에서 학습된 머신 러닝 모델을 가져올 수 있습니다. 모델 가져오기에 사용 가능한 모델 프레임워크를 검토하십시오.
여기서 훈련된 모델을 가져오는 것은 다음을 의미합니다.
- 학습된 모델을 watsonx.ai 런타임 리포지토리에 저장합니다
- 선택 사항입니다: 저장된 모델을 watsonx.ai 런타임 서비스에 배포합니다
및 저장소 는 Cloud Object Storage 버킷을 의미합니다. 자세한 정보는 배치 영역 작성을 참조하십시오.
다음과 같은 방법으로 모델을 가져올 수 있습니다.
자세한 정보는 다음을 참조하십시오.
Python 클라이언트를 사용하여 프로그래밍 방식으로 모델을 추가하는 방법에 대한 예는 다음 노트북을 참조하십시오.
REST API를 사용하여 프로그래밍 방식으로 모델을 추가하는 방법에 대한 예제는 다음 노트북을 참조하십시오.
프레임워크 유형별로 모델을 가져오는 사용 가능한 방법
이 표에는 프레임워크 유형별로 모델을 watsonx.ai Runtime으로 가져오는 데 사용할 수 있는 방법이 나와 있습니다.
가져오기 옵션 | Spark MLlib | Scikit-learn | XGBoost | TensorFlow | PyTorch |
---|---|---|---|---|---|
모델 오브젝트 가져오기 | ✓ | ✓ | ✓ | ||
파일에 대한 경로를 사용하여 모델 가져오기 | ✓ | ✓ | ✓ | ✓ | |
디렉토리에 대한 경로를 사용하여 모델 가져오기 | ✓ | ✓ | ✓ | ✓ |
UI를 사용하여 모델 추가
PMML 형식으로 모델을 가져오려는 경우 모델 .xml
파일을 직접 가져올 수 있습니다.
UI를 사용하여 모델을 가져오려면 다음을 수행하십시오.
- watsonx.ai 런타임의 공간에 있는 자산 탭에서 자산 가져오기를 클릭합니다.
Local file
를 선택한 후 모델을 선택하십시오.- 가져올 모델 파일을 선택하고 가져오기를 클릭하십시오.
가져오기 메커니즘은 .xml
파일의 버전 문자열을 기반으로 일치하는 모델 유형 및 소프트웨어 스펙을 자동으로 선택합니다.
모델 오브젝트 가져오기
이 가져오기 메소드는 제한된 수의 ML 프레임워크에서 지원됩니다. 자세한 정보는 프레임워크 유형별로 모델을 가져오는 데 사용 가능한 방법을 참조하십시오.
모델 오브젝트를 가져오려면 다음을 수행하십시오.
- 모델이 원격 위치에 있는 경우 원격 위치에 저장된 모델 다운로드를 따르십시오.
- 모델 개체를 watsonx.ai 런타임 리포지토리에 저장합니다. 자세한 내용은 watsonx.ai 런타임 리포지토리에 모델 저장하기를 참조하세요.
파일에 대한 경로를 사용하여 모델 가져오기
이 가져오기 메소드는 제한된 수의 ML 프레임워크에서 지원됩니다. 자세한 정보는 프레임워크 유형별로 모델을 가져오는 데 사용 가능한 방법을 참조하십시오.
파일에 대한 경로를 사용하여 모델을 가져오려면 다음을 수행하십시오.
모델이 원격 위치에 있는 경우 원격 위치에 저장된 모델 다운로드 에 따라 다운로드하십시오.
사용자 모델이 로컬에 있는 경우, 특정 디렉토리에 배치하십시오.
!cp <saved model> <target directory> !cd <target directory>
scikit-learn, XGBoost, Tensorflow 및 PyTorch 모델의 경우, 다운로드한 파일이
.tar.gz
아카이브가 아닌 경우 아카이브를 작성하십시오.!tar -zcvf <saved model>.tar.gz <saved model>
모델 파일은 디렉토리의 최상위 레벨 폴더에 있어야 합니다. 예를 들어, 다음과 같습니다.
assets/ <saved model> variables/ variables/variables.data-00000-of-00001 variables/variables.index
저장된 파일의 경로를 사용하여 모델 파일을 watsonx.ai 런타임 리포지토리에 저장합니다. 자세한 내용은 watsonx.ai 런타임 리포지토리에 모델 저장하기를 참조하세요.
디렉토리에 대한 경로를 사용하여 모델 가져오기
이 가져오기 메소드는 제한된 수의 ML 프레임워크에서 지원됩니다. 자세한 정보는 프레임워크 유형별로 모델을 가져오는 데 사용 가능한 방법을 참조하십시오.
디렉토리에 대한 경로를 사용하여 모델을 가져오려면 다음을 수행하십시오.
모델이 원격 위치에 있는 경우 원격 위치에 저장된 모델 다운로드를 참조하십시오.
사용자 모델이 로컬에 있는 경우, 특정 디렉토리에 배치하십시오.
!cp <saved model> <target directory> !cd <target directory>
scikit-learn, XGBoost, Tensorflow및 PyTorch 모델의 경우, 모델 파일은 디렉토리의 최상위 레벨 폴더에 있어야 합니다. 예를 들어, 다음과 같습니다.
assets/ <saved model> variables/ variables/variables.data-00000-of-00001 variables/variables.index
디렉터리 경로를 사용하여 모델 파일을 watsonx.ai 런타임 리포지토리에 저장합니다. 자세한 내용은 watsonx.ai 런타임 리포지토리에 모델 저장하기를 참조하세요.
원격 위치에 저장된 모델 다운로드
다음 샘플 코드에 따라 원격 위치에서 모델을 다운로드하십시오.
import os
from wget import download
target_dir = '<target directory name>'
if not os.path.isdir(target_dir):
os.mkdir(target_dir)
filename = os.path.join(target_dir, '<model name>')
if not os.path.isfile(filename):
filename = download('<url to model>', out = target_dir)
모델을 가져올 때 고려할 사항
특정 모델 유형 가져오기에 대한 자세한 정보는 다음을 참조하십시오.
watsonx.ai Runtime에서 사용할 수 있는 프레임워크에 대해 자세히 알아보려면 지원되는 프레임워크를 참조하세요.
PMML 형식으로 저장된 모델
- PMML에서 가져온 모델에 대해 사용 가능한 유일한 배치 유형은 온라인 배치입니다.
- PMML 파일에는
.xml
파일 확장자가 있어야 합니다. - PMML 모델은 SPSS 스트림 플로우에서 사용할 수 없습니다.
- PMML 파일은 프롤로그를 포함하지 않아야 합니다. 모델을 저장할 때 사용 중인 라이브러리에 따라 프롤로그가 기본적으로 파일의 시작 부분에 추가될 수 있습니다. 예를 들어, 파일에
spark-mllib-lr-model-pmml.xml
과(와) 같은 프롤로그 문자열이 포함된 경우 PMML 파일을 배치 공간으로 가져오기 전에 문자열을 제거하십시오.
모델을 저장할 때 사용 중인 라이브러리에 따라 기본적으로 다음 예제와 같이 프롤로그가 파일의 시작 부분에 추가될 수 있습니다.
::::::::::::::
spark-mllib-lr-model-pmml.xml
::::::::::::::
해당 프롤로그를 제거해야만 PMML 파일을 watsonx.ai 런타임으로 가져올 수 있습니다.
Spark MLlib 모델
- 분류 및 회귀 모델만 사용할 수 있습니다.
- 사용자 정의 변환기, 사용자 정의 함수 및 클래스를 사용할 수 없습니다.
scikit-learn 모델
.pkl
및.pickle
는 사용 가능한 가져오기 형식입니다.- 모델을 직렬화하거나 피클하려면
joblib
패키지를 사용하십시오. - 분류 및 회귀 모델만 사용할 수 있습니다.
predict()
API에 대한 Pandas Dataframe 입력 유형을 사용할 수 없습니다.- scikit-learn 모델에 대해 사용 가능한 유일한 배치 유형은 온라인 배치입니다.
XGBoost 모델
.pkl
및.pickle
는 사용 가능한 가져오기 형식입니다.- 모델을 직렬화하거나 피클하려면
joblib
패키지를 사용하십시오. - 분류 및 회귀 모델만 사용할 수 있습니다.
predict()
API에 대한 Pandas Dataframe 입력 유형을 사용할 수 없습니다.- XGBoost 모델에 사용 가능한 유일한 배치 유형은 온라인 배치입니다.
TensorFlow 모델
.pb
,.h5
및.hdf5
는 사용 가능한 가져오기 형식입니다.- TensorFlow 모델을 저장하거나 직렬화하려면
tf.saved_model.save()
메소드를 사용하십시오. tf.estimator
is not available.- TensorFlow 모델에 사용 가능한 유일한 배치 유형은 온라인 배치 및 일괄처리 배치입니다.
PyTorch 모델
PyTorch 모델에 사용 가능한 유일한 배치 유형은 온라인 배치입니다.
Pytorch 모델을 watsonx.ai Runtime으로 가져올 수 있으려면 이전에 '
.onnx
' 형식으로 내보내야 합니다. 이 코드를 참조하십시오.torch.onnx.export(<model object>, <prediction/training input data>, "<serialized model>.onnx", verbose=True, input_names=<input tensor names>, output_names=<output tensor names>)
watsonx.ai 런타임 리포지토리에 모델 저장하기
이 코드를 사용하여 모델을 watsonx.ai 런타임 리포지토리에 저장하세요:
from ibm_watson_machine_learning import APIClient
client = APIClient(<your credentials>)
sw_spec_uid = client.software_specifications.get_uid_by_name("<software specification name>")
meta_props = {
client.repository.ModelMetaNames.NAME: "<your model name>",
client.repository.ModelMetaNames.SOFTWARE_SPEC_UID: sw_spec_uid,
client.repository.ModelMetaNames.TYPE: "<model type>"}
client.repository.store_model(model=<your model>, meta_props=meta_props)
참고:
사용되는 모델 프레임워크에 따라
<your model>
는 실제 모델 오브젝트, 저장된 모델 파일의 전체 경로 또는 모델 파일이 있는 디렉토리의 경로일 수 있습니다. 자세한 정보는 프레임워크 유형별로 모델을 가져오는 데 사용 가능한 방법을 참조하십시오.<software specification name>
(으)로 사용할 사용 가능한 소프트웨어 스펙 목록을 보려면client.software_specifications.list()
방법을 사용하십시오.model_type
(으)로 사용할 사용 가능한 모델 유형 목록은 배치를 위한 소프트웨어 스펙 및 하드웨어 스펙을 참조하십시오.파이토치 모델을 '
.onnx
' 형식으로 내보낼 때 'keep_initializers_as_inputs=True
' 플래그를 지정하고 'opset_version
'을 9로 설정합니다watsonx.ai 런타임 배포는 9보다 높은 운영 버전을 지원하지 않는 'caffe2
ONNX 런타임을 사용합니다).torch.onnx.export(net, x, 'lin_reg1.onnx', verbose=True, keep_initializers_as_inputs=True, opset_version=9)
상위 주제: 배치 영역의 자산