AI ランタイム ワークロードをバンドルに変換する
既存の AI ランタイム ワークロードの YAML を 宣言型オートメーションバンドルに変換して、永続的なジョブとして管理し、スケジュールを追加し、前処理タスクと組み合わせます。databricks air convert-to-dabs を使用してバンドルを生成するか、このページのフィールドマッピングを使用して手動で変換します。
要件
- 既存の ワークロードYAML とそのトレーニングコード。
- 最新の Databricks CLI。変換する前に、既存のインストールを更新します。
- 生成されたジョブをデプロイして実行するには、AIランタイムプレビューが有効になっており、CLIが認証されているサポート対象のワークスペースが必要です。GPUワークロードのスケジュールとタスクの構成を参照してください。
ワークロードを自動的に変換する
databricks air run --file train.yaml ですでにワークロードを実行している場合は、その ワークロードYAML を databricks air convert-to-dabs で変換します。
-
既存のワークロードYAMLとコードの起動から始めます。たとえば、
train.yamlはsrc/内のトレーニング用スクリプトを指すことができます:YAMLexperiment_name: my-training
environment:
dependencies:
- torch
compute:
num_accelerators: 1
accelerator_type: GPU_1xA10
code_source:
type: snapshot
snapshot:
root_path: src
command: python $CODE_SOURCE_PATH/train.py -
train.yamlを含むディレクトリから変換をランします。Bashdatabricks air convert-to-dabs train.yamlこのコマンドは、YAMLと一緒に
databricks.ymlとgenerated_artifacts/ディレクトリを作成します。構成をローカルで翻訳します。バンドルをデプロイするときに、バンドルがコードをuploadします。その他のディレクトリLayoutおよび上書きオプションについては、コンバーターのパスと生成されたファイルを参照してください。 -
生成されたジョブを検証、デプロイ、実行します。
Bashdatabricks bundle validate
databricks bundle deploy
databricks bundle run my-training --no-wait
コンバーターにより、1 つの GPU タスクを含むジョブが作成されます。databricks.yml にスケジュールと前処理タスクを追加するには、「GPU ワークロードのスケジュールとタスクの構成」に従ってください。デプロイされたジョブは、ラン間で保持されます。完了したら、databricks bundle destroy を使用して削除します。
コンバーターパスと生成されたファイル
databricks air convert-to-dabs train.yaml defaultでは、バンドルを入力YAMLのディレクトリに書き込みます。YAMLのディレクトリに対して相対パス code_source.snapshot.root_path を解決します。
スナップショットコードのソースの場合、解決されたソースディレクトリは、バンドル出力ディレクトリの厳密内部にある必要があります。defaultの出力ロケーションを使用する場合、root_path: . はバンドルルートに解決され、拒否されます。src などのソースサブディレクトリを使用するか、ソースディレクトリを含む出力ディレクトリを選択してください。
たとえば、/project/training/train.yamlがroot_path: .を使用する場合、次のコマンドによってバンドルが/projectに書き込まれ、/project/trainingがパッケージ化されます。
databricks air convert-to-dabs /project/training/train.yaml --output-dir /project
--output-dir バンドルの書き込み先を変更します。ソースコードのコピーや移動は行われません。出力ディレクトリから後続のdatabricks bundleコマンドをランします。
生成されたファイルが既に存在する場合、変換は停止します。--force を使用して上書きします。これにより、生成されたバンドル構成(そのファイルに対する手動での編集内容を含む)が置き換えられます。
コンバーターは次のファイルを書き込みます:
databricks.yml: GPU タスクやコードのアーティファクトなど、バンドル構成。generated_artifacts/command.sh:コマンドスクリプト。generated_artifacts/training_config.yaml: ワークロード構成。generated_artifacts/hyperparameters.yaml:parametersが設定されている場合に書き込まれます。generated_artifacts/env_vars.jsonまたgenerated_artifacts/secret_env_vars.json: 環境変数またはシークレットが設定されたときに書き込まれます。
生成されたファイルをまとめて保持します。バンドルはデプロイ中にそれらをuploadします。hyperparameters.yaml が command.sh の隣にある場合、ランタイムは HYPERPARAMETERS_PATH をそのファイルに設定します。
ワークロードフィールドを手動でマッピングする
AI ランタイム のワークロード YAML からバンドルを手動で変換する場合は、次のマッピングを使用します。自動変換については、ワークロードの自動変換に従ってください。タスクフィールドの定義については、AI ランタイム タスクリファレンスを参照してください。
Workload YAML フィールド | バンドル設定 |
|---|---|
|
|
| コマンドをシェルスクリプトに移動し、 |
|
|
|
|
| コードを |
| ジョブの |
|
|
|
|
| ジョブの |
|
|
| タスクの |
| タスクの |
|
|
|
|
|
|