Konfiguruj zadania pakietu AI Runtime

Użyj tego odniesienia, aby dostosować pakiety ai_runtime_taskautomatyki deklaratywnej. Dla przykładów możliwych do uruchomienia, które planują obciążenie GPU i dodają zadania wstępnego przetwarzania, zacznij od Schedule workloads GPU i kompose tasks.

Pola zadań i ich definicje można znaleźć w artykule o zadaniach AI Runtime. Ustaw próby, timeouty, uprawnienia i environment_key na otoczenie zadania lub zadania.

Wyślij swój kod treningowy

Pakiet synchronizuje pliki, takie jak podczas command.sh wdrożenia. Obciążenie oparte wyłącznie na poleceniu może wskazać command_path na ${workspace.file_path}/command.sh i pominąć code_source_path.

Dla osobnego katalogu kodu treningowego ustaw code_source_path zapakowany artefakt lub przestrzeń roboczą bądź ścieżkę woluminów.

Pakietuj lokalny katalog

Zadeklaruj artefakt, tgz aby zapakować swój kod na .databricks bundle deploy Ten fragment src/ konfiguracji pakuje i kieruje zadanie na powstałe archiwum:

artifacts:
  code:
    type: tgz
    path: .
    include: [src]
    files:
      - source: ./dist/code.tgz

resources:
  jobs:
    train:
      tasks:
        - task_key: train
          ai_runtime_task:
            code_source_path: ./dist/code.tgz

Środowisko uruchomieniowe rozpakowuje archiwum i ustawia CODE_SOURCE_PATH go do najwyższego katalogu kodu. Z path: . i include: [src], archiwum zawiera src/train.py oraz CODE_SOURCE_PATH jest ./databricks/code_source/src Po zmianie do tego katalogu uruchom python train.py:

#!/usr/bin/env bash
set -euo pipefail
cd "$CODE_SOURCE_PATH"
python train.py

Aby uzyskać ustawienia artefaktów, w tym path, include, git, i files, zobacz odniesienie do artefaktów wiązek.

Użyj przesłanego kodu

Ustaw code_source_path ścieżkę lub /Volumes/…/Workspace/… dla archiwum kodu, które już zostało przesłane. Pakiet korzysta z tej ścieżki bez pakowania lokalnego katalogu.

Konfiguruj obliczenia i środowiska

Ustaw accelerator_count wielokrotność GPU na węzeł zakodowany w accelerator_type. Na przykład GPU_8xH100 z biegiem accelerator_count: 16 na dwóch węzłach. Zobacz Sprzęt dla wskazówek dotyczących sprzętu.

Dla obciążenia wielowęzłowego AI Runtime uruchamia polecenie na każdym węźle. Środowisko zadania obejmuje NUM_NODES, WORLD_SIZE, LOCAL_WORLD_SIZE, MASTER_ADDR, oraz .MASTER_PORT Przeczytaj te zmienne w swoim rozproszonym poleceniu treningowym.

Zadeklaruj zależności w bloku environments zadania i wybierz środowisko z zadaniem environment_key. Poniższy fragment konfiguracji instaluje PyTorch w środowisku treningowym:

resources:
  jobs:
    train:
      tasks:
        - task_key: train
          environment_key: training
      environments:
        - environment_key: training
          spec:
            environment_version: '6'
            dependencies:
              - torch

Zastosowanie environment_version w środowisku Standardowym. Aby użyć środowiska AI Databricks, ustaw base_environment zamiast tego na przykład workspace-base-environments/databricks_ai_v6. Zobacz Konfigurowanie środowiska.

Aby uzyskać niestandardowy obraz Dockera, ustaw docker_image_url i ai_runtime_task podążaj za nim Użyj niestandardowych obrazów Dockera z legacy Python CLI.

Przekazywanie konfiguracji i danych do zadań

Zdefiniuj wpis na poziomie environment_variables zadania i wybierz go z zadaniem environment_variables_key. Wprowadź zwykłe wartości variables i użyj {{secrets/scope/key}} ich do sekretnych odniesień. Ta konfiguracja wymaga podglądu zmiennych środowiskowych opisanych w sekcji Konfiguruj zmienne środowiska dla zadań serwerowych.

Aby przekazać parametry przez HYPERPARAMETERS_PATH, zapisz hyperparameters.yaml plik obok skryptu odwołanego przez command_path. Pakiet synchronizuje oba pliki, a runtime HYPERPARAMETERS_PATH ustawia się do pliku parametrów dla twojego polecenia treningowego. Aby przeprowadzić konwersję z istniejącego obciążenia YAML, zobacz Konwersja obciążenia AI Runtime do pakietu.

Uwaga / Notatka

An ai_runtime_task nie obsługuje wartości zadań zadaniowych ({{tasks.<task_key>.values.<name>}} lub dbutils.jobs.taskValues). Aby przekazywać dane między zadaniami, zapisz je do współdzielonej lokalizacji, takiej jak wolumin Unity Catalog, i użyj tej samej ścieżki w obu zadaniach.

Dodatkowe zasoby