Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Important
Fitur ini ada di Pratinjau Umum.
Tentukan nama eksperimen, komputasi, perintah, lingkungan, dan sumber kode pekerjaan pelatihan dalam konfigurasi YAML beban kerja yang Anda teruskan ke air run --file. Halaman ini mendanai setiap bidang.
Note
Kebenaran dasar untuk konfigurasi YAML adalah bantuan dalam CLI. Jalankan air -h config untuk tampilan tingkat atas dan air -h config.<section> (misalnya, air -h config.environment) untuk detail per bagian.
Konfigurasi minimal
experiment_name: my-training
environment:
dependencies:
- mlflow
compute:
num_accelerators: 1
accelerator_type: GPU_1xA10
command: echo "Hello World"
Kirim dengan:
air run --file train.yaml -p profile
Konsep inti
Bidang inti
Sebagian besar konfigurasi pelatihan mencakup lima komponen:
-
experiment_name:Diperlukan. Membuat atau menambahkan eksperimen MLflow. -
environment: Opsional. Python dependensi dan lingkungan dasar. -
compute:Diperlukan. Sumber daya GPU (jenis dan hitungan). -
command:Diperlukan. Perintah bash atau perintah yang digunakan untuk meluncurkan pelatihan. -
code_source: Opsional. Jalur ke kode pelatihan Anda, tersedia dari jarak jauh.
Pekerjaan pelatihan pertama Anda
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
Dalam konfigurasi ini:
-
experiment_namemembuat eksperimen MLflow bernamasimple-training(atau menambahkan eksekusi baru jika sudah ada). -
environmentmenginstal dependensi Python yang tercantum (di sini,torchdantransformers). -
computemengalokasikan satu simpul H100 (8 GPU H100). -
code_sourcemengunggah folderrepoke simpul, tersedia di$CODE_SOURCE_PATH. -
commandtrain.pyberjalan melaluitorchrundi seluruh GPU 8 H100. File berada di/home/username/repo/train.pysecara lokal.
Kasus penggunaan umum
Menambahkan variabel lingkungan
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
Menggunakan rahasia (kunci API, token)
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
Rahasia menggunakan format scope/key dan harus dikonfigurasi dalam Rahasia Databricks. Lihat Manajemen rahasia untuk penyiapan.
Saat berbagi templat YAML, pengguna lain harus membuat rahasia mereka sendiri atau memiliki akses ke rahasia yang direferensikan.
Python dependensi
Cantumkan dependensi Python beban kerja Anda sebagai daftar sebaris di bawah environment.dependencies:
environment:
version: '4'
dependencies:
- torch
- transformers
environment.version memilih versi lingkungan GPU tanpa server. Ini bersifat opsional dan default ke "4". Untuk daftar lengkap versi lingkungan yang tersedia, lihat Versi lingkungan tanpa server.
5 Versi dan databricks_ai_v5 juga tersedia. Versi 5 adalah lingkungan Standar minimal, yang hanya mencakup API GPU tanpa server, dependensi Databricks, dan MLflow. Versinya databricks_ai_v5 adalah lingkungan AI Databricks, yang mencakup semua paket dari lingkungan Standar, ditambah PyTorch dan pustaka pembelajaran mesin yang komprehensif. Untuk daftar paket lengkap, lihat Lingkungan GPU Tanpa Server versi 5.
Format dependensi
Daftar dependensi mengikuti Spesifikasi Lingkungan Dasar Databricks. Setiap entri adalah spesifikasi paket gaya pip (misalnya, my-library==6.1). Daftar ini juga menerima entri berikut:
-
File persyaratan: referensi ke yang sudah ada
requirements.txtmenggunakan-r, misalnya-r '/Workspace/Shared/requirements.txt'. Variabel lingkungan seperti$HOMEdiperluas. -
Roda: jalur absolut ke
.whlfile, misalnya/Workspace/Shared/path/to/simplejson-3.19.3-py3-none-any.whl. -
URL indeks: URL indeks, misalnya
--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
Bendera penginstalan yang didukung
Dependensi diinstal dengan uv. Bendera gaya pip berikut didukung sebagai entri daftar:
-
Diterapkan ke seluruh penginstalan:
--index-url, ,--extra-index-urldan--find-links(-f) mengatur atau memperluas indeks paket. -
Diterapkan ke dependensi yang mengikutinya:
--no-deps, ,--no-build-isolation--no-cache-dir, dan--force-reinstall. Tempatkan bendera pada barisnya sendiri (atau sebelum spesifikasi), diikuti oleh dependensi yang berlaku untuknya.
Misalnya, untuk menginstal flash-attn terhadap yang sudah diinstal torch (tidak ada isolasi build) dan tanpa menyelesaikan dependensinya sendiri:
environment:
version: '4'
dependencies:
- torch
- --no-build-isolation
- --no-deps
- flash-attn
Note
--trusted-host tidak didukung. Karena uv mengonfigurasi kepercayaan per URL indeks, gunakan --index-url atau --extra-index-url sebagai gantinya.
Gambar Docker Kustom
Sebagai alternatif untuk environment.dependencies, Anda dapat menentukan gambar kontainer Docker kustom menggunakan environment.docker_image.url.
environment.docker_image.url saling eksklusif dengan environment.dependencies dan environment.version — Anda tidak dapat menggunakan baik dalam beban kerja yang sama.
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
Sebelum menggunakan gambar kustom, daftarkan dengan air register image. Untuk detail selengkapnya, termasuk persyaratan gambar, gambar dasar Databricks, dan pola Dockerfile, lihat Menggunakan gambar Docker kustom.
Bekerja dengan sumber kode
code_source Blok mengunggah kode lokal sehingga pekerjaan pelatihan dapat menjalankannya.
-
root_pathadalah direktori lokal untuk rekam jepret. Secara default,airmengemas pohon kerja as-is (termasuk perubahan yang tidak dilakukan) sebagai tarball biasa. - Untuk snapshot versi git yang disematkan, tambahkan
git:blok denganbranchataucommit. Ini harusroot_pathmenjadi repositori git dan memungkinkan rekam jepret yang sadar versi (penembolokan,git archive). - Untuk repositori besar,
include_pathsmemungkinkan Anda membuat rekam jepret subset.
Contoh minimal
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
Pada komputer jarak jauh, kode ditempatkan di , di /databricks/code_source/<directory_name>mana <directory_name> merupakan komponen jalur akhir dari root_path.
$CODE_SOURCE_PATH diatur ke jalur absolut tersebut, jadi gunakan di perintah Anda alih-alih mengkodekan lokasi secara permanen.
Repositori Git: sematkan menurut cabang atau penerapan
Untuk repositori git, tambahkan git: blok untuk menyematkan versi kode menurut cabang atau dengan menerapkan SHA.
branch dan commit saling eksklusif: tentukan tepat satu dalam blok.
Sematkan ke cabang (menggunakan KEPALA lokal cabang tersebut):
code_source:
type: snapshot
snapshot:
root_path: /home/username/repo
git:
branch: main # Uses local HEAD of main (no remote fetch)
command: train.sh
Sematkan ke SHA penerapan (reproduktifitas yang tepat):
code_source:
type: snapshot
snapshot:
root_path: /home/username/repo
git:
commit: abc1234567 # Pins specific commit
command: train.sh
Bidang kunci:
-
root_path(Wajib): Jalur lokal ke akar repositori git Anda. -
git.branch(Opsional): Nama cabang. Menggunakan HEAD lokal; tidak ada pengambilan jarak jauh. Bersifat saling eksklusif dengangit.commit. -
git.commit(Opsional): SHA penerapan tertentu. Bersifat saling eksklusif dengangit.branch. -
git.remote(Opsional): Gunakan HEAD jarak jauh cabang alih-alih yang lokal. Atur ketrueuntuk mendeteksi jarak jauh secara otomatis, atau ke nama jarak jauh (misalnya,upstream) untuk mengambil dari jarak jauh tertentu. Hanya valid dengangit.branch.
Jika Anda menghilangkan git: blok, air mengemas pohon kerja sebagai tarball biasa, termasuk perubahan yang tidak dikomit. Tidak diperlukan bidang tambahan.
Direktori non-git
Anda dapat mengambil rekam jepret direktori yang bukan repositori git. Hilangkan git: blok , yang mengharuskan root_path menjadi repositori git. Tanpa itu, tidak ada penembolokan versi; tarball segar diunggah untuk setiap eksekusi.
code_source:
type: snapshot
snapshot:
root_path: /home/username/my_project
command: $CODE_SOURCE_PATH/train.py
Pemfilteran folder dengan include_paths
Untuk monorepos besar, rekam jepret hanya folder tertentu untuk mengurangi waktu unggah dan unduhan dan ukuran rekam jepret:
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
Poin-poin penting:
- Bidang bersifat opsional. Jika dihilangkan, seluruh repositori disertakan secara default.
- Jalur harus relatif terhadap akar repositori (tanpa leading
/). -
..tidak diperbolehkan; Anda tidak dapat mereferensikan direktori induk.
Fitur tingkat lanjut
Hiperparameter kustom
Teruskan konfigurasi terstruktur ke skrip pelatihan Anda melalui 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
Baca di skrip Anda:
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']
Keandalan pekerjaan
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
Jika beban kerja gagal, beban kerja akan dicoba ulang dua kali. Setiap upaya memiliki 90 menit untuk diselesaikan, sehingga total anggaran jam dinding adalah 90 × 3 = 270 menit.
Atribusi biaya
Lampirkan beban kerja ke kebijakan anggaran yang ada melalui usage_policy_name. Nama diselesaikan ke ID kebijakan saat beban kerja diluncurkan. Untuk penyiapan, lihat Penggunaan atribut dengan kebijakan penggunaan tanpa server.
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
Bidang inti
| Ladang | Type | Description | Example |
|---|---|---|---|
experiment_name |
string | Nama eksperimen untuk MLflow. | "my-training-job" |
environment.dependencies |
list | Daftar sebaris spesifikasi dependensi pip. | ["torch", "transformers"] |
environment.version |
string | Versi lingkungan GPU tanpa server. Optional. Secara default menjadi "4". |
"4" |
compute.num_accelerators |
int | Jumlah GPU. |
1, , 48 |
compute.accelerator_type |
string | Jenis GPU. |
"GPU_1xA10", "GPU_8xH100" |
code_source |
Dict | Konfigurasi sumber kode. | Lihat Bekerja dengan sumber kode. |
command |
string | Perintah Bash untuk meluncurkan pelatihan. | torchrun --nproc_per_node=8 train.py |
Jenis GPU yang didukung
accelerator_type |
GPU per simpul | Notes |
|---|---|---|
GPU_1xA10 |
1 | A10 tunggal, baik untuk pengembangan dan beban kerja kecil. |
GPU_1xH100 |
1 | H100 tunggal. |
GPU_8xH100 |
8 | Simpul H100 penuh, khas untuk pelatihan terdistribusi. |
Untuk kemampuan akselerator dan kasus penggunaan yang direkomendasikan, lihat Opsi perangkat keras.
Bidang opsional
Konfigurasi lingkungan
environment:
version: '4'
dependencies:
- torch
- transformers
env_variables:
BATCH_SIZE: '32'
secrets:
HF_TOKEN: 'my_scope/hf_token'
Untuk format dependensi, bendera penginstalan yang didukung, dan environment.version, lihat Python dependensi.
Konfigurasi gambar Docker kustom
environment:
docker_image:
url: myorg/myrepo:mytag
Saling eksklusif dengan environment.dependencies dan environment.version. Daftarkan gambar sebelum air register image digunakan. Lihat Menggunakan gambar Docker kustom.
Konfigurasi sumber kode
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/
Batasan bidang:
-
git.branchdangit.commitsaling eksklusif: tentukan tepat satu dalamgit:blok. -
git.remotegit.branchmembutuhkan (tidak berpengaruh dengangit.commit). - Jika Anda menghilangkan
git:blok, pohon kerja dipaketkan sebagai tarball biasa, termasuk perubahan yang tidak dilakukan.
Parameter kustom
Diteruskan ke beban kerja melalui HYPERPARAMETERS_PATH:
parameters:
model:
name: 'gpt2'
hidden_size: 768
training:
batch_size: 32
Nama eksekusi MLflow
mlflow_run_name: 'experiment-001-baseline'
Resolusi jalur
Semua jalur dalam YAML beban kerja relatif terhadap YAML beban kerja kecuali jalur tersebut adalah jalur absolut.
Struktur folder:
/home/username/my-project/
├── train.yaml
└── scripts/
└── train.py
Konfigurasi 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