メインコンテンツまでスキップ

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/ をパッケージ化し、結果として得られるアーカイブをタスクに指定します。

YAML
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 をランします:

Bash
#!/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 をインストールします。

YAML
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 ボリュームなどの共有ロケーションにデータを書き込み、両方のタスクで同じパスを使用します。

その他のリソース​