Model 클래스
기계 학습 학습의 결과를 나타냅니다.
모델은 Azure Machine Learning 학습Run 또는 Azure 외부의 일부 다른 모델 학습 프로세스의 결과입니다. 모델이 어떻게 생성되든 상관없이 이름과 버전으로 표시되는 작업 영역에 등록할 수 있습니다. Model 클래스를 사용하면 Docker와 함께 사용할 모델을 패키지하고 유추 요청에 사용할 수 있는 실시간 엔드포인트로 배포할 수 있습니다.
모델이 만들기, 관리 및 사용되는 방법을 보여 주는 엔드투엔드 자습서는 Azure Machine Learning을 사용하여 MNIST 데이터 및 scikit-learn으로 이미지 분류 모델 학습을 참조하세요.
모델 생성자입니다.
모델 생성자는 제공된 작업 영역과 연결된 Model 개체의 클라우드 표현을 검색하는 데 사용됩니다. 이름 또는 ID를 제공해야 합니다.
- 상속
-
builtins.objectModel
생성자
Model(workspace, name=None, id=None, tags=None, properties=None, version=None, run_id=None, model_framework=None, expand=True, **kwargs)
매개 변수
- tags
- list
반환된 결과를 필터링하는 데 사용되는 선택적 태그 목록입니다. 결과는 'key' 또는 '[key, value]'로 검색하여 제공된 목록을 기반으로 필터링됩니다. 예: ['key', ['key2', 'key2 value']]
- properties
- list
반환된 결과를 필터링하는 데 사용되는 속성의 선택적 목록입니다. 결과는 'key' 또는 '[key, value]'로 검색하여 제공된 목록을 기반으로 필터링됩니다. 예: ['key', ['key2', 'key2 value']]
- version
- int
반환할 모델 버전입니다. name
매개 변수와 함께 제공되면 지정된 명명된 모델의 특정 버전이 반환됩니다(있는 경우). version
을 생략하면 모델의 최신 버전이 반환됩니다.
- model_framework
- str
반환된 결과를 필터링하는 데 사용되는 선택적 프레임워크 이름입니다. 지정된 경우 지정된 프레임워크와 일치하는 모델에 대한 결과가 반환됩니다. 허용되는 값은 Framework를 참조하세요.
- tags
- list
반환된 결과를 필터링하는 데 사용되는 선택적 태그 목록입니다. 결과는 'key' 또는 '[key, value]'로 검색하여 제공된 목록을 기반으로 필터링됩니다. 예: ['key', ['key2', 'key2 value']]
- properties
- list
반환된 결과를 필터링하는 데 사용되는 속성의 선택적 목록입니다. 결과는 'key' 또는 '[key, value]'로 검색하여 제공된 목록을 기반으로 필터링됩니다. 예: ['key', ['key2', 'key2 value']]
- version
- int
반환할 모델 버전입니다. name
매개 변수와 함께 제공되면 지정된 명명된 모델의 특정 버전이 반환됩니다(있는 경우). version
을 생략하면 모델의 최신 버전이 반환됩니다.
- model_framework
- str
반환된 결과를 필터링하는 데 사용되는 선택적 프레임워크 이름입니다. 지정된 경우 지정된 프레임워크와 일치하는 모델에 대한 결과가 반환됩니다. 허용되는 값은 Framework를 참조하세요.
설명
Model 생성자는 지정된 작업 영역과 연결된 Model 개체의 클라우드 표현을 검색하는 데 사용됩니다. 모델을 검색하려면 최소한 이름이나 ID를 제공해야 하지만 태그, 속성, 버전, 실행 ID 및 프레임워크를 포함하여 필터링을 위한 다른 옵션도 있습니다.
from azureml.core.model import Model
model = Model(ws, 'my_model_name')
다음 샘플은 모델의 특정 버전을 가져오는 방법을 보여 줍니다.
from azureml.core.model import Model
model = Model(ws, 'my_model_name', version=1)
모델을 등록하면 모델을 구성하는 하나 이상의 파일에 대한 논리적 컨테이너가 만들어집니다. 모델 파일 자체의 내용 외에도 등록된 모델은 모델 설명, 태그 및 프레임워크 정보를 포함한 모델 메타데이터도 저장하므로 작업 영역에서 모델을 관리하고 배포할 때 유용합니다. 예를 들어, 태그를 사용하여 모델을 분류하고 작업 영역에 모델을 나열할 때 필터를 적용할 수 있습니다. 등록 후 등록된 모델을 다운로드하거나 배포하고 등록된 모든 파일과 메타데이터를 받을 수 있습니다.
다음 샘플은 태그와 설명을 지정하여 모델을 등록하는 방법을 보여 줍니다.
from azureml.core.model import Model
model = Model.register(model_path="sklearn_regression_model.pkl",
model_name="sklearn_regression_model",
tags={'area': "diabetes", 'type': "regression"},
description="Ridge regression model to predict diabetes",
workspace=ws)
전체 샘플은 https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/deployment/deploy-to-local/register-model-deploy-local-advanced.ipynb에서 사용할 수 있습니다.
다음 샘플은 프레임워크, 입력 및 출력 데이터 세트, 리소스 구성을 지정하는 모델을 등록하는 방법을 보여 줍니다.
import sklearn
from azureml.core import Model
from azureml.core.resource_configuration import ResourceConfiguration
model = Model.register(workspace=ws,
model_name='my-sklearn-model', # Name of the registered model in your workspace.
model_path='./sklearn_regression_model.pkl', # Local file to upload and register as a model.
model_framework=Model.Framework.SCIKITLEARN, # Framework used to create the model.
model_framework_version=sklearn.__version__, # Version of scikit-learn used to create the model.
sample_input_dataset=input_dataset,
sample_output_dataset=output_dataset,
resource_configuration=ResourceConfiguration(cpu=1, memory_in_gb=0.5),
description='Ridge regression model to predict diabetes progression.',
tags={'area': 'diabetes', 'type': 'regression'})
print('Name:', model.name)
print('Version:', model.version)
변수 섹션에는 클라우드 모델 개체의 로컬 표현 특성이 나열됩니다. 이러한 변수는 읽기 전용으로 간주되어야 합니다. 이러한 값을 변경해도 해당 클라우드 개체에 반영되지 않습니다.
변수
- created_by
- dict
모델을 만든 사용자입니다.
- created_time
- datetime
모델이 만들어진 경우.
- azureml.core.Model.description
Model 개체에 대한 설명입니다.
- azureml.core.Model.id
모델 ID입니다. 이는 <모델 이름>:<모델 버전> 형식을 사용합니다.
- mime_type
- str
모델 MIME 형식입니다.
- azureml.core.Model.name
모델의 이름입니다.
- model_framework
- str
모델의 프레임워크입니다.
- model_framework_version
- str
모델의 프레임워크 버전입니다.
- azureml.core.Model.tags
Model 개체에 대한 태그 사전입니다.
- azureml.core.Model.properties
모델에 대한 키 값 속성의 사전입니다. 이러한 속성은 등록 후에 변경할 수 없지만 새 키 값 쌍을 추가할 수 있습니다.
- unpack
- bool
모델을 로컬 컨텍스트로 가져올 때 압축을 풀어야 하는지 여부를 나타냅니다.
- url
- str
모델의 URL 위치입니다.
- azureml.core.Model.version
모델의 버전입니다.
- azureml.core.Model.workspace
모델을 포함하는 작업 영역입니다.
- azureml.core.Model.experiment_name
모델을 만든 실험의 이름입니다.
- azureml.core.Model.run_id
모델을 만든 실행의 ID입니다.
- parent_id
- str
모델의 부모 모델 ID입니다.
- resource_configuration
- ResourceConfiguration
이 모델의 ResourceConfiguration입니다. 프로파일링에 사용됩니다.
메서드
add_dataset_references |
제공된 데이터 세트를 이 모델과 연결합니다. |
add_properties |
이 모델의 속성 사전에 키 값 쌍을 추가합니다. |
add_tags |
이 모델의 태그 사전에 키 값 쌍을 추가합니다. |
delete |
연결된 작업 영역에서 이 모델을 삭제합니다. |
deploy |
0개 이상의 Model 개체에서 Webservice를 배포합니다. 결과 Webservice는 유추 요청에 사용할 수 있는 실시간 엔드포인트입니다. 모델 |
deserialize |
JSON 개체를 모델 개체로 변환합니다. 지정된 작업 영역이 모델이 등록된 작업 영역이 아닌 경우 변환에 실패합니다. |
download |
로컬 파일 시스템의 대상 디렉터리에 모델을 다운로드합니다. |
get_model_path |
모델에 대한 경로를 반환합니다. 이 함수는 다음 위치에서 모델을 검색합니다.
|
get_sas_urls |
파일 이름과 해당 SAS URL을 포함하는 키-값 쌍의 사전을 반환합니다. |
list |
선택적 필터를 사용하여 제공된 작업 영역과 연결된 모든 모델의 목록을 검색합니다. |
package |
Docker 이미지 또는 Dockerfile 빌드 컨텍스트의 형태로 모델 패키지를 만듭니다. |
print_configuration |
사용자 구성을 인쇄합니다. |
profile |
리소스 요구 사항 권장 사항을 가져오기 위해 모델을 프로파일링합니다. 이는 데이터 세트의 크기에 따라 최대 25분이 소요될 수 있는 장기 실행 작업입니다. |
register |
제공된 작업 영역에 모델을 등록합니다. |
remove_tags |
이 모델의 태그 사전에서 지정된 키를 제거합니다. |
serialize |
이 모델을 json 직렬화된 사전으로 변환합니다. |
update |
모델의 내부 업데이트를 수행합니다. 지정된 매개 변수의 기존 값이 대체됩니다. |
update_tags_properties |
모델의 태그 및 속성 업데이트를 수행합니다. |
add_dataset_references
제공된 데이터 세트를 이 모델과 연결합니다.
add_dataset_references(datasets)
매개 변수
- datasets
- list[tuple(<xref:str :> (Dataset 또는 DatasetSnapshot))]
데이터 세트 목적과 데이터 세트 개체의 쌍을 나타내는 튜플 목록입니다.
예외
add_properties
이 모델의 속성 사전에 키 값 쌍을 추가합니다.
add_properties(properties)
매개 변수
예외
add_tags
이 모델의 태그 사전에 키 값 쌍을 추가합니다.
add_tags(tags)
매개 변수
예외
delete
deploy
0개 이상의 Model 개체에서 Webservice를 배포합니다.
결과 Webservice는 유추 요청에 사용할 수 있는 실시간 엔드포인트입니다. 모델 deploy
함수는 Webservice 클래스의 deploy
함수와 유사하지만 모델을 등록하지 않습니다. 이미 등록된 모델 개체가 있는 경우 모델 deploy
함수를 사용합니다.
static deploy(workspace, name, models, inference_config=None, deployment_config=None, deployment_target=None, overwrite=False, show_output=False)
매개 변수
- deployment_config
- WebserviceDeploymentConfiguration
Webservice를 구성하는 데 사용되는 WebserviceDeploymentConfiguration입니다. 이 개체가 제공되지 않으면 원하는 대상에 따라 빈 구성 개체가 사용됩니다.
- deployment_target
- ComputeTarget
Webservice를 배포할 ComputeTarget입니다. Azure Container Instances에 연결된 ComputeTarget이 없으므로 이 매개 변수를 None으로 유지하여 Azure Container Instances에 배포합니다.
반환
배포된 Webservice에 해당하는 Webservice 개체입니다.
반환 형식
예외
deserialize
JSON 개체를 모델 개체로 변환합니다.
지정된 작업 영역이 모델이 등록된 작업 영역이 아닌 경우 변환에 실패합니다.
static deserialize(workspace, model_payload)
매개 변수
반환
제공된 JSON 개체의 모델 표현입니다.
반환 형식
예외
download
로컬 파일 시스템의 대상 디렉터리에 모델을 다운로드합니다.
download(target_dir='.', exist_ok=False, exists_ok=None)
매개 변수
반환
모델의 파일 또는 폴더에 대한 경로입니다.
반환 형식
예외
get_model_path
모델에 대한 경로를 반환합니다.
이 함수는 다음 위치에서 모델을 검색합니다.
version
이 None인 경우:
- 원격에서 캐시로 다운로드(작업 영역이 제공되는 경우)
- 캐시 azureml-models/$MODEL_NAME/$LATEST_VERSION/에서 로드
- ./$MODEL_NAME
version
이 None이 아닌 경우:
- 캐시 azureml-models/$MODEL_NAME/$SPECIFIED_VERSION/에서 로드
- 원격에서 캐시로 다운로드(작업 영역이 제공되는 경우)
static get_model_path(model_name, version=None, _workspace=None)
매개 변수
반환
모델에 대한 디스크의 경로입니다.
반환 형식
예외
get_sas_urls
파일 이름과 해당 SAS URL을 포함하는 키-값 쌍의 사전을 반환합니다.
get_sas_urls()
반환
파일 이름 및 해당 SAS URL을 포함하는 키-값 쌍 사전
반환 형식
예외
list
선택적 필터를 사용하여 제공된 작업 영역과 연결된 모든 모델의 목록을 검색합니다.
static list(workspace, name=None, tags=None, properties=None, run_id=None, latest=False, dataset_id=None, expand=True, page_count=255, model_framework=None)
매개 변수
- tags
- list
제공된 목록을 기준으로 'key' 또는 '[key, value]'로 필터링합니다. 예: ['key', ['key2', 'key2 value']]
- properties
- list
제공된 목록을 기준으로 'key' 또는 '[key, value]'로 필터링합니다. 예: ['key', ['key2', 'key2 value']]
- expand
- bool
true인 경우 모든 하위 속성이 채워진 모델을 반환합니다(예: 실행, 데이터 세트 및 실험). 이를 false로 설정하면 많은 모델의 경우 list() 메서드 완료 속도가 빨라집니다.
반환
선택적으로 필터링된 모델 목록입니다.
반환 형식
예외
package
Docker 이미지 또는 Dockerfile 빌드 컨텍스트의 형태로 모델 패키지를 만듭니다.
static package(workspace, models, inference_config=None, generate_dockerfile=False, image_name=None, image_label=None)
매개 변수
- inference_config
- InferenceConfig
모델의 작업을 구성할 InferenceConfig 개체입니다. 여기에는 환경 개체가 포함되어야 합니다.
반환
ModelPackage 개체입니다.
반환 형식
예외
print_configuration
사용자 구성을 인쇄합니다.
static print_configuration(models, inference_config, deployment_config, deployment_target)
매개 변수
- deployment_config
- WebserviceDeploymentConfiguration
Webservice를 구성하는 데 사용되는 WebserviceDeploymentConfiguration입니다.
예외
profile
리소스 요구 사항 권장 사항을 가져오기 위해 모델을 프로파일링합니다.
이는 데이터 세트의 크기에 따라 최대 25분이 소요될 수 있는 장기 실행 작업입니다.
static profile(workspace, profile_name, models, inference_config, input_dataset, cpu=None, memory_in_gb=None, description=None)
매개 변수
반환 형식
예외
register
제공된 작업 영역에 모델을 등록합니다.
static register(workspace, model_path, model_name, tags=None, properties=None, description=None, datasets=None, model_framework=None, model_framework_version=None, child_paths=None, sample_input_dataset=None, sample_output_dataset=None, resource_configuration=None)
매개 변수
- model_path
- str
모델 자산이 있는 로컬 파일 시스템의 경로입니다. 이는 단일 파일 또는 폴더에 대한 직접 포인터일 수 있습니다. 폴더를 가리키는 경우 child_paths
매개 변수를 사용하여 폴더의 전체 내용을 사용하는 것과 달리 개별 파일을 모델 개체로 함께 묶을 수 있습니다.
- properties
- dict(<xref:{str : str}>)
모델에 할당할 키 값 속성의 선택적 사전입니다. 이러한 속성은 모델 만든 후에 변경할 수 없지만 새 키 값 쌍을 추가할 수 있습니다.
- datasets
- list[(str, AbstractDataset)]
첫 번째 요소가 데이터 세트 모델 관계를 설명하고 두 번째 요소가 데이터 세트인 튜플 목록입니다.
- model_framework
- str
등록된 모델의 프레임워크입니다. Framework 클래스의 시스템 지원 상수를 사용하면 일부 자주 사용되는 프레임워크에 대한 배포를 단순화할 수 있습니다.
반환
등록된 모델 개체입니다.
반환 형식
예외
설명
모델 파일 자체의 내용 외에도 등록된 모델은 모델 설명, 태그 및 프레임워크 정보를 포함한 모델 메타데이터도 저장하므로 작업 영역에서 모델을 관리하고 배포할 때 유용합니다. 예를 들어, 태그를 사용하여 모델을 분류하고 작업 영역에 모델을 나열할 때 필터를 적용할 수 있습니다.
다음 샘플은 태그와 설명을 지정하여 모델을 등록하는 방법을 보여 줍니다.
from azureml.core.model import Model
model = Model.register(model_path="sklearn_regression_model.pkl",
model_name="sklearn_regression_model",
tags={'area': "diabetes", 'type': "regression"},
description="Ridge regression model to predict diabetes",
workspace=ws)
전체 샘플은 https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/deployment/deploy-to-local/register-model-deploy-local-advanced.ipynb에서 사용할 수 있습니다.
실험 실행의 결과로 생성된 모델이 있는 경우 먼저 로컬 파일에 다운로드하지 않고 실행 개체에서 직접 등록할 수 있습니다. 그렇게 하려면 Run 클래스에 설명된 대로 register_model 메서드를 사용합니다.
remove_tags
이 모델의 태그 사전에서 지정된 키를 제거합니다.
remove_tags(tags)
매개 변수
예외
serialize
update
모델의 내부 업데이트를 수행합니다.
지정된 매개 변수의 기존 값이 대체됩니다.
update(tags=None, description=None, sample_input_dataset=None, sample_output_dataset=None, resource_configuration=None)
매개 변수
- sample_input_dataset
- AbstractDataset
등록된 모델에 사용할 샘플 입력 데이터 세트입니다. 이 샘플 입력 데이터 세트는 기존 데이터 세트를 대체합니다.
- sample_output_dataset
- AbstractDataset
등록된 모델에 사용할 샘플 출력 데이터 세트입니다. 이 샘플 출력 데이터 세트는 기존 데이터 세트를 대체합니다.
예외
update_tags_properties
모델의 태그 및 속성 업데이트를 수행합니다.
update_tags_properties(add_tags=None, remove_tags=None, add_properties=None)
매개 변수
예외
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기