Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Gebruik deze referentie om een ai_runtime_task in Declarative Automation Bundles aan te passen. Voor uitvoerbare voorbeelden die een GPU-workload plannen en preprocessing-taken toevoegen, begin met Schedule GPU-workloads en compose tasks.
Voor taakvelden en hun definities, zie de AI Runtime-taakreferentie. Stel opnieuw pogingen, time-outs, permissies en environment_key op de omliggende taak of klus in.
Stuur je trainingscode
De bundel synchroniseert bestanden zoals command.sh bij deployment. Een opdracht-only workload kan wijzen command_path op ${workspace.file_path}/command.sh en weglaten code_source_path.
Voor een aparte map met trainingscode, stel code_source_path je in op een verpakt artefact of een werkruimte of volumepad.
Pak een lokale directory
Verklaar een tgz artefact om je code op databricks bundle deployte verpakken. Dit configuratiefragment verpakt src/ en wijst de taak naar het resulterende archief:
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
De runtime haalt het archief uit en zet CODE_SOURCE_PATH zich in op zijn codemap op het hoogste niveau. Met path: . en include: [src]bevat het archief src/train.py en CODE_SOURCE_PATH is /databricks/code_source/src. Na het overstappen naar die directory, voer python train.pyje uit:
#!/usr/bin/env bash
set -euo pipefail
cd "$CODE_SOURCE_PATH"
python train.py
Voor artefactinstellingen, waaronder path, include, git, en files, zie de referentie voor bundelartefacten.
Gebruik geüploade code
Stel het pad code_source_path in op een /Workspace/… of /Volumes/… of voor een codearchief dat al is geüpload. De bundel gebruikt dat pad zonder je lokale directory te verpakken.
Configureer compute en omgevingen
Stel in accelerator_count op een veelvoud van de GPU's per node die in accelerator_typeis gecodeerd. Bijvoorbeeld, GPU_8xH100 met accelerator_count: 16 runs op twee nodes. Zie Hardware voor hardwarerichtlijnen.
Voor een workload met meerdere nodes voert AI Runtime het commando uit op elke node. De taakomgeving omvat NUM_NODES, WORLD_SIZE, LOCAL_WORLD_SIZE, MASTER_ADDR, en MASTER_PORT. Lees deze variabelen in je gedistribueerde trainingscommando.
Verklaar afhankelijkheden in het environments blok van de taak en selecteer de omgeving met de taak .environment_key Het volgende configuratiefragment installeert PyTorch in de trainingsomgeving:
resources:
jobs:
train:
tasks:
- task_key: train
environment_key: training
environments:
- environment_key: training
spec:
environment_version: '6'
dependencies:
- torch
Gebruik environment_version het voor een standaardomgeving. Om een Databricks AI-omgeving te gebruiken, stel base_environment in plaats daarvan workspace-base-environments/databricks_ai_v6bijvoorbeeld . Zie Uw omgeving instellen.
Voor een aangepaste Docker-image zet docker_image_urlai_runtime_task en volg je Use custom Docker images met de legacy Python CLI.
Geef configuratie en data door aan taken
Definieer een instap op functieniveau environment_variables en selecteer deze met de taak .environment_variables_key Voer gewone waarden in variables en gebruik {{secrets/scope/key}} die voor geheime referenties. Deze configuratie vereist de omgevingsvariabelen die zijn beschreven in Configure environment variables for serverless jobs.
Om parameters door HYPERPARAMETERS_PATHte laten lopen, sla een hyperparameters.yaml bestand op naast het script waarnaar wordt verwezen door command_path. De bundel synchroniseert beide bestanden, en de runtime zet HYPERPARAMETERS_PATH zich in op het parameterbestand voor je trainingscommando. Voor conversie van een bestaande workload YAML, zie Convert an AI Runtime workload to a bundle.
Notitie
An ai_runtime_task ondersteunt geen taakwaarden ({{tasks.<task_key>.values.<name>}} of dbutils.jobs.taskValues). Om data tussen taken door te geven, schrijf je deze naar een gedeelde locatie, zoals een Unity Catalog-volume, en gebruik je hetzelfde pad in beide taken.