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.
Gunakan DAB untuk mendefinisikan beban kerja pelatihan AI Runtime sebagai kode. Simpan dalam kontrol versi, terapkan di berbagai lingkungan, jadwalkan, dan gabungkan dengan tugas lain. Halaman ini membahas alur pelatihan Anda sendiri, di mana ai_runtime_task menjalankan perintah Anda sendiri pada direktori berisi kode di komputasi GPU nirserver.
Tip
- Gunakan Bundel Otomatisasi Deklaratif untuk mendefinisikan beban kerja pelatihan sebagai kode, menerapkannya di berbagai lingkungan, dan menjadwalkannya.
-
ai_runtime_taskmenjalankan perintah Anda sendiri pada direktori kode (bring-your-own-training). - Gabungkan tugas GPU dan CPU dalam pekerjaan multi-tugas.
Ini adalah tugas yang berbeda dengan menjalankan notebook di GPU serverless melalui bundle. Untuk contoh dasar bundle notebook-on-GPU, lihat Penjadwalan dengan Jobs API dan Bundle Otomasi Deklaratif.
Requirements
- Ruang kerja dengan AI Runtime diaktifkan. Lihat Persyaratan.
- Databricks CLI (antarmuka baris perintah) terpasang dan dikonfigurasi untuk mendistribusikan bundel.
Definisikan tugas AI Runtime dalam sebuah bundel
ai_runtime_task menamai sebuah eksperimen, merujuk ke kode pelatihan Anda dengan code_source_path, dan mendeklarasikan satu penerapan: perintah yang akan dijalankan dan GPU tempat perintah tersebut dijalankan. Tambahkan ke tugas dalam bundel Anda:
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 menunjuk ke kode pelatihan yang Anda paketkan, dan command_path adalah skrip yang dijalankan tugas tersebut. Percobaan ulang, batas waktu, dan izin akses diatur pada tugas dan pekerjaan dengan cara yang sama seperti pada pekerjaan Azure Databricks lainnya, sehingga praktik bundle yang sudah ada tetap dapat diterapkan. Untuk cara mengemas dan merujuk kode Anda, lihat Kirim kode pelatihan Anda.
ai_runtime_task Bidang
| Field | Tipe | Deskripsi |
|---|---|---|
experiment |
string | Required. Nama eksperimen MLflow untuk eksekusi tersebut. Lihat Pelacakan eksperimen dan observabilitas. |
code_source_path |
string | Kode pelatihan yang akan dijalankan: file keluaran dari artefak tgz yang dipaketkan, atau jalur /Workspace atau /Volumes ke kode yang sudah diunggah. Lihat Kirim kode pelatihan Anda. |
deployments |
Sequence | Required. Satu deployment yang mendeskripsikan perintah dan sumber daya komputasi untuk menjalankannya. Setiap entri mengandung command_path, compute, dan opsional name. |
deployments[].command_path |
string | Required. Skrip yang dijalankan oleh tugas pada setiap node. |
deployments[].compute.accelerator_type |
string | Required. Tipe GPU, misalnya GPU_1xA10, GPU_1xH100, atau GPU_8xH100. |
deployments[].compute.accelerator_count |
Integer | Required. Jumlah total GPU di semua node—kelipatan dari jumlah per node yang dikodekan dalam accelerator_type. |
deployments[].name |
string | Nama opsional untuk deployment, yang digunakan dalam log dan antarmuka pengguna (UI). |
docker_image_url |
string | Citra Docker kustom opsional untuk menjalankan perintah, bukan lingkungan terkelola. Lihat Menggunakan gambar Docker kustom. |
mlflow_run |
string | Nama tampilan opsional untuk proses MLflow. |
mlflow_experiment_directory |
string | Direktori ruang kerja opsional tempat eksperimen dibuat. Harus dimulai dengan /Workspace. Atur ini saat dijalankan sebagai service principal yang tidak memiliki direktori pengguna default. |
mlflow_artifact_location |
string | Lokasi akar opsional untuk artefak MLflow, misalnya jalur /Volumes/<catalog>/<schema>/<volume>/…. Harus cocok dengan lokasi artefak eksperimen yang sudah ada atau dihilangkan. |
Atur percobaan ulang, batas waktu, izin akses, dan lingkungan (environment_key) pada tugas dan job—bukan di ai_runtime_task. Untuk referensi tugas lengkap, lihat tugas AI Runtime.
Konfigurasikan akselerator perangkat keras
Atur accelerator_type ke GPU yang dibutuhkan beban kerja Anda, dan accelerator_count ke total jumlah GPU. Jumlah tersebut adalah kelipatan dari jumlah GPU per node: 1 untuk GPU_1xA10 dan GPU_1xH100, dan 8 untuk GPU_8xH100. Jumlah yang melebihi ukuran per node membuat tugas dijalankan di beberapa node—misalnya, GPU_8xH100 dengan accelerator_count: 16 dijalankan pada dua node. Untuk panduan memilih akselerator, lihat Opsi perangkat keras.
Note
Untuk eksekusi multi-node, AI Runtime menjalankan perintah Anda pada setiap node dan menetapkan variabel lingkungan standar untuk pelatihan terdistribusi di lingkungan tugas—NUM_NODES, WORLD_SIZE, LOCAL_WORLD_SIZE, MASTER_ADDR, dan MASTER_PORT. Bacalah dari perintah Anda (misalnya, peluncuran torchrun); jangan tetapkan nilainya di bundle.
Atur lingkungan dan ketergantungan
Deklarasikan blok environments pada pekerjaan dan referensikan dari tugas dengan environment_key. AI Runtime menginstal ketergantungan yang tercantum sebelum perintah Anda dijalankan:
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: '6'
dependencies:
- numpy
Untuk lingkungan yang tersedia, lihat Atur lingkungan Anda.
Kirim kode pelatihan Anda
code_source_path memberi tahu tugas di mana kode pelatihan Anda berada. Bentuknya terdiri dari dua bentuk:
-
Artefak yang dikemas
tgz— deklarasikan artefak dan arahkancode_source_pathke file outputnya. Azure Databricks membangun tarball dan mengunggahnya kedatabricks bundle deploy. Inilah cara Anda mengirim kode dari direktori proyek lokal atau revisi Git yang sudah dikomitmenkan. - Jalur akses ruang kerja atau volume — kode yang sudah diunggah, digunakan apa adanya.
Artefak kemasan
Deklarasikan tgz sebuah artefak dan arahkan code_source_path ke file outputnya. Pada databricks bundle deploy, CLI membangun tarball, mengunggahnya, dan tugas mengekstraknya serta menjalankan perintah Anda terhadapnya:
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
Gunakan include untuk mengemas file dari pohon kerja Anda, atau git untuk mengambil snapshot cabang atau commit yang telah dikomit.
Lokasi workspace atau volume
Untuk menggunakan kode yang sudah diunggah, atur code_source_path ke jalur /Workspace/… atau /Volumes/…. Azure Databricks menggunakan path as-is dan tidak mengemas apa pun.
tgz Bidang artefak:
| Field | Deskripsi |
|---|---|
type |
tgz membuat tarball terkompresi gzip dari file sumber, alih-alih menjalankan perintah build. |
path |
Direktori dasar yang akan dikemas.
include Jalur dan nama entri arsip relatif terhadap jalur tersebut. |
include |
Daftar subpath dari path ke paket. Jangan sertakan path saat mengemas semuanya. Mematuhi .gitignore; sync.include dan sync.exclude yang berlaku untuk seluruh bundel tidak berlaku. Alternatif dari perintah build . |
git |
Ambil snapshot ref Git yang sudah di-commit, bukan working tree. Tetapkan git.branch atau git.commit (commit diprioritaskan jika keduanya ditetapkan). Alternatif dari perintah build . |
files[].source |
Jalan tarball yang dibangun. Arahkan code_source_path ke sini. |
Note
AI Runtime mengekstrak kode Anda ke direktori dan mengeksposnya sebagai CODE_SOURCE_PATH variabel lingkungan. Referensikan dari perintah Anda agar jalur relatif terselesaikan, misalnya cd "$CODE_SOURCE_PATH" sebelum menjalankan skrip Anda.
Contoh lengkap
Contoh ini berlatih pada satu GPU A10 dari proyek lokal, tanpa pengaturan CLI sebelumnya selain menginstal dan mengonfigurasi Azure Databricks CLI. Proyek ini memiliki tiga file:
my-training/
├── databricks.yml
├── command.sh
└── src/
└── train.py
command.sh adalah titik masuk yang dinamai oleh command_path. Ini berpindah ke direktori kode hasil ekstraksi dan menjalankan skrip pelatihan:
#!/usr/bin/env bash
set -euo pipefail
cd "$CODE_SOURCE_PATH"
python train.py
databricks.yml menamai bundel, mengemas src/ sebagai tgz artefak, menjalankannya sebagai ai_runtime_task, menginstal numpy di lingkungan tugas, dan mendefinisikan target pengembangan serta produksi:
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: '6'
dependencies:
- numpy
targets:
dev:
mode: development
default: true
prod:
mode: production
Terapkan paket dan jalankan tugas.
databricks bundle deploy membangun dan mengunggah tgz artefak serta membuat pekerjaan; databricks bundle run memulainya:
databricks bundle deploy --target dev
databricks bundle run train --target dev
Bangun alur kerja multi-tugas
ai_runtime_task merupakan tugas dalam job Azure Databricks, sehingga dapat digabungkan dengan bagian lain dari job tersebut. Anda bisa menjalankan langkah persiapan sebelum pelatihan, menggabungkan tugas GPU dan CPU dalam satu pekerjaan, dan menggunakan akselerator berbeda per tugas.
Urutkan tugas dengan depends_on
Gunakan depends_on untuk menjalankan tugas secara berurutan. Pipeline berikut menjalankan notebook persiapan, lalu tugas pelatihan GPU yang hanya dimulai setelah tugas persiapan berhasil:
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
Gabungkan tugas GPU dan CPU
Dalam pipeline di atas, hanya langkah pelatihan yang membutuhkan GPU. Menjaga pekerjaan non-GPU seperti persiapan data dalam tugas terpisah menjaga waktu GPU tetap fokus pada pelatihan.
Note
An ai_runtime_task tidak mendukung nilai tugas pekerjaan Azure Databricks ({{tasks.<task_key>.values.<name>}} atau dbutils.jobs.taskValues). Untuk mengirim data antar langkah, tulislah ke lokasi bersama yang dapat dibaca oleh kedua tugas, seperti volume Unity Catalog atau file workspace, dan referensikan jalur tersebut dari setiap tugas.
Jadwalkan beban kerja
Tambahkan schedule ke tugas untuk menjalankannya secara berkala. Kirimkan jadwal yang dijeda agar penyebaran bundle tidak memulai run dengan sendirinya, lalu batalkan jeda saat Anda siap:
resources:
jobs:
train_pipeline:
schedule:
quartz_cron_expression: '0 0 9 * * ?'
timezone_id: UTC
pause_status: PAUSED
Mendorong dari pengembangan ke produksi
Promosi dari pengembangan ke produksi merupakan fitur standar pada bundle yang diturunkan oleh tugas AI Runtime tanpa perubahan.
Bundel target dan mode
Tentukan target produksi mode: production di samping target pengembangan Anda. Target menentukan tempat bundle diterapkan dan bagaimana nama sumber dayanya ditetapkan:
targets:
dev:
mode: development
default: true
prod:
mode: production
Terapkan dan jalankan
Terapkan dan jalankan bundle ke target menggunakan perintah bundle standar:
databricks bundle deploy --target dev
databricks bundle run train_pipeline --target dev
Langkah berikutnya
- Jalankan dan kelola beban kerja AI Runtime dari command line dengan AI Runtime CLI.
- Lacak latihan dan kelola pos pemeriksaan. Lihat Pelacakan eksperimen dan observabilitas.