AI ランタイム バンドルタスクを設定します
「宣言型オートメーションバンドル内の ai_runtime_task をカスタマイズするには、このリファレンスを使用します。」GPUワークロードのスケジュール設定と前処理タスクの追加を行う実行可能な例については、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を含むアーティファクトの設定については、バンドル アーティファクト リファレンスを参照してください。
uploadコードを使用する
既にuploadされているコード アーカイブの /Workspace/… または /Volumes/… のパスに code_source_path を設定します。バンドルは、ローカルディレクトリをパッケージ化せずにそのパスを使用します。
コンピュートと環境の構成
accelerator_count に、accelerator_type でエンコードされたノードあたりの GPU 数の倍数を設定します。たとえば、accelerator_count: 16 を使用する GPU_8xH100 は 2 つのノードでランします。ハードウェア ガイダンスについては、ハードウェア オプションを参照してください。
マルチノード ワークロードの場合、AI ランタイムはすべてのノードでコマンドを実行します。タスク環境には、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}} を使用します。この構成には、Serverless ジョブの環境変数の構成で説明されている環境変数のプレビューが必要です。
HYPERPARAMETERS_PATH を介してパラメーターを渡すには、 command_path が参照するスクリプトとともに hyperparameters.yaml ファイルを保存します。バンドルは両方のファイルを同期し、ランタイムはトレーニングコマンドのパラメーターファイルに HYPERPARAMETERS_PATH を設定します。既存のワークロード YAML からの変換については、 AI ランタイム ワークロードをバンドルに変換するを参照してください。
ai_runtime_task はジョブのタスク値({{tasks.<task_key>.values.<name>}} または dbutils.jobs.taskValues)をサポートしていません。タスク間でデータを渡すには、Unity Catalog ボリュームなどの共有ロケーションにデータを書き込み、両方のタスクで同じパスを使用します。