일괄 처리 배포에서 우선 순위가 낮은 VM 사용

적용 대상:Azure CLI ml 확장 v2(현재)Python SDK azure-ai-ml v2(현재)

Azure 일괄 처리 배포는 일괄 처리 유추 워크로드의 비용을 줄이기 위해 우선 순위가 낮은 VM을 지원합니다. 우선 순위가 낮은 VM을 사용하면 저렴한 비용으로 많은 양의 컴퓨팅 성능을 사용할 수 있습니다. 우선 순위가 낮은 VM은 Azure에서 남는 용량을 활용합니다. 풀에서 우선 순위가 낮은 VM을 지정하면 Azure는 사용 가능한 경우 이 잉여분을 사용할 수 있습니다.

이들은 경우에 따라 할당이 가능하지 않거나, 사용 가능한 용량에 따라 언제든지 선점될 수 있다는 단점이 있습니다. 이러한 이유로 작업 완료 시간이 유연하고 작업이 여러 VM 간에 분산되어 있는 일괄 처리 및 비동기 처리 워크로드에 가장 적합합니다.

우선 순위가 낮은 VM은 전용 VM에 비해 상당히 저렴한 가격으로 제공됩니다. 가격 책정 세부 정보는 Azure Machine Learning 가격 책정을 참조하세요.

우선 순위가 낮은 VM에서 일괄 처리 배포가 작동하는 방식

Azure Machine Learning 일괄 처리 배포는 우선 순위가 낮은 VM을 쉽게 사용하고 이점을 가져올 수 있는 몇 가지 기능을 제공합니다.

  • Batch 배포 작업은 우선 순위가 낮은 VM으로 만든 Azure Machine Learning 컴퓨팅 클러스터에서 실행하여 우선 순위가 낮은 VM을 사용합니다. 배포가 우선 순위가 낮은 VM의 클러스터와 연결되면 해당 배포에서 생성된 모든 작업은 우선 순위가 낮은 VM을 사용합니다. 작업별 구성은 불가능합니다.
  • 일괄 처리 배포 작업은 제출할 작업 수에 따라 사용 가능한 컴퓨팅 클러스터에서 대상 VM 수를 자동으로 찾습니다. VM이 선점되거나 사용할 수 없는 경우 일괄 처리 배포 작업은 실패한 작업을 클러스터에 대기시켜 손실된 용량을 바꾸려고 시도합니다.
  • 우선 순위가 낮은 VM은 전용 VM의 vCPU 할당량과는 다른 별도의 코어 할당량을 갖습니다. 지역별 낮은 우선 순위 코어는 구독 제안 유형에 따라 100~3,000의 기본 한도를 갖습니다. 구독당 우선 순위가 낮은 코어 수는 확장 가능하며 VM 제품군별로 값이 다릅니다. Azure Machine Learning 컴퓨팅 할당량을 참조하세요.

고려 사항 및 사용 사례

대부분 Batch 워크로드는 우선 순위가 낮은 VM에 적합합니다. 이로 인해 VM의 할당이 취소될 때 추가 실행 지연이 발생할 수 있지만 작업이 완료되어야 하는 시간에 유연성이 있는 경우 더 낮은 비용으로 실행되는 비용으로 용량이 감소할 수 있습니다.

일괄 처리 엔드포인트에서 모델을 배포할 때 미니 일괄 처리 수준에서 일정을 변경할 수 있습니다. 이는 할당 취소가 현재 처리 중이고 영향을 받는 노드에서 완료되지 않은 미니 일괄 처리에만 영향을 미친다는 추가적인 이점이 있습니다. 완료된 모든 진행 상황은 유지됩니다.

우선 순위가 낮은 VM으로 일괄 처리 배포 만들기

Batch 배포 작업은 우선 순위가 낮은 VM으로 만든 Azure Machine Learning 컴퓨팅 클러스터에서 실행하여 우선 순위가 낮은 VM을 사용합니다.

참고 항목

배포가 우선 순위가 낮은 VM의 클러스터와 연결되면 해당 배포에서 생성된 모든 작업은 우선 순위가 낮은 VM을 사용합니다. 작업별 구성은 불가능합니다.

다음과 같이 우선 순위가 낮은 Azure Machine Learning 컴퓨팅 클러스터를 만들 수 있습니다.

다음과 같이 컴퓨팅 정의 YAML을 만듭니다.

low-pri-cluster.yml

$schema: https://azuremlschemas.azureedge.net/latest/amlCompute.schema.json 
name: low-pri-cluster
type: amlcompute
size: STANDARD_DS3_v2
min_instances: 0
max_instances: 2
idle_time_before_scale_down: 120
tier: low_priority

다음 명령을 사용하여 컴퓨팅을 만듭니다.

az ml compute create -f low-pri-cluster.yml

새 컴퓨팅이 만들어지면 새 클러스터를 사용하도록 배포를 만들거나 업데이트할 수 있습니다.

새 컴퓨팅 클러스터에서 배포를 만들거나 업데이트하려면 다음과 같이 YAML 구성을 만듭니다.

$schema: https://azuremlschemas.azureedge.net/latest/batchDeployment.schema.json
endpoint_name: heart-classifier-batch
name: classifier-xgboost
description: A heart condition classifier based on XGBoost
type: model
model: azureml:heart-classifier@latest
compute: azureml:low-pri-cluster
resources:
  instance_count: 2
settings:
  max_concurrency_per_instance: 2
  mini_batch_size: 2
  output_action: append_row
  output_file_name: predictions.csv
  retry_settings:
    max_retries: 3
    timeout: 300

그런 후 다음 명령을 사용하여 배포를 만듭니다.

az ml batch-endpoint create -f endpoint.yml

노드 할당 취소 보기 및 모니터링

우선 순위가 낮은 VM이 우선 순위가 낮은 VM을 모니터링하기 위해 Azure Portal에서 새로운 메트릭을 사용할 수 있습니다. 이러한 메트릭은 다음과 같습니다.

  • 선점된 노드
  • 선점된 코어

Azure Portal에서 이러한 메트릭을 확인하려면

  1. Azure Portal에서 Azure Machine Learning 작업 영역으로 이동합니다.
  2. 모니터링 섹션에서 메트릭을 선택합니다.
  3. 메트릭 목록에서 원하는 메트릭을 선택합니다.

Screenshot of the metrics section in the resource monitoring blade showing the relevant metrics for low priority VMs.

제한 사항

  • 배포가 우선 순위가 낮은 VM의 클러스터와 연결되면 해당 배포에서 생성된 모든 작업은 우선 순위가 낮은 VM을 사용합니다. 작업별 구성은 불가능합니다.
  • 일정 변경은 진행 상황에 관계없이 미니 일괄 처리 수준에서 수행됩니다. 검사점 기능이 제공되지 않습니다.

Warning

전체 클러스터가 선점된 경우(또는 단일 노드 클러스터에서 실행 중인 경우) 실행할 수 있는 용량이 없기 때문에 작업이 취소됩니다. 이 경우 다시 제출해야 합니다.