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 ) 예약된 이름은 두 개입니다. request 및 response 는 각각 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-ubuntu22.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-ubuntu22.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