Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Important
Tato funkce je ve verzi Public Preview.
Definujte název experimentu trénovací úlohy, výpočetní prostředky, příkaz, prostředí a zdroj kódu v konfiguraci YAML úlohy, kterou air run --filepředáte . Tato stránka dokumentuje každé pole.
Note
Základní pravdou pro konfiguraci YAML je nápověda v rozhraní příkazového řádku. Spusťte air -h config zobrazení nejvyšší úrovně a air -h config.<section> (například air -h config.environment) pro podrobnosti o jednotlivých oddílech.
Minimální konfigurace
experiment_name: my-training
environment:
dependencies:
- mlflow
compute:
num_accelerators: 1
accelerator_type: GPU_1xA10
command: echo "Hello World"
Odeslat pomocí:
air run --file train.yaml -p profile
Klíčové koncepty
Základní pole
Většina konfigurací trénování zahrnuje pět komponent:
-
experiment_name:Požadovaný. Vytvoří nebo připojí k experimentu MLflow. -
environment: Volitelné. Python závislostí a základního prostředí. -
compute:Požadovaný. Prostředky GPU (typ a počet) -
command:Požadovaný. Příkaz nebo příkazy Bash použité ke spuštění trénování. -
code_source: Volitelné. Cesta k trénovacímu kódu, který je dostupný vzdáleně.
Vaše první trénovací úloha
experiment_name: simple-training
environment:
dependencies:
- torch
- transformers
compute:
num_accelerators: 8
accelerator_type: GPU_8xH100
code_source:
type: snapshot
snapshot:
root_path: /home/username/repo
command: torchrun --nproc_per_node=8 $CODE_SOURCE_PATH/train.py
V této konfiguraci:
-
experiment_namevytvoří experiment MLflow s názvemsimple-training(nebo připojí nové spuštění, pokud už existuje). -
environmentnainstaluje uvedené Python závislostí (zdetorchatransformers). -
computepřidělí jeden uzel H100 (8 H100 GPU). -
code_sourcenahraje složkurepodo uzlu, který je k dispozici na adrese$CODE_SOURCE_PATH. -
commandběžítrain.pypřestorchrun8 H100 GPU. Soubor se nachází v/home/username/repo/train.pymístním prostředí.
Běžné případy použití
Přidejte proměnné prostředí
experiment_name: training-with-env
environment:
dependencies:
- torch
- transformers
env_variables:
BATCH_SIZE: '32'
LEARNING_RATE: '0.001'
compute:
num_accelerators: 8
accelerator_type: GPU_8xH100
code_source:
type: snapshot
snapshot:
root_path: /home/username/repo
git:
branch: main
command: torchrun --nproc_per_node=8 train.py
Použití tajných kódů (klíče rozhraní API, tokeny)
experiment_name: training-with-secrets
environment:
dependencies:
- torch
- transformers
secrets:
HF_TOKEN: 'my_scope/hf_token'
WANDB_API_KEY: 'my_scope/wandb'
compute:
num_accelerators: 8
accelerator_type: GPU_8xH100
code_source:
type: snapshot
snapshot:
root_path: /home/username/repo
git:
branch: main
command: torchrun --nproc_per_node=8 train.py
Tajné kódy používají formát scope/key a musí být nakonfigurované v tajných kódech Databricks. Nastavení najdete v tématu Správa tajných kódů .
Při sdílení šablony YAML musí jiní uživatelé vytvářet vlastní tajné kódy nebo mít přístup k odkazovanému tajnému kódu.
Python závislostí
Uveďte Python závislostí úlohy jako vložený seznam v částienvironment.dependencies:
environment:
version: '4'
dependencies:
- torch
- transformers
environment.version vybere verzi bezserverového prostředí GPU. Je nepovinný a výchozí hodnota "4"je . Úplný seznam dostupných verzí prostředí najdete v tématu Bezserverové verze prostředí.
databricks_ai_v5 K dispozici jsou také verze5. Verze 5 je minimální standardní prostředí, které zahrnuje pouze bezserverové rozhraní GPU API, závislosti Databricks a MLflow. Verze databricks_ai_v5 je prostředí Databricks AI, které zahrnuje všechny balíčky ze standardního prostředí a také PyTorch a komplexní knihovny strojového učení. Úplný seznam balíčků najdete v tématu Bezserverové prostředí GPU verze 5.
Formát závislostí
Seznam závislostí se řídí specifikací základního prostředí Databricks. Každá položka je specifikace balíčku ve stylu pip (například my-library==6.1). Seznam také přijímá následující položky:
-
Soubory požadavků: odkaz na existující
requirements.txtpoužití-r, například-r '/Workspace/Shared/requirements.txt'. Proměnné prostředí, jako$HOMEjsou například rozbalené. -
Kolečka: absolutní cesta k
.whlsouboru, například/Workspace/Shared/path/to/simplejson-3.19.3-py3-none-any.whl. -
Adresy URL indexu: adresa URL indexu, například
--index-url https://pypi.org/simple.
environment:
version: '4'
dependencies:
- --index-url https://pypi.org/simple
- -r '/Workspace/Shared/requirements.txt'
- my-library==6.1
- /Workspace/Shared/path/to/simplejson-3.19.3-py3-none-any.whl
Podporované příznaky instalace
Závislosti se instalují s uv. Následující příznaky stylu pip jsou podporovány jako položky seznamu:
-
Použije se na celou instalaci:
--index-url,--extra-index-urla--find-links(-f) set nebo rozšířit indexy balíčků. -
Použito na závislost, která následuje:
--no-deps,--no-build-isolation,--no-cache-dira--force-reinstall. Příznak umístěte na vlastní řádek (nebo před specifikaci) následovaný závislostí, na kterou se vztahuje.
Pokud chcete například nainstalovat flash-attn před již nainstalovanou torch (bez izolace sestavení) a bez překladu vlastních závislostí:
environment:
version: '4'
dependencies:
- torch
- --no-build-isolation
- --no-deps
- flash-attn
Note
--trusted-host se nepodporuje. Protože uv konfiguruje vztah důvěryhodnosti na adresu URL indexu, použijte --index-url nebo --extra-index-url místo toho.
Vlastní image Dockeru
Jako alternativu environment.dependenciesmůžete zadat vlastní image kontejneru Dockeru pomocí environment.docker_image.url.
environment.docker_image.url se vzájemně vylučují s oběma environment.dependencies a environment.version – nemůžete použít ani ve stejné úloze.
experiment_name: my-dcs-training
environment:
docker_image:
url: myorg/myrepo:mytag
compute:
num_accelerators: 1
accelerator_type: GPU_1xA10
command: python /app/train.py
Před použitím vlastní image ji zaregistrujte v air register imagesouboru . Úplné podrobnosti, včetně požadavků na image, základních imagí Databricks a vzorů dockerfile, najdete v tématu Použití vlastních imagí Dockeru.
Práce se zdroji kódu
Blok code_source nahraje místní kód, aby ji úloha trénování spustila.
-
root_pathje místní adresář k vytvoření snímku. Ve výchozím nastaveníairzabalí pracovní strom as-is (včetně jakýchkoli nepotvrzených změn) jako prostý tarball. - Pokud chcete vytvořit snímek připnuté verze Gitu, přidejte
git:blok sbranchnebocommit. To vyžadujeroot_path, aby se jedná o úložiště Git a umožnilo vytváření snímků s podporou verzí (ukládání do mezipaměti,git archive). - U velkých úložišť
include_pathsmůžete vytvořit snímek podmnožinu.
Minimální příklad
experiment_name: simple-training
environment:
dependencies:
- torch
- transformers
compute:
num_accelerators: 8
accelerator_type: GPU_8xH100
code_source:
type: snapshot
snapshot:
root_path: /home/username/repo
command: python $CODE_SOURCE_PATH/train.py
Na vzdáleném počítači je kód umístěn na /databricks/code_source/<directory_name>, kde <directory_name> je poslední komponenta root_pathcesty .
$CODE_SOURCE_PATH je nastavená na tuto absolutní cestu, proto ji použijte ve svém příkazu místo pevného kódování umístění.
Úložiště Git: Připnutí podle větve nebo potvrzení
Pro úložiště Git přidejte git: blok pro připnutí verze kódu podle větve nebo potvrzení SHA.
branch a commit vzájemně se vylučují: zadejte přesně jeden v rámci bloku.
Připnout na větev (používá místní head této větve):
code_source:
type: snapshot
snapshot:
root_path: /home/username/repo
git:
branch: main # Uses local HEAD of main (no remote fetch)
command: train.sh
Připnutí na algoritmu SHA potvrzení (přesná reprodukovatelnost):
code_source:
type: snapshot
snapshot:
root_path: /home/username/repo
git:
commit: abc1234567 # Pins specific commit
command: train.sh
Klíčová pole:
-
root_path(Povinné): Místní cesta ke kořenovému adresáři úložiště Git. -
git.branch(Volitelné): Název větve. Používá místní HEAD; žádné vzdálené načtení. Vzájemně se vylučuje sgit.commit. -
git.commit(Volitelné): Konkrétní algoritmus SHA potvrzení. Vzájemně se vylučuje sgit.branch. -
git.remote(Volitelné): Místo místního použijte vzdálenou hlavičku větve. Nastavte natrueautomatické rozpoznání vzdáleného umístění nebo na vzdálený název (napříkladupstream) pro načtení z konkrétního vzdáleného umístění. Platné pouze sgit.branch.
Pokud blok vynecháte git: , air zabalí pracovní strom jako prostý tarball, včetně jakýchkoli nepotvrzených změn. Nevyžaduje se žádné pole navíc.
Adresáře bez gitu
Můžete pořizovat snímky adresářů, které nejsou úložišti Git. Vynechat git: blok, který vyžaduje root_path , aby byl úložištěm Git. Bez ní neexistuje ukládání do mezipaměti žádné verze; každý běh se nahraje nový tarball.
code_source:
type: snapshot
snapshot:
root_path: /home/username/my_project
command: $CODE_SOURCE_PATH/train.py
Filtrování složek pomocí include_paths
U velkých monorepos můžete snímky jenom konkrétní složky snížit dobu nahrávání a stahování a velikost snímku:
code_source:
type: snapshot
snapshot:
root_path: /home/username/repo
include_paths:
- research/models
- research/common
- research/configs
command: python $CODE_SOURCE_PATH/research/models/launch_training.py
klíčové body:
- Pole je volitelné. Pokud ho vynecháte, bude ve výchozím nastavení zahrnuté celé úložiště.
- Cesty musí být relativní vzhledem ke kořenovému adresáři úložiště (bez počátečních
/). -
..není povoleno; nelze odkazovat na nadřazené adresáře.
Rozšířené funkce
Vlastní hyperparametry
Předání strukturované konfigurace do trénovacího skriptu prostřednictvím HYPERPARAMETERS_PATH:
experiment_name: parameterized-training
environment:
dependencies:
- torch
- transformers
compute:
num_accelerators: 8
accelerator_type: GPU_8xH100
code_source:
type: snapshot
snapshot:
root_path: /home/username/repo
git:
branch: main
command: torchrun --nproc_per_node=8 train.py
parameters:
model:
name: 'gpt2'
hidden_size: 768
training:
batch_size: 32
learning_rate: 0.0001
Přečtěte si je ve skriptu:
import os
import yaml
with open(os.environ['HYPERPARAMETERS_PATH']) as f:
params = yaml.safe_load(f)
learning_rate = params['training']['learning_rate']
model_name = params['model']['name']
Spolehlivost úloh
experiment_name: reliable-training
environment:
dependencies:
- torch
- transformers
compute:
num_accelerators: 8
accelerator_type: GPU_8xH100
code_source:
type: snapshot
snapshot:
root_path: /home/username/repo
git:
branch: main
command: torchrun --nproc_per_node=8 train.py
max_retries: 2
timeout_minutes: 90
Pokud úloha selže, opakuje se dvakrát. Každý pokus má 90 minut na dokončení, takže celkový rozpočet hodin je 90 × 3 = 270 minut.
Určení nákladů
Připojte úlohu k existující rozpočtové politice prostřednictvím usage_policy_name. Název se při spuštění úlohy přeloží na ID zásady. Informace o nastavení najdete v tématu Použití atributů se zásadami použití bez serveru.
experiment_name: my-training
environment:
dependencies:
- mlflow
compute:
num_accelerators: 1
accelerator_type: GPU_1xA10
command: echo "Hello World"
usage_policy_name: my team policy
Reference
Základní pole
| Pole | Typ | Description | Example |
|---|---|---|---|
experiment_name |
řetězec | Název experimentu pro MLflow | "my-training-job" |
environment.dependencies |
list | Vložený seznam specifikací závislostí pip. | ["torch", "transformers"] |
environment.version |
řetězec | Bezserverová verze prostředí GPU. Optional. Výchozí hodnota je "4". |
"4" |
compute.num_accelerators |
int | Počet GPU. |
1, , 48 |
compute.accelerator_type |
řetězec | Typ GPU. |
"GPU_1xA10", "GPU_8xH100" |
code_source |
dict | Konfigurace zdroje kódu | Viz Práce se zdroji kódu. |
command |
řetězec | Příkazy Bash ke spuštění trénování. | torchrun --nproc_per_node=8 train.py |
Podporované typy GPU
accelerator_type |
GPU na uzel | Poznámky |
|---|---|---|
GPU_1xA10 |
1 | Jeden A10, vhodný pro vývoj a malé úlohy. |
GPU_1xH100 |
1 | Single H100. |
GPU_8xH100 |
8 | Plný uzel H100, typický pro distribuované trénování. |
Možnosti akcelerátoru a doporučené případy použití najdete v tématu Možnosti hardwaru.
Volitelná pole
Konfigurace prostředí
environment:
version: '4'
dependencies:
- torch
- transformers
env_variables:
BATCH_SIZE: '32'
secrets:
HF_TOKEN: 'my_scope/hf_token'
Formát závislostí, podporované příznaky instalace a environment.versionviz Python závislostí.
Vlastní konfigurace image Dockeru
environment:
docker_image:
url: myorg/myrepo:mytag
Vzájemně se vylučují s environment.dependencies a environment.version. Před použitím si image air register image zaregistrujte. Viz Použití vlastních imagí Dockeru.
Konfigurace zdroje kódu
code_source:
type: snapshot
snapshot:
root_path: /home/username/repo # REQUIRED — local path to repo or directory
git: # Optional (git repos only) — pin to a branch or commit
branch: main # Branch name; uses local HEAD unless 'remote' is set
# commit: abc1234567 # Mutually exclusive with 'branch'
remote: false # Optional — true to auto-detect remote HEAD, or a remote name string
include_paths: # Optional — filter included paths
- src/
- configs/
Omezení polí:
-
git.branchagit.commitvzájemně se vylučují: zadejte přesně jeden vgit:rámci bloku. -
git.remotevyžadujegit.branch(nemá žádný účinek sgit.commit). - Pokud tento blok vynecháte
git:, pracovní strom se zabalí jako prostý tarball, včetně jakýchkoli nepotvrzených změn.
Vlastní parametry
Předané úloze prostřednictvím HYPERPARAMETERS_PATH:
parameters:
model:
name: 'gpt2'
hidden_size: 768
training:
batch_size: 32
Název spuštění MLflow
mlflow_run_name: 'experiment-001-baseline'
Rozlišení cesty
Všechny cesty v YAML úlohy jsou relativní vzhledem k YAML úlohy, pokud nejsou absolutními cestami.
Struktura složek:
/home/username/my-project/
├── train.yaml
└── scripts/
└── train.py
Konfigurace YAML:
experiment_name: my-training
environment:
dependencies:
- torch
- transformers
compute:
num_accelerators: 8
accelerator_type: GPU_8xH100
code_source:
type: snapshot
snapshot:
root_path: . # Relative to train.yaml
git:
branch: main
command: torchrun --nproc_per_node=8 $CODE_SOURCE_PATH/scripts/train.py