작업 영역에 연결하려면 구독, 리소스 그룹 및 작업 영역 이름과 같은 식별자 매개 변수가 필요합니다. azure.ai.ml 네임스페이스의 MLClient에서 이러한 세부 정보를 사용하여 필요한 Azure Machine Learning 작업 영역에 대한 핸들을 가져옵니다. 인증하려면 기본 Azure 인증을 사용합니다. 자격 증명을 구성하고 작업 영역에 연결하는 방법에 대한 자세한 내용은 이 예를 확인합니다.
#import required libraries
from azure.ai.ml import MLClient
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>'
#connect to the workspace
ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group, workspace)
Azure CLI를 사용하는 경우 구독, 리소스 그룹 및 작업 영역 이름과 같은 식별자 매개 변수가 필요합니다. 각 명령에 대해 이러한 매개 변수를 지정할 수 있지만 모든 명령에 사용할 기본값을 설정할 수도 있습니다. 다음 명령을 사용하여 기본값을 설정합니다. <subscription ID>, <Azure Machine Learning workspace name> 및 <resource group>을 구성 값으로 바꿉니다.
az account set --subscription <subscription ID>
az configure --defaults workspace=<Azure Machine Learning workspace name> group=<resource group>
이 문서의 REST API 예는 $SUBSCRIPTION_ID, $RESOURCE_GROUP, $LOCATION 및 $WORKSPACE 자리 표시자를 사용합니다. 다음과 같이 자리 표시자를 고유한 값으로 바꿉니다.
이 스크립트를 실행하려면 ./sdk/python/jobs/single-step/lightgbm/iris/src/ 아래에 있는 main.py Python 스크립트를 실행하는 command를 사용합니다. 명령은 Azure Machine Learning에 job으로 제출하여 실행됩니다.
참고 항목
서버리스 컴퓨팅을 사용하려면 이 코드에서 compute="cpu-cluster"를 삭제합니다.
# submit the command
returned_job = ml_client.jobs.create_or_update(command_job)
# get a URL for the status of the job
returned_job.studio_url
위의 예에서는 다음을 구성했습니다.
code - 명령을 실행할 코드가 있는 경로
command - 실행해야 하는 명령
environment - 학습 스크립트를 실행하는 데 필요한 환경입니다. 이 예에서는 AzureML-lightgbm-3.2-ubuntu18.04-py37-cpu라는 Azure Machine Learning에서 제공하는 큐레이트되거나 미리 만들어진 환경을 사용합니다. @latest 지시문을 사용하여 이 환경의 최신 버전을 사용합니다. 기본 Docker 이미지를 지정하고 그 위에 conda yaml을 지정하여 사용자 지정 환경을 사용할 수도 있습니다.
inputs - 명령에 대한 이름 값 쌍을 사용하는 입력 사전. 키는 작업의 컨텍스트 내에서 입력에 대한 이름이고 값은 입력 값입니다. 입력은 ${{inputs.<input_name>}} 식을 사용하여 command에서 참조됩니다. 파일 또는 폴더를 입력으로 사용하려면 Input 클래스를 사용할 수 있습니다. 자세한 내용은 SDK 및 CLI v2 식을 참조하세요.
작업을 제출하면 URL이 Azure Machine Learning 스튜디오의 작업 상태로 반환됩니다. 스튜디오 UI를 사용하여 작업 진행 상황을 확인합니다. returned_job.status를 사용하여 작업의 현재 상태를 확인할 수도 있습니다.
이 예에서 사용된 az ml job create 명령에는 YAML 작업 정의 파일이 필요합니다. 이 예에서 사용된 파일의 콘텐츠는 다음과 같습니다.
참고 항목
서버리스 컴퓨팅을 사용하려면 이 코드에서 compute: azureml:cpu-cluster"를 삭제합니다.
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
code: src
command: >-
python main.py
--iris-csv ${{inputs.iris_csv}}
inputs:
iris_csv:
type: uri_file
path: https://azuremlexamples.blob.core.windows.net/datasets/iris.csv
environment: azureml:AzureML-lightgbm-3.3@latest
compute: azureml:cpu-cluster
display_name: lightgbm-iris-example
experiment_name: lightgbm-iris-example
description: Train a LightGBM model on the Iris dataset.
위에서 다음을 구성했습니다.
code - 명령을 실행할 코드가 있는 경로
command - 실행해야 하는 명령
inputs - 명령에 대한 이름 값 쌍을 사용하는 입력 사전. 키는 작업의 컨텍스트 내에서 입력에 대한 이름이고 값은 입력 값입니다. 입력은 ${{inputs.<input_name>}} 식을 사용하여 command에서 참조됩니다. 자세한 내용은 SDK 및 CLI v2 식을 참조하세요.
environment - 학습 스크립트를 실행하는 데 필요한 환경입니다. 이 예에서는 AzureML-lightgbm-3.3라는 Azure Machine Learning에서 제공하는 큐레이트되거나 미리 만들어진 환경을 사용합니다. @latest 지시문을 사용하여 이 환경의 최신 버전을 사용합니다. 기본 Docker 이미지를 지정하고 그 위에 conda yaml을 지정하여 사용자 지정 환경을 사용할 수도 있습니다.
작업을 제출하려면 다음 명령을 사용합니다. 학습 작업의 실행 ID(이름)는 $run_id 변수에 저장됩니다.
run_id=$(az ml job create -f jobs/single-step/lightgbm/iris/job.yml --query name -o tsv)
저장된 실행 ID를 사용하여 작업에 대한 정보를 반환할 수 있습니다. --web 매개 변수는 작업에 대한 세부 정보를 드릴할 수 있는 Azure Machine Learning 스튜디오 웹 UI를 엽니다.
az ml job show -n $run_id --web
작업 제출의 일부로 학습 스크립트 및 데이터를 Azure Machine Learning 작업 영역에서 액세스할 수 있는 클라우드 스토리지 위치에 업로드해야 합니다.
다음 Azure CLI 명령을 사용하여 학습 스크립트를 업로드합니다. 이 명령은 개별 파일이 아닌 학습에 필요한 파일이 포함된 디렉터리를 지정합니다. 대신 REST를 사용하여 데이터를 업로드하려면 Blob 배치 참조를 확인합니다.
az storage blob upload-batch -d $AZUREML_DEFAULT_CONTAINER/testjob -s cli/jobs/single-step/lightgbm/iris/src/ --account-name $AZURE_STORAGE_ACCOUNT
학습 데이터에 대한 버전이 지정된 참조를 만듭니다. 이 예에서 데이터는 이미 클라우드에 있으며 https://azuremlexamples.blob.core.windows.net/datasets/iris.csv에 있습니다. 데이터 참조에 대한 자세한 내용은 Azure Machine Learning의 데이터를 참조하세요.
클러스터가 학습 스크립트를 실행하는 데 사용할 환경을 만듭니다. 이 예에서는 AzureML-lightgbm-3.2-ubuntu18.04-py37-cpu라는 Azure Machine Learning에서 제공하는 큐레이트되거나 미리 만들어진 환경을 사용합니다. 다음 명령은 최신 버전이 컬렉션의 맨 위에 있는 환경 버전 목록을 검색합니다. jq는 $ENVIRONMENT 변수에 저장되는 최신([0]) 버전의 ID를 검색하는 데 사용됩니다.
from azure.ai.ml.entities import Model
from azure.ai.ml.constants import AssetTypes
run_model = Model(
path="azureml://jobs/{}/outputs/artifacts/paths/model/".format(returned_job.name),
name="run-model-example",
description="Model created from run.",
type=AssetTypes.MLFLOW_MODEL
)
ml_client.models.create_or_update(run_model)
팁
이름($run_id 변수에 저장됨)은 모델 경로의 일부로 사용됩니다.
az ml model create -n sklearn-iris-example -v 1 -p runs:/$run_id/model --type mlflow_model