CLI (v2) 已啟用 Azure Arc 的 Kubernetes 在線部署 YAML 架構
您可以在 找到 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 )。 有兩個保留名稱: 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 機器學習 Kubernetes 在線部署。
範例
範例 GitHub 存放庫中有範例可用。