AIランタイムバンドルタスクの設定

このリファレンスを使って、宣言的自動化バンドルの中ai_runtime_taskをカスタマイズしてください。 GPUワークロードをスケジューリングし、前処理タスクを追加するランナブル例としては、まず 「Schedule GPU workloads」と「タスクを合成する」から始めてください。

タスクフィールドとその定義については、 AI Runtimeタスクリファレンスを参照してください。 周囲のタスクやジョブに対して、やり直し、タイムアウト、権限、 environment_key を設定しましょう。

トレーニングコードを発送してください

バンドルは展開時に command.sh などのファイルを同期します。 コマンドのみのワークロードは、command_path${workspace.file_path}/command.shを指し、code_source_pathを省略することがあります。

トレーニングコードの別のディレクトリの場合は、 code_source_path をパッケージ化されたアーティファクトやワークスペース、またはボリュームパスに設定します。

ローカルディレクトリをパッケージ化する

databricks bundle deployにコードをパッケージ化するためのtgzアーティファクトを宣言してください。 この構成フラグメントは、 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などのアーティファクト設定については、バンドルアーティファクトリファクトを参照してください。

アップロードしたコードを使ってください

code_source_pathすでにアップロードされているコードアーカイブのパスを/Workspace/…か/Volumes/…パスに設定してください。 バンドルはローカルディレクトリをパッケージ化せずにそのパスを使用します。

コンピュートおよび環境の設定

ノードごとに accelerator_count のGPUの倍数に設定し、 accelerator_typeでエンコードします。 例えば、accelerator_count: 16 を持つGPU_8xH100は2つのノードで動作します。 ハードウェアのガイダンスについては 「ハードウェアオプション 」を参照してください。

マルチノードワークロードの場合、AI Runtimeはすべてのノードでこのコマンドを実行します。 タスク環境には NUM_NODES、 WORLD_SIZE、 LOCAL_WORLD_SIZE、 MASTER_ADDR、 MASTER_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イメージの場合は、ai_runtime_taskでdocker_image_urlを設定し、「レガシー Python CLIでカスタムDockerイメージを使う」に従ってください。

設定とデータをタスクに渡す

ジョブレベルの environment_variables エントリを定義し、タスクの environment_variables_keyで選択します。 variablesに単純な値を付けて、秘密の参照には{{secrets/scope/key}}を使いましょう。 この構成には 、サーバーレスジョブの環境変数構成で説明されている環境変数のプレビューが必要です。

パラメータをHYPERPARAMETERS_PATHに通すには、command_pathが参照するスクリプトの隣に hyperparameters.yaml ファイルを保存してください。 バンドルは両方のファイルを同期し、ランタイムは HYPERPARAMETERS_PATH をトレーニングコマンドのパラメータファイルに設定します。 既存のワークロードYAMLからの変換については、「 Convert an AI Runtime workload to a bundle(AI Runtime workload)をバンドルに変換する」をご覧ください。

Note

ai_runtime_taskはジョブタスクの価値({{tasks.<task_key>.values.<name>}}またはdbutils.jobs.taskValues)をサポートしません。 タスク間でデータを渡すには、Unityカタログのボリュームなどの共有場所に書き込み、両方のタスクで同じパスを使用します。

その他のリソース