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

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:
    root_path: src
    command: python $CODE_SOURCE_PATH/train.py
  2. train.yamlを含むディレクトリから、変換をランします。

    Bash
    databricks air convert-to-dabs train.yaml

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

  3. 生成されたジョブを検証、デプロイ、ランします:

    Bash
    databricks bundle validate
    databricks bundle deploy
    databricks 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をパッケージ化します。

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します。command.sh の横に hyperparameters.yaml がある場合、ランタイムは 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 スタンダード環境の場合はenvironments[].spec.base_environment、Databricks AI環境の場合は。

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 スタンダード環境の場合はenvironments[].spec.base_environment、Databricks AI環境の場合は。

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

その他のリソース​