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-trainingenvironment:dependencies:- torchcompute:num_accelerators: 1accelerator_type: GPU_1xA10code_source:root_path: srccommand: python $CODE_SOURCE_PATH/train.py -
train.yamlを含むディレクトリから、変換をランします。Bashdatabricks air convert-to-dabs train.yamlこのコマンドは、
databricks.ymlと、YAMLの横にあるgenerated_artifacts/ディレクトリを作成します。構成をローカルで変換します。バンドルをデプロイすると、コードがuploadされます。他のディレクトリ Layout と上書きオプションについては、「 コンバーターのパスと生成されたファイル」を参照してください。 -
生成されたジョブを検証、デプロイ、ランします:
Bashdatabricks bundle validatedatabricks bundle deploydatabricks bundle run my-training --no-wait
コンバータは、1つのGPUタスクを持つジョブを作成します。スケジュールと前処理タスクをdatabricks.ymlに追加するには、GPU Workload のスケジュールとタスクの構成に従ってください。デプロイされたジョブは、ラン間で持続します。終了したら、databricks bundle destroyを使用して削除します。
コンバーターのパスと生成されるファイル
databricks air convert-to-dabs train.yaml defaultでは、バンドルは入力YAMLのディレクトリに書き込まれます。これは、YAMLのディレクトリに対して相対的なcode_source.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します。command.sh の横に hyperparameters.yaml がある場合、ランタイムは HYPERPARAMETERS_PATH をそのファイルに設定します。
ワークロードフィールドを手動でマッピングする
AI ランタイム ワークロード YAML からバンドルに手動で変換する場合は、以下のマッピングを使用してください。自動変換については、 ワークロードを自動的に変換するに従ってください。タスクフィールドの定義については、 AI ランタイム タスクリファレンスを参照してください。
Workload YAMLフィールド | バンドルの設定 |
|---|---|
|
|
| コマンドをシェルスクリプトに移動し、 |
|
|
|
|
|
|
| ジョブの |
|
|
|
|
| ジョブの |
|
|
| タスクの |
| タスクの |
|
|
|
|
|
|