Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Important
Tato funkce je v beta verzi. Pro jeho použití musí správce pracovního prostoru povolit náhledy AI Runtime Beta Features a Databricks Artifact Registry přímo ze stránky Preview pracovního prostoru.
AI Runtime může spustit vlastní obraz kontejneru Dockeru uložený v registru artefaktů. Pokud potřebujete, použijte vlastní image:
- Systémové knihovny nebo složité závislosti, které nelze nainstalovat s
environment.dependencies. - Reprodukovatelné prostředí napříč vývojem, výzkumem a produkcí.
- Soukromé, organizací schválené obrázky vytvořené vaší platformou nebo bezpečnostním týmem.
Prerequisites
- Nainstalujte nebo aktualizujte na Databricks CLI verze 1.19.0 nebo novší. Viz Instalaci nebo aktualizaci rozhraní příkazového řádku Databricks.
- Požádejte správce pracovního prostoru, aby povolil náhled AI Runtime Beta Features . Pokyny naleznete v článku Spravovat náhledy na úrovni pracovního prostoru.
- Nastavte si v tom samém pracovním prostoru Artifact Registry a získejte povolení k odesílání a čtení obrázků. Viz Jak začít s registrem artefaktů.
- Nainstalujte a spusťte Docker na svém lokálním počítači.
Přesunout obrázek do Registru artefaktů
Před použitím vlastního obrázku v AI Runtime jej uložte do Artifact Registry ve stejném pracovním prostoru, kde odesíláte pracovní zátěž.
Vytvořte nebo vyberte katalog a schéma Unity Catalog pro tento obrázek.
Postupujte podle Začínáme s Artifact Registry, nakonfigurujte ověřování Dockeru, udělte požadovaná přístupová oprávnění a nahrajte image.
Všimněte si názvu obrázku v katalogu Unity v následujícím formátu:
<catalog>.<schema>.<image>:<tag>Například:
main.ml.training:v1. Nezahrňujte název hostitele registru do konfigurace zátěže.
Tip
Alternativně použijte databricks air images push příkaz helper v Databricks CLI.
Použijte image Dockeru ve workloadu
Zadejte název image v Unity Catalog do souboru YAML úlohy pod environment.unity_catalog_image:
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
Tento příklad se spouští z /app na obrázku pomocí train.py. Pro samostatné nahrání aplikačního kódu bez přestavby obrazu viz Spustit nahraný aplikační kód.
Při použití vlastního obrazu Dockeru nejsou environment.dependencies a environment.version podporovány. Zadání environment.unity_catalog_image do kteréhokoli z obou polí způsobí chybu. Pokud máte další závislosti, nainstalujte balíčky do souboru Dockerfile.
Odešlete úlohu:
databricks air run -f workload.yaml -p my-databricks-profile
Profil se musí autentizovat ve stejném pracovním prostoru, kde je obrázek uložen.
Proměnné prostředí vložené do vašeho kontejneru
AI Runtime za běhu vkládá do každého kontejneru následující proměnné prostředí:
-
CODE_SOURCE_PATH: cesta k nahranému aplikačnímu kódu, kdyžcode_sourceje konfigurován. -
NUM_NODES: celkový počet uzlů. -
LOCAL_WORLD_SIZE: Počet GPU na uzel. -
WORLD_SIZE: celkový počet procesů. -
POD_RANK: aktuální pořadí uzlů (0-indexováno). Injektuje se také jakoNODE_RANK.
Examples
Následující příklad ukazuje, jak spustit nahraný aplikační kód s vlastní imagí.
Spusť nahraný aplikační kód
Použijte code_source k samostatnému nahrání kódu aplikace odděleně od image. Můžete upravovat a znovu odesílat svůj kód bez nutnosti znovu vytvořit obrázek. Nainstalujte Python a systémové závislosti kódu přímo do obrazu.
Umístěte train.py do lokálního adresáře src vedle .workload.yaml Následující konfigurace nahraje src a spustí jeho train.py uvnitř vlastní image:
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 se vyhodnocuje relativně k workload.yaml. AI Runtime nastavuje $CODE_SOURCE_PATH cestu nahraného adresáře v kontejneru. Viz code_source pro možnosti zdroje kódu.
Vytvoření vlastní image
Při vytváření vlastní image Databricks doporučuje používat funkci databricks-ai-runtime skill s kódovacím agentem nebo vyjít ze základní image Databricks.
Použití programovacího agenta
Nainstalujte dovednost Claude Code pro databricks-ai-runtime, která poskytuje podrobné pokyny pro Dockerfile krok za krokem, včetně sestavení od nuly, kompatibility CUDA/NCCL/EFA, běžných problémů a kontrolního seznamu před sestavením. Tato dovednost vyžaduje Rozhraní příkazového řádku Databricks verze 1.0.0 nebo novější.
databricks aitools install --skills databricks-ai-runtime
Základní image Databricks
Databricks zveřejňuje základní obrazy na Docker Hubu na adrese databricksruntime/air, s předem nakonfigurovanými technologiemi CUDA a NCCL a cloudově specifickým síťovým nastavením (AWS EFA nebo Azure InfiniBand).
| Tag | Variant | CUDA | Použít, když |
|---|---|---|---|
dcs-base-azure-runtime |
Runtime | 12 | Instalace pouze předdefinovaných kol |
dcs-base-azure-devel |
Devel | 12 | Kompilace rozšíření CUDA (vyžaduje nvcc) |
Následující Dockerfile přidává PyTorch k základnímu obrazu Databricks. Základní image poskytují Python ve /opt/venvsprávě uv.
uv pip install Cílí na toto prostředí jako výchozí cíl. Pro použití jiného prostředí vytvořte a aktivujte venv před spuštěním uv pip install.
Chcete-li do obrázku zahrnout svůj tréninkový skript, umístěte train.py ho vedle Dockerfile. Dockerfile ho zkopíruje do /app/train.py. Pokud nahrajete aplikační kód s code_source, vynechte instrukci COPY a ponechte train.py ve svém zdrojovém adresáři.
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
Vytvořte obraz lokálně:
docker build --platform linux/amd64 -t my-training-image:v1 .
Poté postupujte Začněte s Registrem artefaktů , označte a přesunete obrázek do Registru artefaktů. Použijte výsledný název <catalog>.<schema>.<image>:<tag> jako environment.unity_catalog_image v souboru YAML úlohy.
Tip
Alternativně použijte databricks air images push příkaz helper v Databricks CLI a postupujte podle interaktivních pokynů.
Limitations
- Obrázky musí být uloženy v registru artefaktů v pracovním prostoru, kde odesíláte pracovní zátěž.
- Velikost obrázku musí být pod 20 GB.
-
WORKDIRnení dodrženo za běhu. Pro soubory upečené do obrázku použijte absolutní cesty. Například použijtepython /app/train.py, nikolipython train.py. - Nelze použít
environment.dependenciesanienvironment.versionsenvironment.unity_catalog_image. Pokud potřebujete další balíčky, které nejsou součástí obrazu, musíte je přidat do souboru Dockerfile.
Troubleshooting
Informace o řešení chyb souvisejících s autentizací, oprávněními, nahráváním imagí nebo zjišťováním imagí v registru najdete v části Troubleshoot Artifact Registry.
ssl. SSLError při načítání závislostí
Vlastní image může selhat za běhu s chybou OpenSSL, když se knihovna pokusí vytvořit kontext SSL, například:
ssl.SSLError: [CRYPTO] unknown error (_ssl.c:3076)
Při importu knihoven, které otevírají síťová připojení, například huggingface_hub, se zobrazí chyba, která brání jejich načtení.
K tomu dochází, protože úlohy běhového prostředí AI běží na hostitelích se zapnutým režimem Federal Information Processing Standards (FIPS). Pokud kryptografické knihovny obrázku nevyhovují standardu FIPS, openSSL se nepodaří inicializovat v režimu FIPS, takže vytvoření kontextu SSL selže.
Doporučené řešení:
Úlohy enterprise, government, healthcare a finance často závisí na dodržování předpisů FIPS 140-2 nebo 140-3 pro audity FedRAMP, CMMC nebo HIPAA. Pokud vaše úloha musí zůstat kompatibilní se standardem FIPS, sestavte image s kryptografickými knihovnami kompatibilními se standardem FIPS.
Pokud vaše pracovní zátěž nevyžaduje soulad se standardem FIPS, můžete režim FIPS zakázat nastavením proměnné prostředí OPENSSL_FORCE_FIPS_MODE na hodnotu 0. To může nepozorovaně narušit soulad s požadavky na dodržování předpisů.
Pokud chcete zakázat režim FIPS, nastavte ho v YAML úlohy v části env_variables:
env_variables:
OPENSSL_FORCE_FIPS_MODE: '0'
Případně nastavte proměnnou v souboru Dockerfile tak, aby platila pro každou úlohu, která používá image:
ENV OPENSSL_FORCE_FIPS_MODE=0
Znovu odešlete úlohu a ověřte, že se chyba SSL už nezobrazí, když se načtou závislosti.