配置 AI 執行時套件任務

請使用此參考資料自訂 ai_runtime_task 宣 告式自動化套件。 對於可執行的 GPU 工作負載排程並新增預處理任務的範例,請從 Schedule GPU 工作負載和組合任務開始。

關於任務欄位及其定義,請參閱 AI 執行時任務參考。 設定重試、逾時、權限,以及 environment_key 周邊的任務或工作。

寄送你的訓練代碼

該套件會同步檔案,例如 command.sh 部署時。 僅指令的工作負載可以指向 command_path 並 ${workspace.file_path}/command.sh 省略 code_source_path。

若有獨立的訓練程式碼目錄,則設定 code_source_path 為打包產物或工作區或磁碟區路徑。

打包一個本地目錄

宣告一個tgz工件來打包你的程式碼。databricks bundle deploy 此組態片段將 src/ 任務打包並指向最終的壓縮檔:

artifacts:
  code:
    type: tgz
    path: .
    include: [src]
    files:
      - source: ./dist/code.tgz

resources:
  jobs:
    train:
      tasks:
        - task_key: train
          ai_runtime_task:
            code_source_path: ./dist/code.tgz

執行時會解壓壓縮檔案,並設 CODE_SOURCE_PATH 為其頂層程式碼目錄。 其中 path: .include: [src]和 ,檔案包含 src/train.py 且 CODE_SOURCE_PATH 為 /databricks/code_source/src。 切換到該目錄後,執行 python train.py:

#!/usr/bin/env bash
set -euo pipefail
cd "$CODE_SOURCE_PATH"
python train.py

關於工件設定,包括 path、 include、 git和 files,請參見 bundle artifacts 參考。

使用上傳的程式碼

設定 code_source_path 為 /Workspace/… 已上傳的程式碼歸檔的 or /Volumes/… 路徑。 套件會使用該路徑,但不會打包你的本地目錄。

配置運算與環境

設定 accelerator_count 為每個節點的 GPU 倍數,編碼於 accelerator_type。 例如, GPU_8xH100 當 在 accelerator_count: 16 兩個節點上運行。 請參閱 硬體選項 以獲得硬體指引。

對於多節點工作負載,AI 執行時會在每個節點執行該指令。 任務環境包含 NUM_NODES、 WORLD_SIZE、 LOCAL_WORLD_SIZE、 MASTER_ADDRMASTER_PORT、 及 。 在分散式訓練指令中讀取這些變數。

在工作區 environments 塊中宣告相依關係,並選擇帶有任務 environment_key的環境。 以下設定片段用於在訓練環境中安裝 PyTorch:

resources:
  jobs:
    train:
      tasks:
        - task_key: train
          environment_key: training
      environments:
        - environment_key: training
          spec:
            environment_version: '6'
            dependencies:
              - torch

用於 environment_version 標準環境。 若要使用 Databricks 的 AI 環境,請 base_environment 改為 ,例如 workspace-base-environments/databricks_ai_v6。 請參閱 「建立你的環境」。

對於自訂 Docker 映像,請設定docker_image_urlai_runtime_task並遵循「使用自訂 Docker 映像搭配舊版 Python CLI」。

將設定與資料傳遞給任務

定義一個工作層級 environment_variables 的條目,並用任務的 environment_variables_key選取。 輸入純值 variables ,並用作 {{secrets/scope/key}} 秘密參考。 此設定需要如「 無伺服器工作配置環境變數」中所述的環境變數預覽。

要傳遞參數HYPERPARAMETERS_PATH,請將檔案與由 command_path參考的腳本並存hyperparameters.yaml。 這個套件會同步兩個檔案,執行時會設定 HYPERPARAMETERS_PATH 成訓練指令的參數檔。 關於從現有工作負載 YAML 轉換,請參見 「將 AI 執行時工作負載轉換為套件」。

Note

A ai_runtime_task 不支援工作任務值({{tasks.<task_key>.values.<name>}} 或 dbutils.jobs.taskValues)。 要在任務間傳遞資料,寫入共享位置,例如 Unity 目錄卷,並在兩個任務中使用相同路徑。

其他資源