Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Important
Ez a funkció nyilvános előzetes verzióban van.
Használja a DAB-eket egy AI Runtime tanítási munkaterhelés kódként való meghatározásához. Tartsd verziókezelőben, telepítsd több környezetbe, ütemezd, és kombináld más feladatokkal. Ez az oldal a saját betanítási útvonalat ismerteti, amelyben a(z) ai_runtime_task a saját parancsodat futtatja egy kódokat tartalmazó könyvtáron, szerver nélküli GPU-s számítási környezetben.
Ez más feladat, mint egy notebookot szerver nélküli GPU-n futtatni egy csomagon keresztül. Az alapvető notebook-on-GPU bundle példáért lásd: Jobs API és Declarative Automation Bundles.
Requirements
- Egy munkaterület, ahol AI Runtime engedélyezve. Lásd: Követelmények.
- A Databricks CLI (parancssori interfész) telepítve és konfigurálva csomagok telepítésére.
Definiáljunk egy AI Runtime feladatot egy csomagban
A ai_runtime_task elnevez egy kísérletet, a code_source_path segítségével a betanítási kódra mutat, és meghatároz egy üzembe helyezést: a futtatandó parancsot és a GPU-t, amelyen fut. Add hozzá a csomagodban lévő feladathoz:
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 a csomagolt betanítási kódra mutat, command_path pedig a feladat által futtatott szkript. Az újrapróbálkozások, az időkorlátok és a jogosultságok ugyanúgy állíthatók be a feladaton és a munkán, mint bármely más Azure Databricks-munka esetében, így a meglévő bundle-gyakorlataid itt is alkalmazhatók. A kódod csomagolásáról és hivatkozásáról lásd: Ship your training code.
ai_runtime_task Mezők
| Field | Típus | Description |
|---|---|---|
experiment |
Lánc | Required. Az MLflow kísérlet neve a futásnak. Lásd : Kísérleti követés és megfigyelhetőség. |
code_source_path |
Lánc | A futtatandó betanítási kód: egy becsomagolt tgz-összetevő kimeneti fájlja, vagy a már feltöltött kód /Workspace- vagy /Volumes-elérési útja. Lásd: A betanítási kód szállítása. |
deployments |
Sequence | Required. Egyetlen telepítés, amely leírja a parancsot és a futtatandó számítást. Minden bejegyzés tartalmaz command_path, compute, és egy opcionális name. |
deployments[].command_path |
Lánc | Required. A küldetés minden csomópontján futó szkript. |
deployments[].compute.accelerator_type |
Lánc | Required. A GPU típusa, például GPU_1xA10, GPU_1xH100, vagy GPU_8xH100. |
deployments[].compute.accelerator_count |
Egész szám | Required. Az összes csomóponton lévő GPU-k teljes száma — a(z) accelerator_type elemben kódolt csomópontonkénti darabszám többszöröse. |
deployments[].name |
Lánc | Opcionális név a telepítésre, amelyet a naplókban és a UI-ban használnak. |
docker_image_url |
Lánc | Egy opcionális egyedi Docker kép, amelyben a parancsot futtathatod, nem pedig a kezelt környezetben. Lásd: Egyéni Docker-rendszerképek használata. |
mlflow_run |
Lánc | Az MLflow futamhoz opcionális megjelenítési név. |
mlflow_experiment_directory |
Lánc | Egy opcionális munkaterület-könyvtár, amely alatt a kísérlet jön létre. Ezzel kell kezdődnie: /Workspace. Ezt akkor állítsd be, amikor szolgáltatásfőként futsz, amelynek nincs alapértelmezett felhasználói könyvtára. |
mlflow_artifact_location |
Lánc | Az MLflow-artefaktumok opcionális gyökérhelye, például egy /Volumes/<catalog>/<schema>/<volume>/… elérési út. Meg kell egyeznie egy meglévő kísérlet műtárgy helyével, különben ki kell hagyni. |
Állítsd be az újrapróbálkozásokat, az időkorlátokat, a jogosultságokat és a környezetet (environment_key) a feladaton és a munkán — ne a ai_runtime_task belül. A teljes feladat referencia érdekében lásd: AI Runtime feladat.
Konfiguráld a hardveres gyorsítót
Állítsd accelerator_type be a GPU-t, amire a terhelésed szükséges, és accelerator_count a GPU-k teljes számát. A darabszám a csomópontonkénti GPU-k számának többszöröse: 1 a(z) GPU_1xH100 és GPU_1xA10 esetén, valamint 8 a(z) GPU_8xH100 esetén. Egy csomópontonkénti méretnél nagyobb szám több csomóponton futtatja le a feladatot – például GPU_8xH100accelerator_count: 16 két csomóponton fut. A gyorsító kiválasztásához vonatkozó útmutatásért lásd a Hardver opciókat.
Note
Többcsomópontos futtatások esetén az AI Runtime minden csomóponton futtatja a parancsodat, és feltölti a szabványos elosztott képzési környezeti változókat a feladatkörnyezetben—NUM_NODES, WORLD_SIZE, MASTER_ADDRLOCAL_WORLD_SIZE, és MASTER_PORT. Ezeket a parancsból olvassa ki (például egy torchrun indításból); nem a csomagban állítja be őket.
Állítsuk be a környezetet és a függőségeket
Definiálj egy environments blokkot a jobon, és hivatkozz rá a feladatból a environment_key használatával. Az AI Runtime telepíti a felsorolt függőségeket, mielőtt a parancsod elindulna:
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
Az elérhető környezetekről lásd a A környezet beállítása című részt.
Küldd el a kiképzési kódodat
code_source_path Megmondja a feladatnak, hol van a képzési kódod. Két formában létezik:
-
Csomagolt
tgzartefaktum — deklaráljon egy artefaktumot, és irányítsacode_source_patha kimeneti fájljára. Az Azure Databricks létrehozza a tar-archívumot, és feltölti a(z)databricks bundle deployhelyre. Így küldheted a kódot egy helyi projektkönyvtárból vagy egy elkötelezett Git revizionból. - Egy munkaterület vagy kötet elérési útja — már feltöltött kód, amelyet változtatás nélkül használnak.
Csomagolt tárgy
Deklarálj egy tgz artifaktumot, és irányítsd code_source_path a kimeneti fájljára. A -kor databricks bundle deploya CLI megépíti a tarballt, feltölti, és a feladat kinyeri, majd a parancsodat futtatja ellene:
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
Használd a(z) include parancsot a fájlok csomagolásához a munkakönyvtárból, vagy a(z) git parancsot egy véglegesített ágról vagy kommitról való pillanatkép készítéséhez.
Munkaterület vagy térfogat út
A már feltöltött kód használatához állítsa a(z) code_source_path értékét egy /Workspace/… vagy /Volumes/… elérési útra. Azure Databricks használja az as-is útvonalat, és semmit sem csomagol.
A(z) tgz összetevő mezői:
| Field | Description |
|---|---|
type |
tgz gzip-pel tömörített tar archívumot készít a forrásfájlokból a build parancs futtatása helyett. |
path |
A csomagolandó alapkönyvtár.
include az elérési utak és az archívum bejegyzéseinek nevei ehhez viszonyítva relatívak. |
include |
A csomagolandó path részútvonalainak listája. Hagyd ki az összes path csomagolását. Figyelembe veszi a .gitignore elemet; a teljes csomagra vonatkozó sync.include és sync.exclude nem alkalmazható. Alternatíva a build parancs helyett. |
git |
Készítsen pillanatképet egy commitolt Git-hivatkozásról a munkafa helyett. A szett git.branch vagy git.commit (commit nyer, ha mindkettő be van állítva). Alternatíva a build parancs helyett. |
files[].source |
Az épített tarball ösvénye. Erre mutass code_source_path . |
Note
Az AI Runtime kihúzza a kódodat egy könyvtárba, és környezeti változóként teszi ki CODE_SOURCE_PATH . Hivatkozz rá a parancsodból, hogy a relatív utak megoldódjanak, például cd "$CODE_SOURCE_PATH" a szkript futtatása előtt.
Teljes példa
Ez a példa egy helyi projektből indulva egyetlen A10 GPU-n tréningez, az Azure Databricks CLI telepítésén és konfigurálásán kívül nem igényel előzetes CLI-beállítást. A projektnek három fájlja van:
my-training/
├── databricks.yml
├── command.sh
└── src/
└── train.py
A command.sh a command_path által megadott belépési pont. Átalakul a kibontott kódkönyvtárba, és elindítja a képzési szkriptet:
#!/usr/bin/env bash
set -euo pipefail
cd "$CODE_SOURCE_PATH"
python train.py
databricks.yml elnevezi a csomagot, a(z) src/ elemet tgz-artefaktumként csomagolja, azt ai_runtime_task-ként futtatja, telepíti a(z) numpy elemet a feladatkörnyezetben, és meghatározza a fejlesztési és produkciós célokat:
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
Telepítsd a csomagot és futtasd a feladatot.
databricks bundle deploy felépíti és feltölti az tgz erektét, és létrehozza a feladatot; databricks bundle run elindítja:
databricks bundle deploy --target dev
databricks bundle run train --target dev
Több feladatos munkafolyamatok építése
A(z) ai_runtime_task egy Azure Databricks-feladat, így a feladat többi részével együtt alkot egészet. A képzés előtt futtathatsz egy előkészítő lépést, kombinálhatod a GPU és CPU feladatokat egy munkában, és különböző gyorsítókat használhatsz feladatonként.
Feladatok rendezése depends_on szerint
A feladatok egymás utáni futtatásához használja a depends_on elemet. A következő csővezeték egy előkészítő jegyzetfüzetet, majd egy GPU kiképzési feladatot futtat, amely csak a felkészülési feladat sikeres sikere után indul:
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 és CPU feladatok kombinálása
A fenti pipeline-ban csak a képzési lépéshez kell GPU. Ha nem GPU-s feladatokat, például az adat-előkészítést külön feladatokban tartjuk, a GPU ideje a képzésre fókuszál.
Note
An ai_runtime_task nem támogatja az Azure Databricks munkafeladat értékeit ({{tasks.<task_key>.values.<name>}} vagy dbutils.jobs.taskValues). Az adatok átadásához a lépések között írjuk azokat egy közös helyre, ahol mindkét feladat olvasható, például egy Unity Catalog kötetre vagy egy munkaterületi fájlra, és hivatkozz arra az útra minden feladatból.
Ütemezze a munkaterhelést
Adj a feladathoz egy schedule elemet, hogy ütemezetten fusson. Telepítsd az ütemezést szüneteltetett állapotban, hogy a csomag telepítése ne indítson el futásokat automatikusan, majd oldd fel a szüneteltetést, amikor készen állsz:
resources:
jobs:
train_pipeline:
schedule:
quartz_cron_expression: '0 0 9 * * ?'
timezone_id: UTC
pause_status: PAUSED
Fejlesztéstől gyártásig való előrelépés
A fejlesztéstől a gyártásig való előléptetés egy szabványos csomagfunkció, amelyet az AI Runtime feladat változatlanul örököl.
Csomag célpontok és módok
Határozz meg egy produkciós célt a fejlesztési cél mellé mode: production. A célpont szabályozza, hol telepítik a csomagot, és hogyan nevezik el az erőforrásokat:
targets:
dev:
mode: development
default: true
prod:
mode: production
Üzembe helyezés és futtatás
Telepítsd és futtasd a csomagot egy célpont ellen a szabványos csomag parancsokkal:
databricks bundle deploy --target dev
databricks bundle run train_pipeline --target dev
Következő lépések
- Futtatd és kezeld az AI Runtime munkaterhelést a parancssorból az AI Runtime CLI-vel.
- Kövesd az edzésmeneteket és kezeld az ellenőrzőpontokat. Lásd : Kísérleti követés és megfigyelhetőség.