Share via


CLI(v2) 관리형 온라인 배포 YAML 스키마

적용 대상:Azure CLI ml 확장 v2(현재)

원본 JSON 스키마는 .에서 https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json찾을 수 있습니다.

참고 항목

이 문서에 자세히 설명된 YAML 구문은 최신 버전의 ML CLI v2 확장에 대한 JSON 스키마를 기반으로 합니다. 이 구문은 최신 버전의 ML CLI v2 확장에서만 작동하도록 보장됩니다. https://azuremlschemasprod.azureedge.net/에서 이전 확장 버전에 대한 스키마를 찾을 수 있습니다.

YAML 구문

형식 설명 허용된 값 기본값
$schema string YAML 스키마입니다. Azure Machine Learning VS Code 확장을 사용하여 YAML 파일을 제작하는 경우 파일 맨 위에 $schema를 포함하여 스키마 및 리소스 완성을 호출할 수 있습니다.
name string 필수입니다. 배포의 이름입니다.

명명 규칙은 여기에서 정의됩니다.
description string 배포에 대한 설명입니다.
tags 개체 배포에 대한 태그 사전입니다.
endpoint_name string 필수입니다. 배포를 만들 엔드포인트의 이름입니다.
model 문자열 또는 개체 배포에 사용할 모델입니다. 이 값은 작업 영역에서 기존 버전의 모델에 대한 참조 또는 인라인 모델 사양일 수 있습니다.

기존 모델을 참조하려면 azureml:<model-name>:<model-version> 구문을 사용합니다.

모델 인라인을 정의하려면 모델 스키마를 따릅니다.

프로덕션 시나리오에 대한 모범 사례로 모델을 별도로 만들고 여기에서 참조해야 합니다.

이 필드는 사용자 지정 컨테이너 배포 시나리오에 대한 선택 사항입니다.
model_mount_path string 사용자 지정 컨테이너에 모델을 탑재할 경로입니다. 사용자 지정 컨테이너 배포 시나리오에만 적용됩니다. model 필드가 지정된 경우 컨테이너의 이 경로에 탑재됩니다.
code_configuration 개체 채점 코드 논리에 대한 구성입니다.

이 필드는 사용자 지정 컨테이너 배포 시나리오에 대한 선택 사항입니다.
code_configuration.code string 모델을 채점하는 소스 코드 디렉터리의 로컬 경로입니다.
code_configuration.scoring_script string 소스 코드 디렉터리에 있는 채점 파일의 상대 경로입니다.
environment_variables 개체 배포 컨테이너에서 설정할 환경 변수 키-값 쌍의 사전입니다. 채점 스크립트에서 이러한 환경 변수에 액세스할 수 있습니다.
environment 문자열 또는 개체 필수입니다. 배포에 사용할 환경입니다. 이 값은 작업 영역에서 기존 버전의 환경에 대한 참조 또는 인라인 환경 사양일 수 있습니다.

기존 환경을 참조하려면 azureml:<environment-name>:<environment-version> 구문을 사용합니다.

환경을 인라인으로 정의하려면 환경 스키마를 따릅니다.

프로덕션 시나리오에 대한 모범 사례로 환경을 별도로 만들고 여기에서 참조해야 합니다.
instance_type string 필수입니다. 배포에 사용할 VM 크기입니다. 지원되는 크기 목록은 관리되는 온라인 엔드포인트 SKU 목록을 참조하세요.
instance_count 정수 필수입니다. 배포에 사용할 인스턴스 수입니다. 예상한 워크로드에 따라 값을 지정합니다. 고가용성을 위해 최소한 3으로 설정하는 것이 좋습니다.

배포 만들기 후 az ml online-deployment update 명령을 사용하여 instance_count를 업데이트할 수 있습니다.

업그레이드 수행을 위해 추가 20%를 예약합니다. 자세한 내용은 배포에 대한 가상 머신 할당량 할당을 참조하세요.
app_insights_enabled 부울 값 작업 영역과 연결된 Azure Application Insights 인스턴스와의 통합을 사용하도록 설정할지 여부입니다. false
scale_settings 개체 배포에 대한 스케일링 설정입니다. 현재 default 스케일링 형식만 지원되므로 이 속성을 지정할 필요가 없습니다.

