Konvertera en AI-runtime-arbetsbelastning till ett paket

Konvertera en befintlig AI-runtime-arbetsbelastnings-YAML till Declarative Automation Bundles för att hantera den som ett varaktigt jobb, lägg till ett schema och komponera den med förbehandlingsuppgifter. Använd databricks air convert-to-dabs för att generera paketet, eller använd fältmappningarna på denna sida för att konvertera det manuellt.

Krav

Konvertera en arbetslast automatiskt

Om du redan kör en arbetsbelastning med databricks air run --file train.yaml, konvertera dess arbetsbelastning YAML med databricks air convert-to-dabs.

  1. Börja med din befintliga workload-YAML och kod. Till exempel train.yaml kan peka på ett träningsskript i 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. Från katalogen som innehåller train.yaml, kör konverteringen:

    databricks air convert-to-dabs train.yaml
    

    Kommandot skapar databricks.yml och en katalog generated_artifacts/ bredvid YAML-filen. Den översätter konfigurationen lokalt. Bundlen laddar upp koden när du distribuerar den. För andra kataloglayouter och överskrivningsalternativ, se Sökvägar för Converter och genererade filer.

  3. Validera, distribuera och kör det genererade jobbet:

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

Konverteraren skapar ett jobb med en GPU-uppgift. Om du vill lägga till ett schema och förbehandlingsuppgifter i databricks.yml, följer du Schemalägg GPU-arbetsbelastningar och skapa uppgifter. Det driftsatta jobbet kvarstår mellan körningarna. Använd databricks bundle destroy för att ta bort den när du är klar.

Konverteringssökvägar och genererade filer

databricks air convert-to-dabs train.yaml skriver paketet till indata-YAML:s katalog som standard. Den tolkar en relativ sökväg code_source.root_path relativt till YAML-filens katalog.

För en kodkälla måste den uppslagna källkatalogen vara strikt inuti bundle-utmatningskatalogen. Med standardplatsen för utdata pekar root_path: . på paketets rotkatalog och avvisas. Använd antingen en källunderkatalog, såsom src, eller välj en utdatakatalog som innehåller källkatalogen.

Till exempel, om /project/training/train.yaml använder root_path: ., skriver följande kommando bunten till /project och paketerar /project/training:

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

--output-dir ändrar var paketet skrivs. Den kopierar inte eller flyttar källkoden. Kör de efterföljande databricks bundle kommandona från utdatakatalogen.

Om genererade filer redan finns upphör konverteringen. Använd --force för att skriva över dem. Detta ersätter den genererade bundle-konfigurationen, inklusive eventuella manuella redigeringar av den filen.

Omvandlaren skriver följande filer:

  • databricks.yml: paketkonfigurationen, inklusive GPU-uppgiften och kodartefakten.
  • generated_artifacts/command.sh: kommandoskriptet.
  • generated_artifacts/training_config.yaml: konfigurationen för arbetsbelastningen.
  • generated_artifacts/hyperparameters.yaml: skrivs när parameters är satt.
  • generated_artifacts/env_vars.json och generated_artifacts/secret_env_vars.json: skrivs när miljövariabler eller hemligheter sätts.

Behåll de genererade filerna tillsammans. Bundlen laddar upp dem under driftsättningen. När hyperparameters.yaml finns bredvid command.sh sätter körtiden HYPERPARAMETERS_PATH till den filen.

Mappa arbetsbelastningsfält manuellt

Använd följande mappningar när du manuellt konverterar till ett paket från en YAML för AI Runtime-arbetsbelastning. För automatisk konvertering, följ Konvertera en arbetsbelastning automatiskt. För definitioner av uppgiftsfält, se referensen för AI Runtime-uppgifter.

YAML-fältet för arbetsbelastning Paketinställning
experiment_name ai_runtime_task.experiment
command Flytta kommandot till ett shell-skript och referera det med 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 Paketera koden med en tgz artefakt och referera den med ai_runtime_task.code_source_path, eller använd en uppladdad arbetsyta eller volymväg.
environment.dependencies Jobbets environments[].spec.dependencies.
environment.version environments[].spec.environment_version för en Standardmiljö, eller environments[].spec.base_environment för en Databricks AI-miljö.
environment.docker_image.url ai_runtime_task.docker_image_url
env_variables, secrets Jobbets environment_variables och uppgiftens environment_variables_key.
parameters En hyperparameters.yaml fil bredvid skriptet som command_path refererar till. Runtimen ställer in HYPERPARAMETERS_PATH på denna fil.
max_retries Uppgiftens max_retries.
timeout_minutes Uppgiftens timeout_seconds, multiplicera minuter med 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

Ytterligare resurser