Zet een AI Runtime-workload om in een bundel

Zet een bestaande AI Runtime workload YAML om in Declarative Automation Bundles om deze als een persistente taak te beheren, voeg een schema toe en stel deze samen met preprocessingtaken. Gebruik databricks air convert-to-dabs om de bundel te genereren, of gebruik de veldtoewijzingen op deze pagina om de bundel handmatig te converteren.

Requirements

Converteer automatisch een workload

Als je al een workload draait met databricks air run --file train.yaml, zet dan de workload YAML om met databricks air convert-to-dabs.

  1. Begin met je bestaande workload, YAML en code. Bijvoorbeeld, train.yaml kan wijzen op een trainingsscript in 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. Voer de conversie uit vanuit de map die train.yaml bevat:

    databricks air convert-to-dabs train.yaml
    

    Het commando maakt databricks.yml en een generated_artifacts/-map aan naast de YAML. Het vertaalt de configuratie lokaal. De bundel uploadt de code wanneer je hem uitrolt. Voor andere directory-indelingen en overschrijfopties, zie Converterpaden en gegenereerde bestanden.

  3. Valideer, deploy en voer de gegenereerde taak uit:

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

De converter maakt een job aan met één GPU-taak. Om een schema en preprocessing-taken toe te voegen aan databricks.yml, volg Schedule GPU workloads and compose tasks. De gedeployde job blijft bestaan tussen de runs door. Gebruik databricks bundle destroy om het te verwijderen als je klaar bent.

Converterpaden en gegenereerde bestanden

databricks air convert-to-dabs train.yaml schrijft de bundel standaard naar de map van het invoer-YAML-bestand. Het resolveert een relatief pad code_source.root_path ten opzichte van de map van de YAML.

Voor een codebron moet de opgeloste bronmap strikt binnen de bundeluitvoermap staan. Met de standaard uitvoerlocatie, wordt root_path: . omgezet naar de bundelwortel en wordt afgewezen. Gebruik ofwel een bronsubdirectory, zoals src, of selecteer een outputmap die de bronmap bevat.

Bijvoorbeeld, als /project/training/train.yamlroot_path: . gebruikt, schrijft het volgende commando de bundel naar /project en verpakt /project/training:

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

--output-dir verandert waar de bundel wordt weggeschreven. Het kopieert of verplaatst de broncode niet. Voer de volgende databricks bundle commando's uit vanuit de uitvoermap.

Als gegenereerde bestanden al bestaan, stopt de conversie. Gebruik --force om ze te overschrijven. Dit vervangt de gegenereerde bundelconfiguratie, inclusief eventuele handmatige bewerkingen aan dat bestand.

De converter schrijft de volgende bestanden:

  • databricks.yml: de bundelconfiguratie, inclusief de GPU-taak en code-artefact.
  • generated_artifacts/command.sh: het commandoscript.
  • generated_artifacts/training_config.yaml: de werklastconfiguratie.
  • generated_artifacts/hyperparameters.yaml: geschreven wanneer parameters is ingesteld.
  • generated_artifacts/env_vars.json en generated_artifacts/secret_env_vars.json: geschreven wanneer omgevingsvariabelen of geheimen worden ingesteld.

Houd de gegenereerde bestanden bij elkaar. De bundel zet ze tijdens de uitrol over. Wanneer hyperparameters.yaml aanwezig is naast command.sh, stelt de runtime HYPERPARAMETERS_PATH in op dat bestand.

Wijs werklastvelden handmatig toe

Gebruik de volgende mappings bij het handmatig converteren naar een bundel vanuit een AI Runtime-workload YAML. Voor automatische conversie volg Converteer een werklast automatisch. Voor taakvelddefinities, zie de AI Runtime-taakreferentie.

Workload YAML-veld Bundle-instelling
experiment_name ai_runtime_task.experiment
command Verplaats het commando naar een shellscript en verwijs ernaar met 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 Pak de code met een tgz artefact en verwijs ernaar met ai_runtime_task.code_source_path, of gebruik een geüploade werkruimte of volumepad.
environment.dependencies Het werk is environments[].spec.dependencies.
environment.version environments[].spec.environment_version voor een standaardomgeving, of environments[].spec.base_environment voor een Databricks AI-omgeving.
environment.docker_image.url ai_runtime_task.docker_image_url
env_variables, secrets De environment_variables van de opdracht en de environment_variables_key van de taak.
parameters Een hyperparameters.yaml bestand naast het script waarnaar door command_path wordt verwezen. De runtime stelt HYPERPARAMETERS_PATH in op dit bestand.
max_retries De taak max_retries.
timeout_minutes De timeout_seconds van de taak, waarbij je minuten met 60 vermenigvuldigt.
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

Aanvullende bronnen