Przekonwertowanie obciążenia AI Runtime do pakietu

Przekonwertuj istniejące YAML obciążenia AI Runtime na Declarative Automation Bundles, aby zarządzać nim jako trwałym zadaniem, dodaj harmonogram i połącz go z zadaniami wstępnego przetwarzania. Użyj databricks air convert-to-dabs, aby wygenerować pakiet, lub użyj mapowania pól na tej stronie, aby ręcznie go przekonwertować.

Requirements

Automatycznie przekonwertuj obciążenie robocze

Jeśli już uruchamiasz workload z databricks air run --file train.yaml, przekonwertuj jego workload YAML za pomocą databricks air convert-to-dabs.

  1. Zacznij od istniejącej definicji workloadu YAML i kodu. Na przykład może train.yaml wskazywać na skrypt treningowy w 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 katalogu zawierającego train.yaml, uruchom konwersję:

    databricks air convert-to-dabs train.yaml
    

    Polecenie tworzy databricks.yml oraz katalog generated_artifacts/ obok pliku YAML. Lokalnie tłumaczy konfigurację. Bundel przesyła kod, gdy go wdrażasz. Aby poznać inne układy katalogów i opcje nadpisania, zobacz Ścieżki konwerterów i wygenerowane pliki.

  3. Zweryfikuj, wdroż i uruchom wygenerowane zadanie:

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

Konwerter tworzy zadanie z jednym zadaniem na GPU. Aby dodać harmonogram i zadania wstępnego przetwarzania do databricks.yml, postępuj zgodnie z instrukcjami w artykule Planowanie obciążeń GPU i tworzenie zadań. Wdrożone zadanie pozostaje pomiędzy uruchomieniami. Użyj databricks bundle destroy, aby go usunąć, gdy skończysz.

Ścieżki konwerterów i wygenerowane pliki

databricks air convert-to-dabs train.yaml domyślnie zapisuje bundle do katalogu pliku wejściowego YAML. Rozwiązuje ścieżkę względną code_source.root_path względem katalogu YAML.

Dla źródła kodu ustalony katalog źródłowy musi znajdować się ściśle wewnątrz katalogu wyjściowego pakietu. Przy domyślnej lokalizacji wyjściowej root_path: . wskazuje na korzeń wiązki i zostaje odrzucone. Użyj podkatalogu źródłowego, takiego jak src, albo wybierz katalog wyjściowy zawierający katalog źródłowy.

Na przykład, jeśli /project/training/train.yaml używa root_path: ., następującą komendą zapisuje wiązkę do /project i pakuje /project/training:

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

--output-dir zmienia miejsce zapisu bundla. Nie kopiuje ani nie przenosi kodu źródłowego. Wykonaj kolejne databricks bundle polecenia w katalogu wyjściowym.

Jeśli wygenerowane pliki już istnieją, konwersja się zatrzymuje. Używaj --force, żeby je nadpisać. Zastępuje to wygenerowaną konfigurację pakietu, w tym wszelkie ręczne edycje tego pliku.

Konwerter zapisuje następujące pliki:

  • databricks.yml: konfiguracja pakietu, w tym zadania GPU i artefaktu kodu.
  • generated_artifacts/command.sh: skrypt poleceń.
  • generated_artifacts/training_config.yaml: konfiguracja obciążenia roboczego.
  • generated_artifacts/hyperparameters.yaml: zapisane, gdy parameters jest ustawione.
  • generated_artifacts/env_vars.json oraz generated_artifacts/secret_env_vars.json: wypisywane, gdy zmienne środowiskowe lub sekrety są ustawione.

Trzymaj wygenerowane pliki razem. Bundle przesyła je podczas wdrożenia. Gdy hyperparameters.yaml jest obecny obok command.sh, runtime ustawia HYPERPARAMETERS_PATH na ten plik.

Ręcznie mapuj pola obciążenia

Użyj następujących mapowań podczas ręcznej konwersji do pakietu z pliku YAML obciążenia AI Runtime. Aby przeprowadzić automatyczną konwersję, postępuj zgodnie z Automatyczne konwertowanie obciążenia. Definicje pól zadań można znaleźć w artykule o zadaniu AI Runtime.

Pole YAML dla Workload Ustawienie pakietu
experiment_name ai_runtime_task.experiment
command Przenieś polecenie do skryptu powłoki i odwołaj się do niego za 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 Spakuj kod z artefaktem tgz i odwołuj się do niego za pomocą ai_runtime_task.code_source_path, albo użyj przesłanej przestrzeni roboczej lub ścieżki woluminu.
environment.dependencies Pracaenvironments[].spec.dependencies.
environment.version environments[].spec.environment_version dla środowiska Standard lub environments[].spec.base_environment dla środowiska AI Databricks.
environment.docker_image.url ai_runtime_task.docker_image_url
env_variables, secrets environment_variables zadania i environment_variables_key zadania.
parameters Plik hyperparameters.yaml znajdujący się obok skryptu, do którego odwołuje się command_path. Środowisko uruchomieniowe ustawia HYPERPARAMETERS_PATH na ten plik.
max_retries Zadania max_retries.
timeout_minutes Zadania timeout_seconds, mnożąc minuty przez 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

Dodatkowe zasoby