default 스케일링 형식을 사용하면 배포 만들기 후 instance_count 속성을 업데이트하여 인스턴스 수를 수동으로 확대 또는 축소하거나 자동 크기 조정 정책을 만들 수 있습니다.
scale_settings.type string 스케일링 형식입니다. default default
data_collector 개체 배포를 위한 데이터 수집 설정입니다. 구성 가능한 속성 집합은 DataCollector를 참조하세요.
request_settings 개체 배포에 대한 채점 요청 설정입니다. 구성 가능한 속성 집합에 대한 RequestSettings를 참조하세요.
liveness_probe 개체 컨테이너의 상태를 정기적으로 모니터링하기 위한 활동성 프로브 설정입니다. 구성 가능한 속성 집합에 대한 ProbeSettings를 참조하세요.
readiness_probe 개체 컨테이너가 트래픽을 처리할 준비가 되었는지 확인하기 위한 준비 상태 프로브 설정입니다. 구성 가능한 속성 집합에 대한 ProbeSettings를 참조하세요.
egress_public_network_access string 참고: 이 키는 배포를 위한 아웃바운드 통신을 보호하기 위해 레거시 네트워크 격리 방법을 사용할 때 적용 가능합니다. 대신 작업 영역 관리형 VNet을 사용하여 배포에 대한 아웃바운드 통신을 보호하는 것이 좋습니다.

이 플래그는 배포와 배포에서 사용하는 Azure 리소스 간의 통신을 제한하여 배포를 보호합니다. 배포에 필요한 모델, 코드 및 이미지의 다운로드가 프라이빗 엔드포인트로 보호되도록 disabled로 설정합니다. 이 플래그는 관리형 온라인 엔드포인트에만 적용됩니다.
enabled, disabled enabled

RequestSettings

형식 설명 기본값
request_timeout_ms 정수 채점 시간 제한(밀리초)입니다. 허용되는 최대값은 180000 밀리초입니다. 자세한 내용은 온라인 엔드포인트에 대한 제한을 참조 하세요 . 5000
max_concurrent_requests_per_instance 정수 배포에 허용되는 인스턴스당 최대 동시 요청 수입니다.

참고:Azure Machine Learning 유추 서버 또는 Azure Machine Learning 유추 이미지를 사용하는 경우 동시 요청을 처리하도록 모델을 구성해야 합니다. 이렇게 하려면 WORKER_COUNT: <int>를 환경 변수로 전달합니다. WORKER_COUNT에 대한 자세한 내용은 Azure Machine Learning 유추 서버 매개 변수를 참조하세요.

참고: 모델이 단일 노드에서 동시에 처리할 수 있는 요청 수로 설정합니다. 이 값을 모델의 실제 동시성보다 높게 설정하면 대기 시간이 더 길어질 수 있습니다. 이 값을 너무 낮게 설정하면 사용률이 낮은 노드가 발생할 수 있습니다. 너무 낮게 설정하면 시스템이 빠르게 실패하도록 선택할 수 있으므로 요청이 429 HTTP 상태 코드로 거부될 수도 있습니다. 자세한 내용은 온라인 엔드포인트 문제 해결: HTTP 상태 코드를 참조하세요.
1
max_queue_wait_ms 정수 (사용되지 않음) 요청이 큐에 유지되는 최대 시간(밀리초)입니다. (이제 네트워킹/큐 지연을 고려하여 증가 request_timeout_ms ) 500

ProbeSettings

형식 설명 기본값
initial_delay 정수 컨테이너가 시작된 후 프로브가 시작되기 전까지의 시간(초)입니다. 최솟값은 1입니다. 10
period 정수 프로브를 수행하는 빈도(초)입니다. 10
timeout 정수 프로브의 시간이 초과된 후 경과된 시간(초)입니다. 최솟값은 1입니다. 2
success_threshold 정수 프로브가 실패한 후 성공한 것으로 간주되는 최소 연속 성공 횟수입니다. 최소값은 1 준비 상태 프로브에 대한 것입니다. 활동성 프로브의 값은 .로 1고정됩니다. 1
failure_threshold 정수 프로브가 실패한 경우 시스템은 포기하기 전에 failure_threshold 시간을 시도합니다. 활동성 프로브의 경우 포기하면 컨테이너가 다시 시작됩니다. 준비 상태 프로브의 경우 컨테이너는 준비되지 않음으로 표시됩니다. 최솟값은 1입니다. 30

DataCollector

형식 설명 기본값
sampling_rate float 수집할 데이터의 백분율(십진수 비율로 표시)입니다. 예를 들어, 값 1.0은 데이터 100% 수집을 나타냅니다. 1.0
rolling_rate string 스토리지의 데이터를 분할하는 속도입니다. 값은 분, 시, 일, 월, 연도일 수 있습니다. Hour
collections 개체 이 배포에 대한 개별 collection_name 및 해당 설정 집합입니다.
collections.<collection_name> 개체 수집할 프로덕션 유추 데이터의 논리적 그룹화(예: model_inputs) 예약된 이름은 두 개입니다. requestresponse는 각각 HTTP 요청 및 응답 페이로드 데이터 수집에 해당합니다. 다른 모든 이름은 임의적이며 사용자가 정의할 수 있습니다.

