적용 대상:
Azure CLI ml 확장 v2(현재)
Python SDK azure-ai-ml v2(현재)
이 문서에서는 AutoML로 학습된 기계 학습 모델을 온라인 실시간 유추 엔드포인트에 배포하는 방법을 알아봅니다. 자동화된 ML 또는 AutoML이라고도 하는 자동화된 Machine Learning은 기계 학습 모델을 개발하는 시간 소모적이고 반복적인 작업을 자동화하는 프로세스입니다. 자세한 내용은 AutoML(자동화된 Machine Learning)이란?을 참조하세요.
다음 섹션에서는 다음을 사용하여 AutoML로 학습된 기계 학습 모델을 온라인 엔드포인트에 배포하는 방법을 알아봅니다.
- Azure Machine Learning Studio
- Azure Machine Learning CLI v2
- Azure Machine Learning Python SDK v2
필수 조건
Azure Machine Learning 스튜디오에서 배포 및 코드 없음
Automated ML 페이지에서 AutoML 학습 모델을 배포하는 것은 코드가 없는 환경입니다. 즉, 채점 스크립트와 환경은 둘 다 자동 생성되므로 별도로 준비할 필요가 없습니다.
Azure Machine Learning 스튜디오에서 자동화된 ML 페이지로 이동합니다.
실험을 선택하고 실행합니다.
모델 + 자식 작업 탭을 선택합니다.
배포하려는 모델을 선택합니다.
모델을 선택하면 드롭다운 메뉴와 함께 배포 단추를 사용할 수 있습니다.
실시간 엔드포인트 옵션을 선택합니다.
시스템은 배포에 필요한 모델과 환경을 생성합니다.
스튜디오 또는 명령줄에서 수동으로 배포
배포를 더 많이 제어하려면 학습 아티팩트를 다운로드하여 배포할 수 있습니다.
배포를 위해 구성 요소를 다운로드하려면 다음이 필요합니다.
자동화된 ML 실험으로 이동하여 기계 학습 작업 영역에서 실행합니다.
모델 + 자식 작업 탭을 선택합니다.
사용하려는 모델을 선택합니다. 모델을 선택하면 다운로드 단추가 사용하도록 설정됩니다.
다운로드를 선택합니다.
다음이 포함된 .zip 파일을 받게 됩니다.
-
conda_env_<VERSION>.yml이라는 이름의 conda 환경 사양 파일
-
scoring_file_<VERSION>.py라는 Python 채점 파일
- 모델 자체는 model.pkl라는 Python .pkl 파일에 있습니다.
이러한 파일을 사용하여 배포하려면 스튜디오 또는 Azure CLI를 사용할 수 있습니다.
- Azure Machine Learning 스튜디오에서 모델 페이지로 이동합니다.
- 선택 + 등록>로컬 파일에서를 선택합니다.
- 자동화된 ML 실행에서 다운로드한 모델을 등록합니다.
- 환경 페이지로 이동하여 사용자 지정 환경을 선택하고 + 만들기를 선택하여 배포에 대한 환경을 만듭니다. 다운로드한 conda yaml을 사용하여 사용자 지정 환경을 만듭니다.
- 모델을 선택하고 배포 드롭다운 메뉴에서 실시간 엔드포인트를 선택합니다.
- 마법사의 모든 단계를 완료하여 온라인 엔드포인트 및 배포를 만듭니다.
적용 대상:
Azure CLI ml 확장 v2(현재)
CLI에서 배포를 만들려면 ML v2 확장이 있는 Azure CLI가 필요합니다. 다음 명령을 실행하여 확인합니다.
az version
오류 메시지가 표시되거나 응답에 Extensions: ml
이 표시되지 않으면 CLI(v2) 설치 및 설정의 단계를 따릅니다.
로그인합니다.
az login
여러 Azure 구독에 대한 액세스 권한이 있는 경우 활성 구독을 설정할 수 있습니다.
az account set -s "<YOUR_SUBSCRIPTION_NAME_OR_ID>"
기본 리소스 그룹 및 작업 영역을 배포를 만들려는 위치로 설정합니다.
az configure --defaults group=$GROUP workspace=$WORKSPACE location=$LOCATION
채점 파일을 자체 디렉터리에 저장
src라는 디렉터리를 만듭니다. 다운로드한 채점 파일을 저장합니다. 이 디렉터리는 Azure에 업로드되며 유추를 수행하는 데 필요한 모든 소스 코드를 포함합니다. AutoML 모델의 경우 단일 채점 파일만 있습니다.
엔드포인트 및 배포 yaml 파일 만들기
명령줄에서 온라인 엔드포인트를 만들려면 endpoint.yml 및 deployment.yml 파일을 만듭니다.
Azure Machine Learning 예 리포지토리에서 가져온 다음 코드는 모든 필수 입력을 캡처하는 endpoints/online/managed/sample/을 보여 줍니다.
automl_endpoint.yml
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineEndpoint.schema.json
name: my-endpoint
auth_mode: key
automl_deployment.yml
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
endpoint_name: my-endpoint
model:
path: ../../model-1/model/
code_configuration:
code: ../../model-1/onlinescoring/
scoring_script: score.py
environment:
conda_file: ../../model-1/environment/conda.yaml
image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu22.04:latest
instance_type: Standard_DS3_v2
instance_count: 1
AutoML 모델 페이지에서 다운로드한 파일을 사용하려면 이 파일을 수정해야 합니다.
automl Endpoint.yaml 및 automl Deployment.yaml 파일을 만들고 이전 예의 콘텐츠를 붙여넣습니다.
엔드포인트의 name
값을 변경합니다. 엔드포인트 이름은 Azure 지역 내에서 고유해야 합니다. 엔드포인트 이름은 대문자나 소문자로 시작해야 하며 '-' 및 영숫자로만 구성해야 합니다.
automl deployment.yaml 파일에서 다음 경로의 키 값을 변경합니다.
경로 |
다음으로 변경 |
model:path |
다운로드한 model.pkl 파일의 경로. |
code_configuration:code:path |
채점 파일을 배치한 디렉터리입니다. |
code_configuration:scoring_script |
Python 채점 파일의 이름(scoring_file_<VERSION>.py). |
environment:conda_file |
다운로드한 conda 환경 파일(conda_env_<VERSION>.yml)에 대한 파일 URL. |
명령줄에서 다음을 실행합니다.
적용 대상:
Azure CLI ml 확장 v2(현재)
az ml online-endpoint create -f automl_endpoint.yml
az ml online-deployment create -f automl_deployment.yml
배포를 만든 후 모델을 사용하여 데이터 점수를 매기기 위해 엔드포인트 호출에 설명된 대로 채점할 수 있습니다.
적용 대상:
Python SDK azure-ai-ml v2(현재)
Python SDK v2를 설치해야 하는 경우 다음 명령으로 설치합니다.
pip install azure-ai-ml azure-identity
자세한 내용은 Python용 Azure Machine Learning SDK v2 설치를 참조하세요.
채점 파일을 자체 디렉터리에 저장
src라는 디렉터리를 만듭니다. 다운로드한 채점 파일을 저장합니다. 이 디렉터리는 Azure에 업로드되며 유추를 수행하는 데 필요한 모든 소스 코드를 포함합니다. AutoML 모델의 경우 단일 채점 파일만 있습니다.
Azure Machine Learning 작업 영역에 연결
필요한 라이브러리를 가져옵니다.
# import required libraries
from azure.ai.ml import MLClient
from azure.ai.ml.entities import (
ManagedOnlineEndpoint,
ManagedOnlineDeployment,
Model,
Environment,
CodeConfiguration,
)
from azure.identity import DefaultAzureCredential
작업 영역 세부 정보를 구성하고 작업 영역에 대한 핸들을 가져옵니다.
# enter details of your Azure Machine Learning workspace
subscription_id = "<SUBSCRIPTION_ID>"
resource_group = "<RESOURCE_GROUP>"
workspace = "<AZUREML_WORKSPACE_NAME>"
# get a handle to the workspace
ml_client = MLClient(
DefaultAzureCredential(), subscription_id, resource_group, workspace
)
엔드포인트 및 배포 만들기
관리형 온라인 엔드포인트와 배포를 만듭니다.
온라인 엔드포인트를 구성합니다.
팁
-
name
: 엔드포인트의 이름입니다. Azure 지역에서 고유해야 합니다. 엔드포인트 이름은 대문자나 소문자로 시작해야 하며 '-' 및 영숫자로만 구성해야 합니다. 명명 규칙에 대한 자세한 내용은 엔드포인트 제한을 참조하세요.
-
auth_mode
: 키 기반 인증의 경우 key
를 사용합니다. Azure Machine Learning 토큰 기반 인증에 대해 aml_token
을 사용합니다.
key
는 만료되지 않지만 aml_token
은 만료됩니다. 인증에 대한 자세한 내용은 온라인 엔드포인트에 대한 인증을 참조하세요.
# Creating a unique endpoint name with current datetime to avoid conflicts
import datetime
online_endpoint_name = "endpoint-" + datetime.datetime.now().strftime("%m%d%H%M%f")
# create an online endpoint
endpoint = ManagedOnlineEndpoint(
name=online_endpoint_name,
description="this is a sample online endpoint",
auth_mode="key",
)
엔드포인트를 만듭니다.
이전에 만들어진 MLClient
를 사용하여 작업 영역에 엔드포인트를 만듭니다. 이 명령은 엔드포인트 만들기를 시작합니다. 엔드포인트 만들기가 계속되는 동안 확인 응답을 반환합니다.
ml_client.begin_create_or_update(endpoint)
온라인 배포를 구성합니다.
배포는 실제 유추를 수행하는 모델을 호스팅하는 데 필요한 리소스의 세트입니다.
ManagedOnlineDeployment
클래스를 사용하여 엔드포인트에 대한 배포를 만듭니다.
model = Model(path="./src/model.pkl")
env = Environment(
conda_file="./src/conda_env_v_1_0_0.yml",
image="mcr.microsoft.com/azureml/openmpi3.1.2-ubuntu18.04:latest",
)
blue_deployment = ManagedOnlineDeployment(
name="blue",
endpoint_name=online_endpoint_name,
model=model,
environment=env,
code_configuration=CodeConfiguration(
code="./src", scoring_script="scoring_file_v_2_0_0.py"
),
instance_type="Standard_DS2_v2",
instance_count=1,
)
이 예에서 AutoML 모델 페이지에서 다운로드한 파일은 src 디렉터리에 있습니다. 상황에 맞게 코드의 매개 변수를 수정할 수 있습니다.
매개 변수 |
다음으로 변경 |
model:path |
다운로드한 model.pkl 파일의 경로. |
code_configuration:code:path |
채점 파일을 배치한 디렉터리입니다. |
code_configuration:scoring_script |
Python 채점 파일의 이름(scoring_file_<VERSION>.py). |
environment:conda_file |
다운로드한 conda 환경 파일(conda_env_<VERSION>.yml)에 대한 파일 URL. |
배포를 만듭니다.
이전에 만든 MLClient
를 사용하여 작업 영역에 배포를 만듭니다. 이 명령은 배포 만들기를 시작합니다. 배포 만들기가 계속되는 동안 확인 응답이 반환됩니다.
ml_client.begin_create_or_update(blue_deployment)
배포를 만든 후 샘플 데이터로 엔드포인트 테스트에 설명된 대로 점수를 매길 수 있습니다.
SDK를 사용하여 관리형 온라인 엔드포인트에 배포하는 방법에 대해 자세히 알아보려면 온라인 엔드포인트를 사용하여 기계 학습 모델 배포 및 점수 매기기를 참조하세요.
관련 콘텐츠