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ó bétaverzióban érhető el. A használatához a munkaterület adminisztrátorának be kell kapcsolnia az AI Runtime Beta Features és a Databricks Artifact Registry előnézeteket a munkaterület Előnézetek oldalán.
Az AI Runtime képes egyedi Docker konténer képet futtatni, amelyet az Artifact Registry tárol. Szükség esetén használjon egyéni rendszerképet:
- Rendszerkönyvtárak vagy összetett függőségek, amelyeket nem tudsz telepíteni a(z)
environment.dependencieshasználatával. - A fejlesztés, kutatás és termelés területén reprodukálható környezet.
- Privát, szervezet által jóváhagyott képek, amelyeket a platformod vagy biztonsági csapatod készít.
Prerequisites
- Telepítse vagy frissítse a Databricks CLI 1.19.0 vagy magasabb verziójára. Lásd : A Databricks parancssori felület telepítése vagy frissítése.
- Kérj meg egy munkaterület adminisztrátorát, hogy engedélyezze az AI Runtime Beta Features előzetesét. Az utasításokért lásd: Munkaterületi szintű előnézetek kezelése.
- Állítsd be az Artifact Registry rendszert ugyanabban a munkaterületen, és szerezz engedélyt a képek pusholására és olvasására. Lásd: Ismerkedjen meg az Artifact Registry használatának alapjaival.
- Telepítsd és indítsd el a Dockert a helyi gépeden.
Kép továbbítása az Artifact Registry rendszerbe
Mielőtt egyedi képet használnál AI Runtime-val, tárold az Artifact Registry adatbázisban ugyanabban a munkatérben, ahol a munkaterhelést benyújtod.
Hozz létre vagy válassz ki egy Unity katalógust és sémát a képhez.
Kövesd az Ismerkedés az Artifact Registryvel útmutatót a Docker-hitelesítés konfigurálásához, a szükséges jogosultságok megadásához és a rendszerkép feltöltéséhez.
Jegyezd fel a kép Unity Catalog-nevét a következő formátumban:
<catalog>.<schema>.<image>:<tag>Például:
main.ml.training:v1. Ne vegyük fel a registry hosztnevet a munkaterhelés konfigurációjában.
Tipp
Alternatívaként használhatja a Databricks CLI-ben a databricks air images pushhelper parancsot.
Docker-kép használata workloadban
Adja meg a lemezkép Unity Catalog-nevét a workload YAML-fájljában, a environment.unity_catalog_image alatt:
experiment_name: my-dcs-training
environment:
unity_catalog_image: main.ml.training:v1
compute:
num_accelerators: 1
accelerator_type: GPU_1xA10
command: python /app/train.py
Ez a példa a képen a /app helyről futtatja a train.py elemet. Az alkalmazáskód külön, a lemezkép újraépítése nélküli feltöltéséhez lásd: A feltöltött alkalmazáskód futtatása.
Saját Docker-rendszerkép használata esetén a(z) environment.dependencies és environment.version nem támogatott. A(z) environment.unity_catalog_image bármelyik mezővel való megadása hibát eredményez. Ha további függőségei vannak, telepítse inkább a csomagokat a Dockerfile-ban.
Küldje el a számítási feladatot:
databricks air run -f workload.yaml -p my-databricks-profile
A profilnak hitelesítenie kell ugyanabban a munkaterületen, ahol a képet tárolják.
A tárolóba injektált környezeti változók
Az AI-futtatókörnyezet a következő környezeti változókat injektálja minden tárolóba futásidőben:
-
CODE_SOURCE_PATH: útvonal a feltöltött alkalmazáskódhoz, amikorcode_sourcebe van állítva. -
NUM_NODES: a csomópontok összesített száma. -
LOCAL_WORLD_SIZE: GPU-k csomópontonként. -
WORLD_SIZE: folyamatok összesen száma. -
POD_RANK: aktuális csomópont rang (0-indexelve). Szintén be van szúrva:NODE_RANK. -
LOCAL_ADDR: helyi csomóponti IP (csak többcsomópontos). -
MASTER_ADDR: 0 rangú koordinációs cím (csak több csomópontos megoldás). -
MASTER_PORT: 0-s rangú koordinációs port (csak több csomópont esetén).
Examples
Az alábbi példák bemutatják, hogyan lehet feltöltött alkalmazáskódot és elosztott képzést futtatni egyedi képpel.
Futtatd a feltöltött alkalmazáskódot
A(z) code_source használatával az alkalmazáskódot a rendszerképtől külön töltheted fel. Szerkesztheted és újraküldheted a kódodat anélkül, hogy újraépítenéd a képet. Telepítsd a kód Python- és rendszerfüggőségeit a képbe.
Helyezd a(z) train.py elemet egy helyi src könyvtárba a workload.yaml mellé. A következő konfiguráció feltölti a(z) src elemet, és lefuttatja a(z) train.py elemet az egyéni lemezképben:
experiment_name: my-dcs-uploaded-code
environment:
unity_catalog_image: main.ml.training:v1
compute:
num_accelerators: 1
accelerator_type: GPU_1xA10
code_source:
root_path: ./src
command: |-
cd "$CODE_SOURCE_PATH"
python3 train.py
root_path feloldása a következőhöz viszonyítva történik: workload.yaml. Az AI Runtime a $CODE_SOURCE_PATH értékét a konténerben a feltöltött könyvtár elérési útjára állítja. A kódforrás-beállításokért lásd: code_source.
RDMA-s, többcsomópontú H100
Az AWS p5 példányokon teljes hálózati sávszélességet igénylő, többcsomópontos H100-feladatokhoz az image-et a Databricks base image-ek egyikére alapozza, amelyeken az NCCL és az EFA előre konfigurálva van:
experiment_name: my-dcs-distributed
environment:
unity_catalog_image: main.ml.training:v1
compute:
num_accelerators: 16 # 2 nodes × 8 H100
accelerator_type: GPU_8xH100
command: |-
torchrun \
--nnodes="${NUM_NODES}" \
--nproc_per_node="${LOCAL_WORLD_SIZE}" \
--node_rank="${POD_RANK}" \
--rdzv_endpoint="${MASTER_ADDR}:${MASTER_PORT}" \
/app/train.py
Saját rendszerkép létrehozása
Saját rendszerkép létrehozásakor a Databricks azt javasolja, hogy használjon databricks-ai-runtime készséget egy kódolóügynökkel, vagy induljon ki egy Databricks-alaprendszerképből.
Kódolóügynök használata
Telepítse a databricks-ai-runtime Claude Code jártasságot a Dockerfile részletes útmutatójához, beleértve az alapoktól való építést, a CUDA/NCCL/EFA kompatibilitást, a gyakori problémákat és a build előtti ellenőrzőlistát. Ehhez a képességhez a Databricks CLI 1.0.0-s vagy újabb verziója szükséges.
databricks aitools install --skills databricks-ai-runtime
A Databricks alaprendszerképei
A Databricks a Docker Hubon, a databricksruntime/air címen tesz közzé olyan base image-eket, amelyekben a CUDA, az NCCL és a felhőspecifikus hálózati beállítások (AWS EFA vagy Azure InfiniBand) előre konfigurálva vannak.
| Tag | Variant | CUDA | Használja amikor |
|---|---|---|---|
dcs-base-azure-runtime |
Runtime | 12 | Csak előre elkészített kerekek telepítése |
dcs-base-azure-devel |
Devel | 12 | CUDA-bővítmények összeállítása (szükséges nvcc) |
A következő Dockerfile hozzáadja a PyTorchot egy Databricks alapképhez. Az alapképek a /opt/venv helyen biztosítják a Pythont, amelyet a uv kezel.
uv pip install alapértelmezés szerint ezt a környezetet célozza meg. Más környezet használatához hozzon létre és aktiváljon egy venv-et a(z) uv pip install futtatása előtt.
Ha az image-be szeretnéd foglalni a betanító szkriptedet, helyezd train.py a Dockerfile mellé. A Dockerfile átmásolja azt ide: /app/train.py. Ha a(z) code_source használatával töltöd fel az alkalmazáskódot, hagyd ki a(z) COPY utasítást, és inkább tartsd a(z) train.py elemet a forráskönyvtárban.
FROM databricksruntime/air:dcs-base-azure-runtime
RUN uv pip install --no-cache \
torch==2.6.0 torchvision==0.21.0 torchaudio==2.6.0
RUN uv pip install --no-cache \
transformers==4.45.0 \
accelerate==0.34.0 \
'mlflow>=3.6'
COPY ./train.py /app/train.py
Helyi képet építsd fel:
docker build --platform linux/amd64 -t my-training-image:v1 .
Ezután kövesd a Get start with Artifact Registry menüt, hogy megjelöld és továbbítsd a képet az Artfact Registry be. Az eredményül kapott <catalog>.<schema>.<image>:<tag> nevet environment.unity_catalog_image néven használja a munkaterhelés YAML-fájljában.
Tipp
Alternatívaként használd a Databricks CLI databricks air images push segédparancsát, és kövesd az interaktív promptokat.
Limitations
- A képeket az Artifact Registry adatbázisban kell tárolni abban a munkatérben, ahol beküldöd a munkaterhelést.
- A képméretnek 20 GB alatt kell lennie.
-
WORKDIRfutásidőben nincs figyelembe véve. Használjon abszolút elérési utakat a képbe sütött fájlokhoz. Használjon példáulpython /app/train.py, nepython train.py. - Nem használhatja a(z)
environment.dependenciesvagyenvironment.versionelemet a(z)environment.unity_catalog_imageelemmel. Ha a képen láthatónál több csomagra van szüksége, fel kell vennie őket a Dockerfile-ba.
Troubleshooting
Az Artifact Registryvel kapcsolatos hitelesítési, engedélyezési, rendszerkép-feltöltési vagy rendszerkép-felderítési hibák esetén lásd: Az Artifact Registry hibaelhárítása.
SSL. SSLError függőségek betöltésekor
Az egyéni lemezkép futásidőben OpenSSL-hibával meghiúsulhat, amikor egy függvénytár SSL-kontextust próbál létrehozni, például:
ssl.SSLError: [CRYPTO] unknown error (_ssl.c:3076)
A hiba a hálózati kapcsolatokat megnyitó kódtárak importálása közben jelenik meg, például huggingface_hub, és megakadályozza a betöltésüket.
Ez azért fordul elő, mert az AI Runtime munkaterhelései olyan hasztokon futnak, amelyekben a Federal Information Processing Standards (FIPS) engedélyezett. Ha a rendszerkép titkosítási kódtárai nem FIPS-kompatibilisek, az OpenSSL nem inicializálja FIPS módban, ezért az SSL-környezet létrehozása meghiúsul.
Ajánlott megoldás:
A nagyvállalati, kormányzati, egészségügyi és pénzügyi munkaterhelések gyakran megkövetelik a FIPS 140-2 vagy 140-3 megfelelést a FedRAMP-, CMMC- vagy HIPAA-auditokhoz. Ha a számítási feladatnak FIPS-kompatibilisnek kell maradnia, hozza létre a rendszerképet FIPS-kompatibilis titkosítási kódtárakkal.
Ha a számítási feladat nem igényel FIPS-megfelelőséget, letilthatja a FIPS módot a OPENSSL_FORCE_FIPS_MODE környezeti változó 0beállításával. Ezzel csendben megszegheti a megfelelőségi követelményeket.
A FIPS mód letiltásához ezt a munkaterhelés YAML-fájljában, a(z) env_variables alatt állítsa be:
env_variables:
OPENSSL_FORCE_FIPS_MODE: '0'
Másik lehetőségként állítsa be a változót a Dockerfile-ban, hogy a rendszerképet használó összes számítási feladatra érvényes legyen:
ENV OPENSSL_FORCE_FIPS_MODE=0
Küldje be újra a munkaterhelést, és győződjön meg arról, hogy az SSL-hiba már nem jelenik meg, amikor a függőségek betöltődnek.