참고: 각 collection_name은 프로덕션 유추 데이터를 수집하기 위해 배포 score.py에 사용되는 Collector 개체의 이름과 일치해야 합니다. 페이로드 데이터 수집 및 제공된 Python SDK를 사용한 데이터 수집에 대한 자세한 내용은 프로덕션 모델에서 데이터 수집을 참조하세요.
collections.<collection_name>.enabled 부울 값 지정된 collection_name에 대한 데이터 수집을 사용하도록 설정할지 여부를 나타냅니다. 'False''
collections.<collection_name>.data.name string 수집된 데이터와 함께 등록할 데이터 자산의 이름입니다. <endpoint>-<deployment>-<collection_name>
collections.<collection_name>.data.path string 수집된 데이터가 데이터 자산으로 등록되어야 하는 전체 Azure Machine Learning 데이터 저장소 경로입니다. azureml://datastores/workspaceblobstore/paths/modelDataCollector/<endpoint_name>/<deployment_name>/<collection_name>
collections.<collection_name>.data.version 정수 Blob Storage에 수집된 데이터와 함께 등록할 데이터 자산의 버전입니다. 1

설명

az ml online-deployment 명령은 Azure Machine Learning 관리형 온라인 배포를 관리하는 데 사용할 수 있습니다.

예제

예제는 예제 GitHub 리포지토리에서 사용할 수 있습니다. 몇 가지는 다음과 같습니다.

YAML: 기본

$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-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: green
endpoint_name: my-endpoint
model:
  path: ../../model-2/model/
code_configuration:
  code: ../../model-2/onlinescoring/
  scoring_script: score.py
environment:
  conda_file: ../../model-2/environment/conda.yaml
  image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1

YAML: 시스템 할당 ID

$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
model:
  path: ../../model-1/model/
code_configuration:
  code: ../../model-1/onlinescoring/
  scoring_script: score_managedidentity.py
environment:
  conda_file: ../../model-1/environment/conda-managedidentity.yaml
  image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1
environment_variables:
  STORAGE_ACCOUNT_NAME: "storage_place_holder"
  STORAGE_CONTAINER_NAME: "container_place_holder"
  FILE_NAME: "file_place_holder"

YAML: 사용자 할당 ID

$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
model:
  path: ../../model-1/model/
code_configuration:
  code: ../../model-1/onlinescoring/
  scoring_script: score_managedidentity.py
environment: 
  conda_file: ../../model-1/environment/conda-managedidentity.yaml
  image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1
environment_variables:
  STORAGE_ACCOUNT_NAME: "storage_place_holder"
  STORAGE_CONTAINER_NAME: "container_place_holder"
  FILE_NAME: "file_place_holder"
  UAI_CLIENT_ID: "uai_client_id_place_holder"

YAML: data_collector

$schema: http://azureml/sdk-2-0/OnlineDeployment.json

endpoint_name: my_endpoint 
name: blue 
model: azureml:my-model-m1:1 
environment: azureml:env-m1:1 
data_collector:
   collections:
       model_inputs:
           enabled: 'True' 
       model_outputs:
           enabled: 'True'
$schema: http://azureml/sdk-2-0/OnlineDeployment.json

endpoint_name: my_endpoint
name: blue 
model: azureml:my-model-m1:1 
environment: azureml:env-m1:1 
data_collector:
   collections:
     request: 
         enabled: 'True'
         data: 
           name: my_request_data_asset 
           path: azureml://datastores/workspaceblobstore/paths/modelDataCollector/my_endpoint/blue/request 
           version: 1 
     response:
         enabled: 'True' 
         data: 
           name: my_response_data_asset
           path: azureml://datastores/workspaceblobstore/paths/modelDataCollector/my_endpoint/blue/response
           version: 1 
     model_inputs:
         enabled: 'True'
         data: 
           name: my_model_inputs_data_asset
           path: azureml://datastores/workspaceblobstore/paths/modelDataCollector/my_endpoint/blue/model_inputs
           version: 1 
     model_outputs:
         enabled: 'True'
         data: 
           name: my_model_outputs_data_asset
           path: azureml://datastores/workspaceblobstore/paths/modelDataCollector/my_endpoint/blue/model_outputs
           version: 1

다음 단계