AIランタイムバンドルタスクの設定
このリファレンスを使用して、宣言型オートメーションバンドル内のai_runtime_taskをカスタマイズします。GPUワークロードをスケジュールし、前処理タスクを追加する実行可能な例については、GPUワークロードのスケジュールとタスクの構成から起動してください。
タスク フィールドとその定義については、AI ランタイム タスク リファレンスを参照してください。周辺のタスクまたはジョブに再試行、タイムアウト、権限、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を含むアーティファクト設定については、バンドルアーティファクトリファレンスを参照してください。
uploadしたコードを使用する
既にuploadされているコードアーカイブのcode_source_pathを/Workspace/…または/Volumes/…パスに設定します。バンドルは、ローカルディレクトリをパッケージ化せずにそのパスを使用します。
コンピュートと環境の設定
accelerator_typeにエンコードされたノードあたりのGPU数の倍数にaccelerator_countを設定します。たとえば、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ボリュームなどの共有ロケーションにデータを書き込み、両方のタスクで同じパスを使用します。