工作負載 YAML 參考

Important

這項功能目前處於 公開預覽版。

本頁描述了 被 databricks air run接受的工作負載 YAML 欄位。 關於指令語法與旗標,請參見 databricks air run。 要提交工作負載,請參閱 Databricks CLI 的 AI 執行時快速入門。

每個工作負載都需要 experiment_name、 compute、 command和 。

Example

以下範例展示了一個範例工作負載配置:

experiment_name: my-training
compute:
  accelerator_type: GPU_1xA10
  num_accelerators: 1
environment:
  version: 6
  dependencies:
    - torch
code_source:
  type: snapshot
  snapshot:
    root_path: .
command: python $CODE_SOURCE_PATH/train.py

experiment_name

類型: 字串

Required. experiment_name關鍵在於 MLflow 實驗名稱。

計算

類型: 地圖

Required. 物件 compute 定義了加速器的配置。

Key 類型 Description
accelerator_type 字串 Required. 一種被 CLI 接受且可在工作區中使用的加速器類型。 匹配是大小寫區分的。
num_accelerators 整數 Required. 所選加速器類型支持正向加速器數量。
pool_id 字串 配置 GPU 容量的 ID。
priority_class 字串 使用已配置 GPU 容量的工作負載排程優先權。 可接受的值為 BEST_EFFORT、NORMAL 和 CRITICAL。 需要 pool_id。

加速器的類型和數量依工作區、雲端和區域而異。 關於硬體選擇與可用性,請參見 硬體選項。

command

類型: 字串

Required. 該 command 金鑰包含非空的 shell 指令或腳本。 指令中的路徑指的是工作負載容器中的遠端檔案路徑。 當 code_source 設定時,包含 $CODE_SOURCE_PATH 了擷取程式碼的絕對路徑。

環境

類型: 地圖

物件 environment 選擇一個可選相依的受管理環境,或自訂的 Unity 目錄映像檔。

Key 類型 Description
version 字串或整數 數值 環境版本,例如 6,或是 Databricks AI 環境識別碼,例如 databricks_ai_v6。 識別 databricks_ai_v 碼需版本 5 或以上。 若省略,CLI 將使用目前的 AI 執行時預設值。
dependencies 字串清單 套件規範會傳遞到無伺服器環境。 預設為沒有額外依賴。
unity_catalog_image 字串 格式為 <catalog>.<schema>.<image>:<tag>的自訂圖片。 與 version 和 dependencies 互斥。 關於設定說明,請參見「 Use custom Docker image with AI Runtime」。

關於選擇與擴展環境的指引,請參閱 「設定你的環境」。

管理環境範例
environment:
  version: 6
  dependencies:
    - torch

若要使用自訂映像檔而非受管理環境,只需 unity_catalog_image指定:

自訂影像範例
environment:
  unity_catalog_image: main.ml.training:v1

code_source

類型: 地圖

物件會 code_source 為工作負載打包本地程式碼。

Key 類型 Description
type 字串 設定時 code_source 必須。 必須是 snapshot。
snapshot 物件 設定時 code_source 必須。 定義了要打包的本地程式碼。

快照集

類型: 地圖

該 snapshot 物件支援以下金鑰:

Key 類型 Description
root_path 字串 Required. 本地目錄要打包。 當 CLI 分級執行時,該目錄必須存在。
remote_volume 字串 Unity 目錄中上傳檔案的磁碟區位置。 必須以 /Volumes/開頭。 預設為工作區位置。
include_paths 字串清單 相對於 root_path的路徑。 元素必須非空且相對,且不能包含 ..。 省略包含所有選取檔案的鍵。 空清單是無效的。
git 物件 將快照釘選到本地的 Git 分支或提交。

如果你省略 git了 ,CLI 會打包工作樹,包括未提交且未被 Git 忽略規則排除的檔案。 一個 relation root_path 會從包含 workload YAML 檔案的目錄解析。

版本控制系統 Git

類型: 地圖

該 git 物件支援以下金鑰:

Key 類型 Description
branch 字串 省略時 commit 必須填寫。 打包分行的當地主管。 所選檔案不得包含未提交的變更。
commit 字串 省略時 branch 必須填寫。 從本地 Git 物件庫封裝提交。 與 branch互斥。
Example

以下範例套件將本地分支選 main 定的路徑打包:

code_source:
  type: snapshot
  snapshot:
    root_path: ./src
    include_paths:
      - training
      - configs
    git:
      branch: main

env_variables

類型: 字串映射

該 env_variables 鍵包含純環境變數名稱和字串值。 名稱不能同時出現在 secrets中。

Example
env_variables:
  BATCH_SIZE: '32'
  LEARNING_RATE: '0.001'

idempotency_token

類型: 字串

idempotency_token這個關鍵字用來識別重複提交的行為。 重複提交相同代幣會返回現有的跑動。 當此金鑰被省略時,CLI 會產生 UUID。 --idempotency-key指揮旗優先。

max_retries

類型: 整數

該 max_retries 金鑰指定初次嘗試後的重試次數。 該數值必須為非負數。 預設值:3。

mlflow_artifact_location

類型: 字串

該 mlflow_artifact_location 金鑰包含一個 dbfs:/ URI 或 /Volumes/ 路徑。

mlflow_experiment_directory

類型: 字串

該 mlflow_experiment_directory 金鑰包含實驗的工作區目錄。 路徑必須以 開始。/Workspace

mlflow_run_name

類型: 字串

該 mlflow_run_name 金鑰包含了遊戲的名稱。

parameters

類型: 地圖

該 parameters 鍵包含自由形式的巢狀值。 CLI 將這些值序列化為 , hyperparameters.yaml 與其他啟動產物一同。

Example
parameters:
  learning_rate: 0.001
  model:
    hidden_size: 1024

使用權限

類型: 地圖列表

permissions該鑰匙包含提交後申請的補助金。 如果授權失敗,執行仍會被建立,CLI 會印出警告。

每筆補助金支持以下鑰匙:

Key 類型 Description
level 字串 Required. 一個權限等級,例如 CAN_VIEW 或 CAN_MANAGE。 工作區會驗證價值。
user_name 字串 使用者電子郵件。 每個補助金請精確指定其中之一user_name、service_principal_namegroup_name或一個。
group_name 字串 組名。 每個補助金請精確指定其中之一user_name、service_principal_namegroup_name或一個。
service_principal_name 字串 服務主體名稱。 每個補助金請精確指定其中之一user_name、service_principal_namegroup_name或一個。
Example
permissions:
  - user_name: trainer@example.com
    level: CAN_MANAGE
  - group_name: training-team
    level: CAN_VIEW

secrets

類型: 字串映射

該 secrets 金鑰包含環境變數名稱,並以精確 scope/key 格式映射到秘密參考。 作用域和金鑰必須非空。 名稱不能同時出現在 env_variables中。

Example
secrets:
  HF_TOKEN: my-scope/hf-token

關於建立與管理秘密的資訊,請參見 秘密管理。

timeout_minutes

類型: 整數

timeout_minutes該鑰匙設定了整個跑圈(包括重試)的牆上計時限制。 該值必須為正。 若省略,工作負載將使用 AI 執行時預設值。

usage_policy_id

類型: 字串

該 usage_policy_id 金鑰包含現有無伺服器使用政策的典範 UUID。 與 usage_policy_name互斥。

usage_policy_name

類型: 字串

該 usage_policy_name 金鑰包含現有無伺服器使用政策的名稱。 與 usage_policy_id互斥。

關於建立使用政策的資訊,請參見 「屬性使用與無伺服器使用政策」。

其他資源