Azure Machine Learning 작동 방식: 리소스 및 자산
적용 대상:Azure CLI ml 확장 v2(현재)Python SDK azure-ai-ml v2(현재)
이 문서는 Azure Machine Learning CLI 및 Python SDK(v2)의 두 번째 버전에 적용됩니다. 버전 1(v1)은 Azure Machine Learning 작동 방식: 아키텍처 및 개념(v1)을 참조하세요.
Azure Machine Learning에는 Machine Learning 작업을 수행하는 데 사용할 수 있는 여러 리소스와 자산이 포함되어 있습니다. 이러한 리소스와 자산은 모든 작업을 실행하는 데 필요합니다.
- 리소스: 기계 학습 워크플로를 실행하는 데 필요한 설정 또는 인프라 리소스입니다. 리소스에는 다음이 포함됩니다.
- 자산: Azure Machine Learning 명령을 사용하거나 학습/채점 실행의 일부로 만들어집니다. 자산은 버전이 지정되며 Azure Machine Learning 작업 영역에 등록할 수 있습니다. 해당 기능은 아래와 같습니다.
이 문서는 이러한 리소스와 자산에 대한 간략한 개요를 제공합니다.
필수 조건
이 문서의 Python SDK 코드 예제를 사용하려면 다음을 수행합니다.
Python SDK v2를 설치합니다.
Azure Machine Learning 구독에 대한 연결을 만듭니다. 예제는 모두
ml_client
를 사용합니다. 작업 영역을 만들려면 아직 작업 영역 이름이 없을 수 있으므로 연결에 작업 영역 이름이 필요하지 않습니다. 이 문서의 다른 모든 예제에서는 작업 영역 이름이 연결에 포함되어야 합니다.# import required libraries from azure.ai.ml import MLClient from azure.ai.ml.entities import Workspace from azure.identity import DefaultAzureCredential # Enter details of your subscription subscription_id = "<SUBSCRIPTION_ID>" resource_group = "<RESOURCE_GROUP>" # get a handle to the subscription (use this if you haven't created a workspace yet) ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group) # all other examples in this article require the connection to include workspace name workspace_name = "<WORKSPACE_NAME>" ml_client = ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group, workspace_name)
작업 영역
작업 영역은 Azure Machine Learning의 최상위 리소스로, Azure Machine Learning을 사용할 때 만든 모든 아티팩트를 사용할 수 있는 중앙 집중식 환경을 제공합니다. 작업 영역은 스크립트의 로그, 메트릭, 출력 및 스냅샷을 포함한 모든 작업의 기록을 유지합니다. 작업 영역은 데이터 저장소 및 컴퓨팅과 같은 리소스에 대한 참조를 저장합니다. 또한 모델, 환경, 구성 요소 및 데이터 자산과 같은 모든 자산을 보유합니다.
작업 영역 만들기
Python SDK v2를 사용하여 작업 영역을 만들려면 다음 코드를 사용할 수 있습니다.
적용 대상: Python SDK azure-ai-ml v2(현재)
# specify the workspace details
ws = Workspace(
name="my_workspace",
location="eastus",
display_name="My workspace",
description="This example shows how to create a workspace",
tags=dict(purpose="demo"),
)
ml_client.workspaces.begin_create(ws) # use MLClient to connect to the subscription and resource group and create workspace
이 Jupyter Notebook은 SDK v2를 사용하여 Azure Machine Learning 작업 영역을 만드는 더 많은 방법을 보여 줍니다.
작업 영역을 만드는 방법에 대한 자세한 내용은 포털 또는 Python SDK(v2)를 사용하여 Azure Machine Learning 작업 영역 관리를 참조하세요.
Compute
컴퓨팅은 작업을 실행하거나 엔드포인트를 호스팅하는 지정된 컴퓨팅 리소스입니다. Azure Machine Learning은 다음 형식의 컴퓨팅을 지원합니다.
- 컴퓨팅 인스턴스 - 클라우드에서 완전히 구성되고 관리되는 개발 환경입니다. 인스턴스를 개발 및 테스트를 위한 학습 또는 유추 컴퓨팅으로 사용할 수 있습니다. 클라우드의 가상 머신과 비슷합니다.
- 컴퓨팅 클러스터 - 클라우드에서 CPU 또는 GPU 컴퓨팅 노드 클러스터를 쉽게 만들 수 있는 관리 컴퓨팅 인프라입니다.
- 서버리스 컴퓨팅 - 즉석에서 액세스하는 컴퓨팅 클러스터입니다. 서버리스 컴퓨팅을 사용하는 경우 자체 클러스터를 만들 필요가 없습니다. 모든 컴퓨팅 수명 주기 관리는 Azure Machine Learning으로 오프로드됩니다.
- 유추 클러스터 - 학습된 기계 학습 모델을 Azure Kubernetes Service에 배포하는 데 사용됩니다. Azure Machine Learning 작업 영역에서 AKS(Azure Kubernetes Service) 클러스터를 만들거나 기존 AKS 클러스터를 연결할 수 있습니다.
- 연결된 컴퓨팅 - 자체 컴퓨팅 리소스를 작업 영역에 연결하고 학습 및 유추에 사용할 수 있습니다.
컴퓨팅 프로필
Python SDK v2를 사용하여 컴퓨팅 클러스터를 만들려면 다음 코드를 사용할 수 있습니다.
적용 대상: Python SDK azure-ai-ml v2(현재)
cluster_basic = AmlCompute(
name="basic-example",
type="amlcompute",
size="STANDARD_DS3_v2",
location="westus",
min_instances=0,
max_instances=2,
idle_time_before_scale_down=120,
)
ml_client.begin_create_or_update(cluster_basic)
이 Jupyter Notebook은 SDK v2를 사용하여 컴퓨팅을 만드는 더 많은 방법을 보여 줍니다.
컴퓨팅을 만드는 방법에 대한 자세한 내용은 다음을 참조하세요.
데이터 저장소
Azure Machine Learning 데이터 스토리지는 Azure의 데이터 스토리지에 대한 연결 정보를 안전하게 유지하므로 스크립트에서 코딩할 필요가 없습니다. 스토리지 계정에 쉽게 연결하고 기본 스토리지 서비스의 데이터에 액세스하기 위해 데이터 저장소를 등록하고 만들 수 있습니다. CLI v2 및 SDK v2는 다음 형식의 클라우드 기반 스토리지 서비스를 지원합니다.
- Azure Blob 컨테이너
- Azure 파일 공유
- Azure Data Lake
- Azure Data Lake Gen2
데이터 저장소 만들기
Python SDK v2를 사용하여 데이터 저장소를 만들려면 다음 코드를 사용할 수 있습니다.
적용 대상: Python SDK azure-ai-ml v2(현재)
import AzureBlobDatastore
blob_datastore1 = AzureBlobDatastore(
name="blob_example",
description="Datastore pointing to a blob container.",
account_name="mytestblobstore",
container_name="data-container",
credentials={
"account_key": "XXXxxxXXXxXXXXxxXXXXXxXXXXXxXxxXxXXXxXXXxXXxxxXXxxXXXxXxXXXxxXxxXXXXxxxxxXXxxxxxxXXXxXXX"
},
)
ml_client.create_or_update(blob_datastore1)
이 Jupyter Notebook은 SDK v2를 사용하여 데이터 저장소를 만드는 더 많은 방법을 보여 줍니다.
데이터 저장소 사용에 대한 자세한 내용은 데이터 자산 만들기 및 관리를 참조하세요.
모델
Azure Machine Learning 모델은 기계 학습 모델 및 해당 메타데이터를 나타내는 하나 이상의 이진 파일로 구성됩니다. 모델은 로컬 또는 원격 파일이나 디렉터리에서 만들 수 있습니다. 원격 위치 https
의 경우 wasbs
및 azureml
위치가 지원됩니다. 만들어진 모델은 지정된 이름 및 버전으로 작업 영역에서 추적됩니다. Azure Machine Learning은 모델에 대해 세 가지 형식의 스토리지 형식을 지원합니다.
custom_model
mlflow_model
triton_model
모델 레지스트리에서 모델 만들기
모델을 등록하면 작업 영역에서 Azure 클라우드의 모델을 저장하고 버전을 지정할 수 있습니다. 모델 레지스트리에서는 학습된 모델을 구성하고 추적할 수 있습니다.
레지스트리에서 모델을 만드는 방법에 대한 자세한 내용은 Azure Machine Learning의 모델 작업을 참조하세요.
환경
Azure Machine Learning 환경은 Machine Learning 작업이 발생하는 환경을 캡슐화한 것입니다. 학습 및 채점 스크립트와 관련된 소프트웨어 패키지, 환경 변수 및 소프트웨어 설정을 지정합니다. 환경은 Machine Learning 작업 영역 내에서 관리되고 버전이 지정된 엔터티입니다. 환경은 다양한 컴퓨팅에서 재현 가능하고 감사 가능하며 이식 가능한 기계 학습 워크플로를 지원합니다.
환경의 종류
Azure Machine Learning은 큐레이팅된 환경과 사용자 지정 환경이라는 두 가지 유형의 환경을 지원합니다.
큐레이팅된 환경은 Azure Machine Learning에서 제공하며 기본적으로 작업 영역에서 사용할 수 있습니다. 큐레이팅된 환경은 있는 그대로 사용할 수 있도록 다양한 기계 학습 프레임워크를 시작하는 데 도움이 되는 Python 패키지 및 설정 컬렉션이 포함되어 있습니다. 이와 같이 미리 만들어진 환경에서는 배포 시간을 단축할 수 있습니다. 전체 목록은 큐레이팅된 환경 문서를 참조하세요.
사용자 지정 환경에서는 환경을 설정하고 학습 또는 채점 스크립트가 컴퓨팅에서 필요로 하는 패키지 또는 기타 종속성을 설치해야 합니다. Azure Machine Learning을 사용하면 다음을 사용하여 고유한 환경을 만들 수 있습니다.
- Docker 이미지
- 추가로 사용자 지정할 수 있는 conda YAML이 있는 기본 Docker 이미지
- Docker 빌드 컨텍스트
Azure Machine Learning 사용자 지정 환경 만들기
Python SDK v2를 사용하여 환경을 만들려면 환경 만들기를 참조하세요.
이 Jupyter Notebook은 SDK v2를 사용하여 사용자 지정 환경을 만드는 더 많은 방법을 보여 줍니다.
환경에 대한 자세한 내용은 Azure Machine Learning에서 환경 만들기 및 관리를 참조하세요.
데이터
Azure Machine Learning을 사용하면 다양한 형식의 데이터로 작업할 수 있습니다.
- URI(로컬/클라우드 스토리지의 위치)
uri_folder
uri_file
- 테이블(표 형식 데이터 추상화)
mltable
- 기본 형식
string
boolean
number
대부분의 시나리오에서는 스토리지를 노드에 탑재하거나 다운로드하여 작업에서 컴퓨팅 노드의 파일 시스템에 쉽게 매핑할 수 있는 스토리지의 위치인 URI(uri_folder
및 uri_file
)를 사용합니다.
mltable
은 AutoML 작업, 병렬 작업 및 일부 고급 시나리오에 사용되는 표 형식 데이터에 대한 추상화입니다. Azure Machine Learning을 사용하기 시작하고 AutoML을 사용하지 않는 경우 URI로 시작하는 것이 좋습니다.
구성 요소
Azure Machine Learning 구성 요소는 Machine Learning 파이프라인에서 한 단계를 수행하는 자체 포함된 코드 조각입니다. 구성 요소는 고급 기계 학습 파이프라인의 구성 요소입니다. 구성 요소는 데이터 처리, 모델 학습, 모델 채점 등의 작업을 수행할 수 있습니다. 구성 요소는 이름, 매개 변수가 있고 입력을 예상하고 출력을 반환한다는 점에서 함수와 유사합니다.