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.
DAB'ları kullanarak bir AI Çalışma Zamanı eğitim iş yükünü kod olarak tanımlayın. Onu kaynak kontrolünde tutun, ortamlar arasında dağıtın, zamanlayın ve diğer görevlerle birlikte oluşturun. Bu sayfa, ai_runtime_task öğesinin sunucusuz GPU işlem altyapısında bir kod dizini üzerinde kendi komutunuzu çalıştırdığı kendi eğitimini kullanma yaklaşımını kapsar.
Bu, bir notebook'u sunucusuz GPU üzerinden bir paket üzerinden çalıştırmaktan farklı bir görevdir. Temel notebook-on-GPU bundle örneği için Jobs API ve Declarative Automation Bundles bölümlerine bakınız.
Requirements
- AI Runtime’ın etkinleştirildiği bir çalışma alanı. Bkz . Gereksinimler.
- Databricks CLI (komut satırı arayüzü) paketleri dağıtmak için kuruldu ve yapılandırıldı.
Bir pakette AI Runtime görevi tanımlayın
Bir ai_runtime_task bir deneyi adlandırır, code_source_path ile eğitim kodunuzu işaret eder ve bir dağıtım tanımlar: çalıştırılacak komutu ve bunun üzerinde çalışacağı GPU’yu. Bunu paketinizdeki bir işe ekleyin:
resources:
jobs:
train:
tasks:
- task_key: train
ai_runtime_task:
experiment: my-experiment
code_source_path: ./dist/code.tgz
deployments:
- command_path: ./command.sh
compute:
accelerator_type: GPU_1xA10
accelerator_count: 1
code_source_path paketlenmiş eğitim kodunuza işaret eder ve command_path görevin çalıştırdığı script nedir. Yeniden denemeler, zaman aşımları ve izinler, diğer Azure Databricks işlerinde olduğu gibi görev ve iş için aynı şekilde ayarlanır; dolayısıyla mevcut bundle uygulamalarınız da geçerliliğini korur. Kodunuzu nasıl paketleyip referans vereceğiniz için Eğitim kodunuzu gönderin bkz.
ai_runtime_task Alanları
| Veri Alanı | Türü | Description |
|---|---|---|
experiment |
Dize | Required. Çalışmanın MLflow deney adı. Bkz. Deney takibi ve gözlemlenebilirlik. |
code_source_path |
Dize | Çalıştırılacak eğitim kodu: paketlenmiş bir tgz artefaktının çıktı dosyası veya önceden yüklenmiş koda giden bir /Workspace ya da /Volumes yolu.
Eğitim kodunuzu dağıtma bölümüne bakın. |
deployments |
Sequence | Required. Komutu ve çalıştırılacak hesaplamayı tanımlayan tek bir dağıtım. Her girdi command_path, compute ve isteğe bağlı bir name içerir. |
deployments[].command_path |
Dize | Required. Görevin her düğümde çalıştırdığı script. |
deployments[].compute.accelerator_type |
Dize | Required. GPU türü, örneğin GPU_1xA10, GPU_1xH100, veya GPU_8xH100. |
deployments[].compute.accelerator_count |
Tamsayı | Required. Tüm düğümlerdeki toplam GPU sayısı—accelerator_type içinde kodlanan düğüm başına sayının bir katı. |
deployments[].name |
Dize | Dağıtım için isteğe bağlı bir isim, loglarda ve kullanıcı arayüzünde kullanılır. |
docker_image_url |
Dize | Komutu çalıştırmak için isteğe bağlı özel bir Docker görüntüsü, yönetilen ortam yerine. Bkz. Özel Docker görüntülerini kullanma. |
mlflow_run |
Dize | MLflow çalıştırması için isteğe bağlı bir gösterim adı. |
mlflow_experiment_directory |
Dize | Deneyin oluşturulduğu isteğe bağlı bir çalışma alanı dizini. ile /Workspacebaşlamalıdır. Bunu, varsayılan kullanıcı dizini olmayan bir servis yöneticisi olarak çalışırken ayarlayın. |
mlflow_artifact_location |
Dize | MLflow artefaktları için isteğe bağlı bir kök konum; örneğin bir /Volumes/<catalog>/<schema>/<volume>/… yolu. Mevcut bir deneyin eser konumuyla eşleşmeli ya da çıkarılmalı. |
Yeniden deneme ayarlarını, zaman aşımlarını, izinleri ve ortamı (environment_key), ai_runtime_task içinde değil, görevde ve işte ayarlayın. Tam görev referansı için bkz. AI Çalışma Zamanı görevi.
Donanım hızlandırıcısını yapılandırma
accelerator_count değerini iş yükünüzün ihtiyaç duyduğu GPU sayısına, accelerator_type değerini ise toplam GPU sayısına ayarlayın. Sayı, düğüm başına GPU sayısının katıdır: 1 ve GPU_1xH100için GPU_1xA10 , ve 8 için GPU_8xH100. Düğüm başına boyuttan büyük bir sayı, görevi birden fazla düğümde çalıştırır; örneğin, GPU_8xH100 ile accelerator_count: 16 iki düğümde çalışır. Hızlandırıcı seçimi için rehberlik için Donanım seçenekleri'ne bakınız.
Note
Çok düğümlü çalışmalar için, AI Çalışma Zamanı komutunuzu her düğümde çalıştırır ve görev ortamındaki standart dağıtık eğitim ortamı değişkenlerini doldurur—NUM_NODES, WORLD_SIZE, MASTER_ADDRLOCAL_WORLD_SIZE, , ve MASTER_PORT. Bunları komutunuz aracılığıyla okuyun (örneğin, bir torchrun başlatma sırasında); bunları paket içinde ayarlamazsınız.
Ortamı ve bağımlılıkları belirleyin
Job üzerinde bir environments bloğu tanımlayın ve buna görevden environment_key ile başvurun. AI Runtime, komutunuz çalışmadan önce listelenen bağımlılıkları yükler:
resources:
jobs:
train:
tasks:
- task_key: train
environment_key: default
ai_runtime_task:
# experiment, code_source_path, and deployments as above
environments:
- environment_key: default
spec:
environment_version: '5'
dependencies:
- numpy
Mevcut ortamlar için bkz. Ortamınızı kur.
Eğitim kodunuzu gönderin
code_source_path, göreve eğitim kodunuzun nerede olduğunu söyler. İki biçimden birini alır:
-
Paketlenmiş bir
tgzartefakt — bir artefakt tanımlayın vecode_source_pathöğesini çıktı dosyasına yönlendirin. Azure Databricks tarball'u oluşturur vedatabricks bundle deployüzerine yükler. Bu, yerel bir proje dizininden veya bağlı bir Git revizyonundan kod gönderme şeklidir. - Bir çalışma alanı veya birim yolu — zaten yüklenmiş, olduğu gibi kullanılan kod.
Paketlenmiş eser
Bir tgz yapısı tanımlayın ve code_source_path öğesini onun çıktı dosyasına yönlendirin.
databricks bundle deploy üzerinde CLI, tarball’u oluşturur, yükler ve görev bunu arşivden çıkararak komutunuzu bunun üzerinde çalıştırır:
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
Çalışma ağacınızdaki dosyaları paketlemek için git veya commit’lenmiş bir dalın ya da bir commit’in anlık görüntüsünü almak için include kullanın.
Çalışma alanı veya hacim yolu
Zaten yüklenmiş olan kodu kullanmak için /Workspace/… değerini /Volumes/… veya code_source_path yolu olarak ayarlayın. Azure Databricks as-is yolu kullanıyor ve hiçbir şey paketlemiyor.
tgz artefakt alanları:
| Veri Alanı | Description |
|---|---|
type |
tgz, build komutunu çalıştırmak yerine kaynak dosyalardan gzip sıkıştırılmış bir tar arşivi oluşturur. |
path |
Paketlenecek temel dizin.
include yollar ve arşivin giriş adları ona bağlıdır. |
include |
Paketlenecek path alt yollarının listesi.
path öğesinin tamamını paketlemeyi atlayın.
.gitignore geçerlidir; paket genelindeki sync.include ve sync.exclude geçerli değildir.
build komutuna alternatif. |
git |
Çalışma ağacı yerine commit edilmiş bir Git referansının anlık görüntüsünü alın.
git.branch veya git.commit ayarlayın (commit, ikisi de ayarlanmışsa geçerli olur). Bir build komutuna alternatif. |
files[].source |
Inşa edilmiş tarballun yolu. Buna işaret code_source_path et. |
Note
AI Çalışma Zamanı, kodunuzu bir dizine çıkarır ve ortam değişkeni CODE_SOURCE_PATH olarak açıklar. Komutunuzdan referans verin, böylece göreceli yollar çözülsün, örneğin cd "$CODE_SOURCE_PATH" scriptinizi çalıştırmadan önce.
Tam örnek
Bu örnek, yerel bir projeden tek bir A10 GPU üzerinde eğitim veriyor ve Azure Databricks CLI'nin kurulumu ve yapılandırması dışında önceden bir CLI kurulumu yok. Projenin üç dosyası vardır:
my-training/
├── databricks.yml
├── command.sh
└── src/
└── train.py
command_path tarafından adlandırılan giriş noktası command.sh’dır. Çıkarılmış kod dizinine geçer ve eğitim betikini çalıştırır:
#!/usr/bin/env bash
set -euo pipefail
cd "$CODE_SOURCE_PATH"
python train.py
databricks.yml, paketi adlandırır, tgz’i bir src/ yapıtı olarak paketler, onu bir ai_runtime_task olarak çalıştırır, numpy’ü görev ortamına kurar ve geliştirme ile üretim hedeflerini tanımlar:
bundle:
name: my-training
artifacts:
code:
type: tgz
path: .
include: [src]
files:
- source: ./dist/code.tgz
resources:
jobs:
train:
name: my-training
tasks:
- task_key: train
environment_key: default
ai_runtime_task:
experiment: /Users/me@example.com/my-training
code_source_path: ./dist/code.tgz
deployments:
- command_path: ./command.sh
compute:
accelerator_type: GPU_1xA10
accelerator_count: 1
environments:
- environment_key: default
spec:
environment_version: '5'
dependencies:
- numpy
targets:
dev:
mode: development
default: true
prod:
mode: production
Paketi dağıtın ve görevi çalıştırın.
databricks bundle deploy, tgz artefaktını derleyip yükler ve işi oluşturur; databricks bundle run onu başlatır:
databricks bundle deploy --target dev
databricks bundle run train --target dev
Çok görevli iş akışları oluşturun
Bir ai_runtime_task, Azure Databricks iş görevidir; bu nedenle işin geri kalanıyla bir araya getirilebilir. Eğitimden önce bir hazırlık adımı çalıştırabilir, GPU ve CPU görevlerini tek bir işte birleştirebilir ve her görev için farklı hızlandırıcılar kullanabilirsiniz.
Görevleri depends_on ile sıralayın
Görevleri sırayla çalıştırmak için kullanılır depends_on . Aşağıdaki boru hattı, bir hazırlık not defterini çalıştırır; ardından, yalnızca hazırlık görevi başarıyla tamamlandıktan sonra başlayan bir GPU eğitimi görevi çalıştırır:
resources:
jobs:
train_pipeline:
tasks:
- task_key: prep
notebook_task:
notebook_path: ./prep.py
- task_key: train
depends_on:
- task_key: prep
ai_runtime_task:
experiment: my-experiment
code_source_path: ./dist/code.tgz
deployments:
- command_path: ./command.sh
compute:
accelerator_type: GPU_1xA10
accelerator_count: 1
GPU ve CPU görevlerini birleştirin
Yukarıdaki pipeline'da sadece eğitim aşaması GPU gerektirir. GPU dışı çalışmaları, örneğin veri hazırlama gibi görevleri ayrı görevlerde tutmak, GPU'nun zamanını eğitime odaklı tutar.
Note
An ai_runtime_task Azure Databricks iş görev değerlerini ({{tasks.<task_key>.values.<name>}} veya dbutils.jobs.taskValues) desteklemez. Adımlar arasında veri aktarmak için, her iki görevin de okuyabileceği paylaşılan bir konuma, örneğin Unity Kataloğu hacmi veya çalışma alanı dosyasına yazın ve her görevden o yola referans verin.
İş yükünü planlayın
Görevi belirli aralıklarla çalıştırmak için ona bir schedule ekleyin. Zamanlamayı, paketi dağıttığınızda çalıştırmaları kendiliğinden başlatmayacak şekilde duraklatılmış olarak yayımlayın; ardından hazır olduğunuzda duraklatmayı kaldırın:
resources:
jobs:
train_pipeline:
schedule:
quartz_cron_expression: '0 0 9 * * ?'
timezone_id: UTC
pause_status: PAUSED
Geliştirmeden üretime terfi
Geliştirmeden üretime terfi, yapay zeka Çalışma Zamanı görevinin değişmeden devraldığı standart bir paket özelliğidir.
Paket hedefleri ve modları
Geliştirme hedefinizin yanı sıra mode: production bir üretim hedefi tanımlayın. Hedef, paketin nerede konuşlandığını ve kaynaklarının nasıl adlandırıldığını kontrol eder:
targets:
dev:
mode: development
default: true
prod:
mode: production
Dağıt ve çalıştır
Paketi bir hedefe karşı standart paket komutlarıyla dağıtın ve çalıştırın:
databricks bundle deploy --target dev
databricks bundle run train_pipeline --target dev
Sonraki Adımlar
- AI Runtime iş yüklerini komut satırından AI Runtime CLI'si ile çalıştırın ve yönetin.
- Antrenman koşularını takip edin ve kontrol noktalarını yönetin. Bkz. Deney takibi ve gözlemlenebilirlik.