共用方式為


CLI (v2) 已啟用 Azure Arc 的 Kubernetes 在線部署 YAML 架構

適用於:Azure CLI ml 延伸模組 v2 (目前)

您可以在 找到 https://azuremlschemas.azureedge.net/latest/kubernetesOnlineDeployment.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 字串 用來放置推斷工作負載的實例類型。 如果省略,推斷工作負載將會放在端點 compute 欄位所指定 Kubernetes 叢集的預設實例類型上。 如果指定,推斷工作負載將會放在該選取的實例類型上。

Kubernetes 叢集的實例類型集合是透過 Kubernetes 叢集自定義資源定義來設定的,因此它們不屬於連結 Kubernetes 計算的 Azure 機器學習 YAML 架構的一部分。如需詳細資訊,請參閱建立和選取 Kubernetes 實例類型
instance_count 整數 要用於部署的執行個體數目。 根據您預期的工作負載指定值。 只有在您使用尺規 default 類型 (scale_settings.type: default) 時,才需要此欄位。

instance_count 您可以使用 命令在部署建立 az ml online-deployment update 之後更新。
app_insights_enabled boolean 是否要啟用與與工作區相關聯之 Azure 應用程式 Insights 實例的整合。 false
scale_settings object 部署的調整設定。 支援的兩種縮放設定類型是 default 小數位數類型和 target_utilization 小數位數類型。

default透過調整類型 (scale_settings.type: default),您可以藉由更新 instance_count 屬性,在部署建立之後手動相應增加和減少實例計數。

若要設定 target_utilization 縮放類型 (scale_settings.type: target_utilization),請參閱 TargetUtilizationScaleSettings 以取得一組可設定的屬性。
scale_settings.type 字串 縮放類型。 default, target_utilization target_utilization
data_collector object 部署的數據收集設定。 如需可設定的屬性集,請參閱 DataCollector
request_settings object 為部署評分要求設定。 如需可設定的屬性集,請參閱 RequestSettings
liveness_probe object 用來定期監視容器健全狀況的活躍度探查設定。 如需可設定的屬性集,請參閱 ProbeSettings
readiness_probe object 整備探查設定,用於驗證容器是否準備好提供流量。 如需可設定的屬性集,請參閱 ProbeSettings
resources object 容器資源需求。
resources.requests object 容器的資源要求。 如需可設定的屬性集,請參閱 ContainerResourceRequests
resources.limits object 容器的資源限制。 如需可設定的屬性集,請參閱 ContainerResourceLimits

RequestSettings

機碼 類型 描述 預設值
request_timeout_ms 整數 評分逾時以毫秒為單位。 5000
max_concurrent_requests_per_instance 整數 每個實例允許部署的並行要求數目上限。

除非Microsoft技術支援或 Azure 機器學習 小組的成員指示,否則請勿從預設值變更此設定。
1
max_queue_wait_ms 整數 要求在佇列中停留的時間上限,以毫秒為單位。 500

ProbeSettings

機碼 類型 描述 預設值
period 整數 執行探查的頻率(以秒為單位)。 10
initial_delay 整數 在啟動探查之前,容器啟動后的秒數。 最小值為 1 10
timeout 整數 探查逾時之後的秒數。最小值為 1 2
success_threshold 整數 探查在失敗后要視為成功的最小連續成功。 最小值為 1 1
failure_threshold 整數 當探查失敗時,系統會先嘗試 failure_threshold 時間再放棄。 在活躍度探查的情況下放棄表示容器將會重新啟動。 在整備探查的情況下,容器會標示為 「未讀取」。 最小值為 1 30

TargetUtilizationScaleSettings

機碼 類型 描述 預設值
type const 縮放類型 target_utilization
min_instances 整數 要使用的實例數目下限。 1
max_instances 整數 要調整的實例數目上限。 1
target_utilization_percentage 整數 自動調整程式的目標 CPU 使用量。 70
polling_interval 整數 自動調整程式應該以秒為單位嘗試調整部署的頻率。 1

ContainerResourceRequests

機碼 類型 描述
cpu 字串 針對容器所要求的 CPU 核心數目。
memory 字串 針對容器要求的記憶體大小
nvidia.com/gpu 字串 針對容器要求的 Nvidia GPU 卡數目

ContainerResourceLimits

機碼 類型 描述
cpu 字串 容器的 CPU 核心數目限制。
memory 字串 容器的記憶體大小限制。
nvidia.com/gpu 字串 容器的 Nvidia GPU 卡數目限制

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)。 有兩個保留名稱: requestresponse,分別對應至 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 機器學習 Kubernetes 在線部署。

範例

範例 GitHub 存放庫中有範例可用。

下一步