이 문서에서는 AutoML로 학습된 기계 학습 모델을 온라인 실시간 유추 엔드포인트에 배포하는 방법을 알아봅니다. 자동화된 ML 또는 AutoML이라고도 하는 자동화된 Machine Learning은 기계 학습 모델을 개발하는 시간 소모적이고 반복적인 작업을 자동화하는 프로세스입니다. 자세한 내용은 AutoML(자동화된 Machine Learning)이란?을 참조하세요.
다음 섹션에서는 다음을 사용하여 AutoML로 학습된 기계 학습 모델을 온라인 엔드포인트에 배포하는 방법을 알아봅니다.
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/을 보여 줍니다.
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 클래스를 사용하여 엔드포인트에 대한 배포를 만듭니다.