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

AI ランタイム ワークロードをバンドルに変換する

既存の AI ランタイム ワークロードの YAML を 宣言型オートメーションバンドルに変換して、永続的なジョブとして管理し、スケジュールを追加し、前処理タスクと組み合わせます。databricks air convert-to-dabs を使用してバンドルを生成するか、このページのフィールドマッピングを使用して手動で変換します。

要件​

ワークロードを自動的に変換する​

databricks air run --file train.yaml ですでにワークロードを実行している場合は、その ワークロードYAML を databricks air convert-to-dabs で変換します。

  1. 既存のワークロードYAMLとコードの起動から始めます。たとえば、 train.yaml は src/ 内のトレーニング用スクリプトを指すことができます:

    YAML
    experiment_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
  2. train.yaml を含むディレクトリから変換をランします。

    Bash
    databricks air convert-to-dabs train.yaml

    このコマンドは、YAMLと一緒に databricks.yml と generated_artifacts/ ディレクトリを作成します。構成をローカルで翻訳します。バンドルをデプロイするときに、バンドルがコードをuploadします。その他のディレクトリLayoutおよび上書きオプションについては、コンバーターのパスと生成されたファイルを参照してください。

  3. 生成されたジョブを検証、デプロイ、実行します。

    Bash
    databricks 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がパッケージ化されます。

Bash
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 フィールド

バンドル設定

experiment_name

ai_runtime_task.experiment

command

コマンドをシェルスクリプトに移動し、 ai_runtime_task.deployments[].command_path で参照します。

compute.accelerator_type

ai_runtime_task.deployments[].compute.accelerator_type

compute.num_accelerators

ai_runtime_task.deployments[].compute.accelerator_count

code_source

コードを tgz アーティファクトでパッケージ化し、ai_runtime_task.code_source_path で参照するか、uploadされたワークスペースまたはボリュームのパスを使用します。

environment.dependencies

ジョブの environments[].spec.dependencies

environment.version

environments[].spec.environment_version Standard環境の場合は 、または Databricks AI 環境の場合は environments[].spec.base_environment。

environment.docker_image.url

ai_runtime_task.docker_image_url

env_variables, secrets

ジョブのenvironment_variablesとタスクのenvironment_variables_key。

parameters

command_path によって参照されるスクリプトと並行した hyperparameters.yaml ファイル。ランタイムは、このファイルに HYPERPARAMETERS_PATH を設定します。

max_retries

タスクの max_retries。

timeout_minutes

タスクのtimeout_seconds(分数を60で乗算)。

mlflow_run_name

ai_runtime_task.mlflow_run

mlflow_experiment_directory

ai_runtime_task.mlflow_experiment_directory

mlflow_artifact_location

ai_runtime_task.mlflow_artifact_location

Workload YAML フィールド

バンドル設定

experiment_name

ai_runtime_task.experiment

command

コマンドをシェルスクリプトに移動し、 ai_runtime_task.deployments[].command_path で参照します。

compute.accelerator_type

ai_runtime_task.deployments[].compute.accelerator_type

compute.num_accelerators

ai_runtime_task.deployments[].compute.accelerator_count

code_source

コードを tgz アーティファクトでパッケージ化し、ai_runtime_task.code_source_path で参照するか、uploadされたワークスペースまたはボリュームのパスを使用します。

environment.dependencies

ジョブの environments[].spec.dependencies

environment.version

environments[].spec.environment_version Standard環境の場合は 、または Databricks AI 環境の場合は environments[].spec.base_environment。

environment.docker_image.url

ai_runtime_task.docker_image_url

env_variables, secrets

ジョブのenvironment_variablesとタスクのenvironment_variables_key。

parameters

command_path によって参照されるスクリプトと並行した hyperparameters.yaml ファイル。ランタイムは、このファイルに HYPERPARAMETERS_PATH を設定します。

max_retries

タスクの max_retries。

timeout_minutes

タスクのtimeout_seconds(分数を60で乗算)。

mlflow_run_name

ai_runtime_task.mlflow_run

mlflow_experiment_directory

ai_runtime_task.mlflow_experiment_directory

mlflow_artifact_location

ai_runtime_task.mlflow_artifact_location

その他のリソース​