CLI (v2) 受控線上部署 YAML 結構描述
您可以在 找到 https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json來源 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 |
字串 | 部署的描述。 | ||
tags |
object | 部署標記的字典。 | ||
endpoint_name |
字串 | 必要。 要在其下建立部署的端點名稱。 | ||
model |
字串或物件 | 要用於部署的模型。 此值可以是工作區中現有已建立版本模型的參考,也可以是內嵌模型規格。 若要參考現有的模型,請使用 azureml:<model-name>:<model-version> 語法。 若要內嵌定義模型,請遵循 模型架構。 作為生產案例的最佳做法,您應該個別建立模型並在這裡參考該模型。 此欄位是自訂容器部署案例的選擇性欄位。 |
||
model_mount_path |
字串 | 在自定義容器中掛接模型的路徑。 僅適用於 自定義容器部署 案例。 model 如果指定欄位,則會掛接在容器中的這個路徑上。 |
||
code_configuration |
object | 評分程式代碼邏輯的設定。 此欄位是自訂容器部署案例的選擇性欄位。 |
||
code_configuration.code |
字串 | 用於評分模型的原始程式碼目錄本機路徑。 | ||
code_configuration.scoring_script |
字串 | 原始程式碼目錄中評分檔案的相對路徑。 | ||
environment_variables |
object | 在部署容器中設定的環境變數索引鍵/值組字典。 您可以從評分腳本存取這些環境變數。 | ||
environment |
字串或物件 | 必要。 要用於部署的環境。 此值可以是工作區中現有已建立版本環境的參考,也可以是內嵌環境規格。 若要參考現有的環境,請使用 azureml:<environment-name>:<environment-version> 語法。 若要內嵌定義環境,請遵循 環境架構。 作為生產案例的最佳做法,您應該個別建立環境並在這裡參考該環境。 |
||
instance_type |
字串 | 必要。 要用於部署的 VM 大小。 如需支援的大小清單,請參閱受控線上端點 SKU 清單。 | ||
instance_count |
整數 | 必要。 要用於部署的執行個體數目。 根據您預期的工作負載指定值。 若要達到高可用性,Microsoft建議您至少 3 將它設定為 。 instance_count 您可以使用 命令在部署建立 az ml online-deployment update 之後更新。 我們會額外保留 20% 來執行升級。 如需詳細資訊,請參閱 部署的虛擬機配額配置。 |
||
app_insights_enabled |
boolean | 是否要啟用與與工作區相關聯之 Azure 應用程式 Insights 實例的整合。 | false |
|
scale_settings |
object | 部署的調整設定。 目前只 default 支援縮放類型,因此您不需要指定這個屬性。 default 使用此調整類型時,您可以藉由更新 instance_count 屬性,或建立自動調整原則,在部署建立之後手動相應增加和減少實例計數。 |
||
scale_settings.type |
字串 | 縮放類型。 | default |
default |
data_collector |
object | 部署的數據收集設定。 如需可設定的屬性集,請參閱 DataCollector 。 | ||
request_settings |
object | 為部署評分要求設定。 如需可設定的屬性集,請參閱 RequestSettings 。 | ||
liveness_probe |
object | 用來定期監視容器健全狀況的活躍度探查設定。 如需可設定的屬性集,請參閱 ProbeSettings 。 | ||
readiness_probe |
object | 整備探查設定,用於驗證容器是否準備好提供流量。 如需可設定的屬性集,請參閱 ProbeSettings 。 | ||
egress_public_network_access |
字串 | 注意: 當您使用 舊版網路隔離方法來 保護部署的輸出通訊時,此密鑰適用。 強烈建議您改用 工作區受控 VNet 來保護部署的輸出通訊。 此旗標會藉由限制部署與其所使用的 Azure 資源之間的通訊來保護部署。 設定為 disabled ,以確保部署所需的模型、程式代碼和映像下載會受到私人端點保護。 此旗標僅適用於受控在線端點。 |
enabled , disabled |
enabled |
RequestSettings
機碼 | 類型 | 描述 | 預設值 |
---|---|---|---|
request_timeout_ms |
整數 | 評分逾時以毫秒為單位。 請注意,允許的最大值是 180000 毫秒。 如需詳細資訊,請參閱在線端點的限制。 |
5000 |
max_concurrent_requests_per_instance |
整數 | 每個實例允許部署的並行要求數目上限。 注意:如果您使用 Azure 機器學習 推斷伺服器或 Azure 機器學習 推斷映射,則必須將模型設定為處理並行要求。 若要這樣做,請以環境變數的形式傳遞 WORKER_COUNT: <int> 。 如需 的詳細資訊WORKER_COUNT ,請參閱 Azure 機器學習 推斷伺服器參數 注意: 設定為模型可以在單一節點上同時處理的要求數目。 如果將此值設為高於模型的實際並行作業,則可能會導致較高的延遲。 設定此值太低可能會導致使用中的節點不足。 設定太低也可能會導致要求遭到 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 |
字串 | 分割記憶體中數據的速率。 值可以是:Minute、Hour、Day、Month、Year。 | Hour |
collections |
object | 此部署的個別 collection_name 設定及其各自的設定集。 |
|
collections.<collection_name> |
object | 要收集的生產推斷數據的邏輯群組(例如: model_inputs )。 有兩個保留名稱: request 和 response ,分別對應至 HTTP 要求和響應承載數據收集。 所有其他名稱都是任意且可由用戶定義。 注意:每個 collection_name 都應該對應至部署score.py 中用來收集生產推斷數據的物件名稱Collector 。 如需使用提供的 Python SDK 來收集承載數據收集和數據收集的詳細資訊,請參閱 從生產環境中模型收集數據。 |
|
collections.<collection_name>.enabled |
boolean | 是否要啟用指定 collection_name 之的數據收集。 |
'False'' |
collections.<collection_name>.data.name |
字串 | 要向收集的數據註冊的數據資產名稱。 | <endpoint>-<deployment>-<collection_name> |
collections.<collection_name>.data.path |
字串 | 完整的 Azure 機器學習 數據存放區路徑,其中收集的數據應該註冊為數據資產。 | azureml://datastores/workspaceblobstore/paths/modelDataCollector/<endpoint_name>/<deployment_name>/<collection_name> |
collections.<collection_name>.data.version |
整數 | 要向 Blob 記憶體中收集的數據註冊的數據資產版本。 | 1 |
備註
這些az ml online-deployment
命令可用來管理 Azure 機器學習 受控在線部署。
範例
範例 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:系統指派的身分識別
$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:使用者指派的身分識別
$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