Převést AI runtime workload do balíčku

Převeďte existující AI Runtime workload YAML do Declarative Automation Bundles, aby se spravoval jako perzistentní úloha, přidejte plán a zkombinujte jej s úlohami předzpracování. Použijte databricks air convert-to-dabs k vygenerování bundle, nebo použijte mapování polí na této stránce pro ruční převod.

Requirements

Automaticky převést pracovní zatížení

Pokud už spouštíte workload s databricks air run --file train.yaml, převeďte jeho workload YAML pomocí databricks air convert-to-dabs.

  1. Začněte s vaším existujícím workloadem v YAML a kódu. Například může train.yaml ukazovat na tréninkový skript v src/:

    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. Z adresáře obsahujícího train.yaml, proveďte konverzi:

    databricks air convert-to-dabs train.yaml
    

    Příkaz vytvoří adresáře databricks.yml a generated_artifacts/ vedle YAML. Konfiguraci překládá lokálně. Balíček nahraje kód, když ho nasadíte. Pro další rozvržení adresářů a možnosti přepsání viz Cesty převodníků a generované soubory.

  3. Ověřte, nasaďte a spusťte generovanou úlohu:

    databricks bundle validate
    databricks bundle deploy
    databricks bundle run my-training --no-wait
    

Převodník vytvoří úkol s jedním úkolem GPU. Pro přidání plánu a úloh předzpracování do databricks.yml, postupujte podle Plánování úloh GPU a vytváření úloh. Nasazená úloha přetrvává mezi jednotlivými běhy. Použij databricks bundle destroy, až skončíš, a odeber ho.

Cesty ke konvertorům a generované soubory

databricks air convert-to-dabs train.yaml ve výchozím nastavení zapisuje bundle do adresáře vstupního souboru YAML. Vyřeší relativní code_source.root_path vzhledem k adresáři souboru YAML.

Pro zdrojový kód musí být adresář zdroje po vyhodnocení striktně uvnitř výstupního adresáře balíčku. S výchozím výstupním umístěním se root_path: . přeloží na kořen balíčku a je odmítnuto. Buď použijte zdrojový podadresář, například src, nebo vyberte výstupní adresář, který obsahuje zdrojový adresář.

Například pokud /project/training/train.yaml používá root_path: ., následující příkaz zapisuje bundle do /project a balí /project/training:

databricks air convert-to-dabs /project/training/train.yaml --output-dir /project

--output-dir mění místo, kde se bundle zapisuje. Nekopíruje ani nepřesouvá zdrojový kód. Následující databricks bundle příkazy spusťte z adresáře výstupů.

Pokud už generované soubory existují, konverze se zastaví. Použijte --force k jejich přepsání. Toto nahradí vygenerovanou konfiguraci balíčku, včetně jakýchkoli ručních úprav tohoto souboru.

Převodník zapisuje následující soubory:

  • databricks.yml: konfiguraci balíčku, včetně úlohy GPU a kódového artefaktu.
  • generated_artifacts/command.sh: příkazový skript.
  • generated_artifacts/training_config.yaml: konfigurace pracovní zátěže.
  • generated_artifacts/hyperparameters.yaml: zapsáno, když parameters je nastaveno.
  • generated_artifacts/env_vars.json a generated_artifacts/secret_env_vars.json: zapisuje se, když jsou nastaveny proměnné prostředí nebo tajné klíče.

Udržujte vygenerované soubory pohromadě. Balíček je nahrává během nasazení. Když je hyperparameters.yaml přítomen vedle command.sh, runtime nastaví HYPERPARAMETERS_PATH na tento soubor.

Přiřaďte pole pracovní zátěže ručně

Při ručním převodu z AI Runtime workload YAML do balíčku použijte následující mapování. Pro automatický převod postupujte podle článku Automatický převod úlohy. Definice polí úloh naleznete v referenci k úloze AI Runtime.

Pole YAML workloadu Nastavení balíčku
experiment_name ai_runtime_task.experiment
command Přesuňte příkaz do shell skriptu a odkazujte na něj pomocí 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 Zabalte kód s artefaktem tgz a odkazujte na něj pomocí ai_runtime_task.code_source_path, nebo použijte nahraný pracovní prostor či cestu k svazku.
environment.dependencies Práce je environments[].spec.dependencies.
environment.version environments[].spec.environment_version pro standardní prostředí nebo environments[].spec.base_environment pro AI-prostředí Databricks.
environment.docker_image.url ai_runtime_task.docker_image_url
env_variables, secrets Úloha má environment_variables a úkol má environment_variables_key.
parameters Soubor hyperparameters.yaml vedle skriptu, na který odkazuje command_path. Runtime nastaví HYPERPARAMETERS_PATH na tento soubor.
max_retries Úkolu max_retries.
timeout_minutes Úkolem je timeout_seconds, tedy vynásobit minuty 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

Dodatečné zdroje