Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Important
Bu özellik Genel Önizleme aşamasındadır.
öğesine geçirdiğiniz air run --fileiş yükü YAML yapılandırmasında bir eğitim işinin deneme adını, işlemini, komutunu, ortamını ve kod kaynağını tanımlayın. Bu sayfa her alanı belgelemektedir.
Note
YAML yapılandırması için temel gerçek, CLI içi yardımdır. En üst düzey görünümde ve air -h config (örneğin, air -h config.<section>) bölüm başına ayrıntı için komutunu çalıştırınair -h config.environment.
En az yapılandırma
experiment_name: my-training
environment:
dependencies:
- mlflow
compute:
num_accelerators: 1
accelerator_type: GPU_1xA10
command: echo "Hello World"
Şu şekilde gönder:
air run --file train.yaml -p profile
Temel kavramlar
Çekirdek alanlar
Çoğu eğitim yapılandırması beş bileşenden oluşur:
-
experiment_name: Gerekli. MLflow denemesi oluşturur veya buna ekler. -
environment: İsteğe bağlı. bağımlılıkları ve temel ortamı Python. -
compute: Gerekli. GPU kaynakları (tür ve sayı). -
command: Gerekli. Eğitimi başlatmak için kullanılan bash komutu veya komutları. -
code_source: İsteğe bağlı. Uzaktan kullanılabilir hale gelen eğitim kodunuzun yolu.
İlk eğitim işiniz
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
Bu yapılandırmada:
-
experiment_nameadlısimple-trainingbir MLflow denemesi oluşturur (veya zaten varsa yeni bir çalıştırma ekler). -
environmentlistelenen Python bağımlılıklarını (buradatorchvetransformers) yükler. -
computebir H100 düğümü (8 H100 GPU) ayırır. -
code_sourceklasörürepokonumunda bulunan$CODE_SOURCE_PATHdüğüme yükler. -
command8 H100 GPU üzerindentrain.pyçalışırtorchrun. Dosya yerel olarak bulunur/home/username/repo/train.py.
Yaygın kullanım örnekleri
Ortam değişkenleri ekleme
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
Gizli dizileri kullanma (API anahtarları, belirteçler)
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
Gizli diziler biçimini scope/key kullanır ve Databricks Gizli Dizileri'nde yapılandırılmalıdır. Bkz. Kurulum için gizli dizi yönetimi .
Bir YAML şablonunu paylaşırken, diğer kullanıcıların kendi gizli dizilerini oluşturması veya başvuruda bulunan gizli diziye erişmesi gerekir.
Python bağımlılıkları
İş yükünüzün Python bağımlılıklarını altında satır içi liste olarak listeleyinenvironment.dependencies:
environment:
version: '4'
dependencies:
- torch
- transformers
environment.version sunucusuz GPU ortamı sürümünü seçer. İsteğe bağlıdır ve varsayılan olarak olarak "4"ayarlanır. Kullanılabilir ortam sürümlerinin tam listesi için bkz. Sunucusuz ortam sürümleri.
ve 5 sürümleri databricks_ai_v5 de kullanılabilir. Sürüm 5 , yalnızca sunucusuz GPU API'sini, Databricks bağımlılıklarını ve MLflow'ı içeren en düşük Standart ortamdır. Sürüm databricks_ai_v5 , Standart ortamdaki tüm paketlerin yanı sıra PyTorch ve kapsamlı makine öğrenmesi kitaplıklarını içeren Databricks AI ortamıdır. Tam paket listesi için bkz . Sunucusuz GPU ortamı sürüm 5.
Bağımlılık biçimi
Bağımlılık listesi Databricks Temel Ortam Belirtimini izler. Her giriş bir pip stili paket belirtimidir (örneğin, my-library==6.1). Liste aşağıdaki girdileri de kabul eder:
-
Gereksinimler dosyaları: kullanarak
requirements.txtvar olan-rbir başvuru, örneğin-r '/Workspace/Shared/requirements.txt'. gibi$HOMEortam değişkenleri genişletilir. -
Tekerlekler: bir dosyanın mutlak yolu
.whl, örneğin/Workspace/Shared/path/to/simplejson-3.19.3-py3-none-any.whl. -
Dizin URL'leri: dizin URL'si, örneğin
--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
Desteklenen yükleme bayrakları
Bağımlılıklar uv ile yüklenir. Aşağıdaki pip stili bayraklar liste girdileri olarak desteklenir:
-
Yüklemenin tamamına uygulanır:
--index-url,--extra-index-url, ve--find-links(-f) paket dizinlerini ayarlayın veya genişletin. -
Aşağıdaki bağımlılıklara uygulanır:
--no-deps,--no-build-isolation,--no-cache-dirve--force-reinstall. Bayrağı kendi satırına (veya belirtimden önce) ve ardından uygulandığı bağımlılığı yerleştirin.
Örneğin, zaten yüklü flash-attn (derleme yalıtımı olmadan) ve kendi bağımlılıklarını çözmeden yüklemek torch için:
environment:
version: '4'
dependencies:
- torch
- --no-build-isolation
- --no-deps
- flash-attn
Note
--trusted-host desteklenmez. uv dizin URL'si başına güveni yapılandırdığından veya --index-url kullanın--extra-index-url.
Özel Docker görüntüleri
seçeneğine environment.dependenciesalternatif olarak, kullanarak environment.docker_image.urlözel bir Docker kapsayıcı görüntüsü belirtebilirsiniz.
environment.docker_image.url hem hem de environment.dependenciesenvironment.version ile birbirini dışlar; ikisini de aynı iş yükünde kullanamazsınız.
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
Özel görüntü kullanmadan önce ile air register imagekaydedin. Görüntü gereksinimleri, Databricks temel görüntüleri ve Dockerfile desenleri gibi tüm ayrıntılar için bkz. Özel Docker görüntüleri kullanma.
Kod kaynaklarıyla çalışma
Blok, code_source eğitim işinin çalıştırabilmesi için yerel kodu karşıya yükler.
-
root_pathanlık görüntü için yerel dizindir. Varsayılan olarak,airçalışma ağacını as-is (kaydedilmemiş değişiklikler dahil) düz tarball olarak paketler. - Bunun yerine sabitlenmiş git sürümünün anlık görüntüsünü almak için veya
git:ilebranchbircommitblok ekleyin. Bunun bir git deposu olması gerekirroot_pathve sürüme duyarlı anlık görüntü oluşturmayı (önbelleğe alma,git archive) etkinleştirir. - Büyük depolar için bir
include_pathsalt kümenin anlık görüntüsünü almanızı sağlar.
En küçük örnek
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
Uzak makinede kod konumuna yerleştirilir /databricks/code_source/<directory_name>; burada <directory_name> son yol bileşenidir root_path.
$CODE_SOURCE_PATH bu mutlak yola ayarlanır, bu nedenle konumu sabit kodlamak yerine komutunuzda kullanın.
Git depoları: dal veya işlemeye göre sabitleme
Git depoları için kod sürümünü dal veya işleme SHA'sı ile sabitlemek için bir git: blok ekleyin.
branch ve commit birbirini dışlar: blok içinde tam olarak bir tane belirtin.
Bir dala sabitleyin (bu dalın yerel HEAD'ini kullanır):
code_source:
type: snapshot
snapshot:
root_path: /home/username/repo
git:
branch: main # Uses local HEAD of main (no remote fetch)
command: train.sh
İşleme SHA'sına sabitle (tam yeniden üretilebilirlik):
code_source:
type: snapshot
snapshot:
root_path: /home/username/repo
git:
commit: abc1234567 # Pins specific commit
command: train.sh
Anahtar alanları:
-
root_path(Gerekli): Git deponuzun kökünün yerel yolu. -
git.branch(İsteğe bağlı): Dal adı. Yerel HEAD kullanır; uzaktan getirme yok.git.commitile birbirini dışlar. -
git.commit(İsteğe bağlı): Belirli işleme SHA'sı.git.branchile birbirini dışlar. -
git.remote(İsteğe bağlı): Yerel olan yerine dalın uzak HEAD'ini kullanın. Uzak öğeyi otomatik olarak algılamaktrueiçin olarak veya belirli bir uzak bilgisayardan getirmek için uzak bir ada (örneğin,upstream) ayarlayın. Yalnızca ilegit.branchgeçerlidir.
Bloğu atlarsanız git: , air iş ağacını, kaydedilmemiş değişiklikler de dahil olmak üzere düz bir tarball olarak paketler. Ek alan gerekmez.
Git dışı dizinler
Git depoları olmayan anlık görüntü dizinleri oluşturabilirsiniz. Git deposu olmasını gerektiren git: bloğu atlaroot_path. Bu olmadan, sürüm önbelleğe alma yoktur; Her çalıştırma için yeni bir tarball yüklenir.
code_source:
type: snapshot
snapshot:
root_path: /home/username/my_project
command: $CODE_SOURCE_PATH/train.py
ile klasör filtreleme include_paths
Büyük monorepolar için, karşıya yükleme ve indirme süresini ve anlık görüntü boyutunu azaltmak için anlık görüntü yalnızca belirli klasörler:
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
Önemli noktalar:
- Alan isteğe bağlıdır. Atlanırsa, deponun tamamı varsayılan olarak eklenir.
- Yollar depo köküne göre olmalıdır (başta
/değil). -
..izin verilmiyor; üst dizinlere başvuramazsınız.
Gelişmiş özellikler
Özel hiper parametreler
ile yapılandırılmış yapılandırmayı eğitim betiğinize geçirin 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
Bunları betiğinizde okuyun:
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']
İş güvenilirliği
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
İş yükü başarısız olursa iki kez yeniden denenir. Her denemenin tamamlanması 90 dakika olduğundan toplam duvar saati bütçesi 90 × 3 = 270 dakika olur.
Maliyet atfı
aracılığıyla usage_policy_namemevcut bir bütçe ilkesine iş yükü ekleme. İş yükü başlatıldığında ad ilkenin kimliğine çözümlenir. Kurulum için bkz . Sunucusuz kullanım ilkeleriyle öznitelik kullanımı.
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
Çekirdek alanlar
| Alan | Türü | Description | Example |
|---|---|---|---|
experiment_name |
String | MLflow için deneme adı. | "my-training-job" |
environment.dependencies |
liste | Pip bağımlılığı belirtimlerinin satır içi listesi. | ["torch", "transformers"] |
environment.version |
String | Sunucusuz GPU ortamı sürümü. Optional. Varsayılan değer "4"’dır. |
"4" |
compute.num_accelerators |
int | GPU sayısı. |
1, 4, 8 |
compute.accelerator_type |
String | GPU türü. |
"GPU_1xA10", "GPU_8xH100" |
code_source |
dict | Kod kaynağı yapılandırması. | Bkz . Kod kaynaklarıyla çalışma. |
command |
String | Eğitimi başlatmak için Bash komutları. | torchrun --nproc_per_node=8 train.py |
Desteklenen GPU türleri
accelerator_type |
Düğüm başına GPU sayısı | Notlar |
|---|---|---|
GPU_1xA10 |
1 | Tek A10, geliştirme ve küçük iş yükleri için uygundur. |
GPU_1xH100 |
1 | Tek H100. |
GPU_8xH100 |
8 | Dağıtılmış eğitim için tipik olan tam H100 düğümü. |
Hızlandırıcı özellikleri ve önerilen kullanım örnekleri için bkz . Donanım seçenekleri.
İsteğe bağlı alanlar
Ortam yapılandırması
environment:
version: '4'
dependencies:
- torch
- transformers
env_variables:
BATCH_SIZE: '32'
secrets:
HF_TOKEN: 'my_scope/hf_token'
Bağımlılık biçimi, desteklenen yükleme bayrakları ve environment.versioniçin bkz. Python bağımlılıkları.
Özel Docker görüntü yapılandırması
environment:
docker_image:
url: myorg/myrepo:mytag
ve environment.dependenciesile environment.version birbirini dışlar. Kullanmadan önce görüntüsünü ile air register image kaydedin. Bkz. Özel Docker görüntülerini kullanma.
Kod kaynağı yapılandırması
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/
Alan kısıtlamaları:
-
git.branchvegit.commitbirbirini dışlar: blok içindegit:tam olarak bir tane belirtin. -
git.remotegit.branchgerektirir (ilegit.commithiçbir etkisi yoktur). - Bloğu atlarsanız
git:, çalışma ağacı, kaydedilmemiş değişiklikler de dahil olmak üzere düz bir tarball olarak paketlenmiş olur.
Özel parametreler
aracılığıyla HYPERPARAMETERS_PATHiş yüküne geçirilir:
parameters:
model:
name: 'gpt2'
hidden_size: 768
training:
batch_size: 32
MLflow çalıştırma adı
mlflow_run_name: 'experiment-001-baseline'
Yol çözünürlüğü
İş yükü YAML'deki tüm yollar, mutlak yollar olmadığı sürece iş yükü YAML'sine göredir.
Klasör yapısı:
/home/username/my-project/
├── train.yaml
└── scripts/
└── train.py
YAML yapılandırması:
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