Serverlös GPU-beräkning

Viktigt!

Den här funktionen finns i Beta.

Den här artikeln beskriver serverlös GPU-beräkning på Databricks och innehåller rekommenderade användningsfall, vägledning för hur du konfigurerar GPU-beräkningsresurser och funktionsbegränsningar.

Vad är serverlös GPU-beräkning?

Serverlös GPU-beräkning är en del av det serverlösa beräkningserbjudandet. Serverlös GPU-beräkning är specialiserad för anpassade djupinlärningsarbetsbelastningar och djupinlärningsarbetsbelastningar med flera noder. Du kan använda serverlös GPU-beräkning för att träna och finjustera anpassade modeller med hjälp av dina favoritramverk och få toppmodern effektivitet, prestanda och kvalitet.

Serverlös GPU-beräkning innehåller:

  • En integrerad upplevelse i Notebooks, Unity Catalog och MLflow: Du kan utveckla koden interaktivt med notebook-filer.
  • A10 GPU-acceleratorer:A10 GPU:er är utformade för att påskynda små till medelstora maskininlärnings- och djupinlärningsarbetsbelastningar, inklusive klassiska ML-modeller och finjustera mindre språkmodeller. A10s passar bra för uppgifter med måttliga beräkningskrav.
  • Stöd för flera GPU:ar och flera noder: Du kan köra distribuerade träningsarbetsbelastningar flera GPU:er och flera noder med hjälp av Serverlös GPU Python API. Se Distribuerad träning.

De förinstallerade paketen på serverlös GPU-beräkning ersätter inte Databricks Runtime ML. Även om det finns vanliga paket återspeglas inte alla Databricks Runtime ML-beroenden och bibliotek i den serverlösa GPU-beräkningsmiljön.

Python-miljöer på serverlös GPU-beräkning

Databricks tillhandahåller två hanterade miljöer för olika användningsfall.

Anmärkning

Anpassade basmiljöer stöds inte för serverlös GPU-beräkning. Använd i stället standardmiljön eller AI-miljön och ange ytterligare beroenden direkt i panelen miljösidan eller pip install dem.

Standardbasmiljö

Detta ger en minimal miljö med stabilt klient-API för att säkerställa programkompatibilitet. Endast nödvändiga Python-paket installeras. Detta gör att Databricks kan uppgradera servern oberoende av varandra och leverera prestandaförbättringar, säkerhetsförbättringar och felkorrigeringar utan att kräva några kodändringar i arbetsbelastningar. Välj den här miljön om du vill anpassa miljön helt för träningen.

Mer information finns i viktig information:

AI-miljö

Databricks AI-miljön är tillgänglig i en serverlös GPU-miljö 4. AI-miljön bygger på standardmiljön med vanliga körningspaket och paket som är specifika för maskininlärning på GPU:er. Den innehåller populära maskininlärningsbibliotek, inklusive PyTorch, langchain, transformatorer, ray och XGBoost för modellträning och slutsatsdragningar. Välj den här miljön om du ska köra arbetsbelastningar för träning.

Mer information finns i viktig information:

Databricks rekommenderar serverlös GPU-beräkning för alla modellträningsanvändningsfall som kräver träningsanpassningar och GPU:er.

Till exempel:

  • LLM-finjustering
  • Datorseende
  • Rekommenderade system
  • Kunskapsförmedling
  • Prognostisering av djupinlärningsbaserade tidsserier

Kravspecifikation

  • En arbetsyta i någon av följande Azure-regioner:
    • eastus
    • eastus2
    • centralus
    • northcentralus
    • westcentralus
    • westus

Konfigurera serverlös GPU-beräkning

Så här ansluter du notebook-filen till serverlös GPU-beräkning och konfigurerar miljön:

  1. I en notebook-fil klickar du på den nedrullningsbara menyn Anslut längst upp och väljer Serverlös GPU.
  2. Klicka på miljöikonen. Om du vill öppna panelen miljösidan.
  3. Välj A10 i fältet Accelerator .
  4. Välj Ingen för standardmiljön eller AI v4 för AI-miljön från fältet Basmiljö .
  5. Om du väljer Ingen i fältet Basmiljö väljer du miljöversionen.
  6. Klicka på Användoch bekräfta sedan att du vill tillämpa den serverlösa GPU-beräkningen i notebook-miljön.

Anmärkning

Anslutningen till din beräkning avslutas automatiskt efter 60 minuters inaktivitet.

Lägga till bibliotek i miljön

Du kan installera ytterligare bibliotek i den serverlösa GPU-beräkningsmiljön. Se Lägga till beroenden i notebook-filen.

Anmärkning

Att lägga till beroenden med hjälp av panelen Miljöer som visas i Lägg till beroenden i notebook-filen stöds inte för serverlösa schemalagda GPU-beräkningsjobb.

Skapa och schemalägga ett jobb

Följande steg visar hur du skapar och schemalägger jobb för dina serverlösa GPU-beräkningsarbetsbelastningar. Mer information finns i Skapa och hantera schemalagda notebook-jobb .

När du har öppnat anteckningsboken som du vill använda:

  1. Välj knappen Schema längst upp till höger.
  2. Välj Lägg till schema.
  3. Fyll i formuläret Nytt schema med Jobbnamn, Schema och Beräkning.
  4. Välj Skapa.

Du kan också skapa och schemalägga jobb från användargränssnittet jobb och pipelines . Stegvis vägledning finns i Skapa ett nytt jobb .

Distribuerad utbildning

Du kan starta distribuerad träning över flera GPU:er – antingen inom en enskild nod eller över flera noder – med hjälp av Det serverlösa GPU Python-API:et. API:et tillhandahåller ett enkelt, enhetligt gränssnitt som sammanfattar informationen om GPU-etablering, miljökonfiguration och arbetsbelastningsdistribution. Med minimala kodändringar kan du sömlöst övergå från utbildning med en enda GPU till distribuerad körning över fjärranslutna GPU:er från samma notebook.

Dekoratorn @distributed fungerar på ett liknande sätt som att starta flernodsträning med torchrun, men i ren Python. Kodfragmentet nedan distribuerar till exempel funktionen över 8 fjärranslutna hello_world A10 GPU:er:

# Import the distributed decorator
from serverless_gpu import distributed

# Decorate the function with @distributed and specify the number of GPUs, the GPU type, and whether
# or not the GPUs are remote
@distributed(gpus=8, gpu_type='A10', remote=True)
def hello_world(name: str) -> None:
  print('hello', name)

# Trigger the distributed execution of the hello_world function
hello_world.distributed('world')

När de körs samlas loggar och utdata från alla arbetare in och visas i avsnittet Experiment på din arbetsyta.

API:et stöder populära parallella träningsbibliotek som DDP (Distributed Data Parallel ), Fully Sharded Data Parallel (FSDP), DeepSpeed och Ray.

Börja med att importera startanteckningsboken för att komma igång med API:et och utforska sedan notebook-exemplen för att se hur den används i verkliga distribuerade träningsscenarier med hjälp av de olika biblioteken.

Fullständig information finns i dokumentationen för Serverless GPU Python API .

Begränsningar

  • Serverlös GPU-beräkning stöder endast A10-acceleratorer.
  • Private Link stöds inte. Lagrings- eller pip-repos bakom Private Link stöds inte.
  • Serverlös GPU-beräkning stöds inte för arbetsytor för efterlevnadssäkerhetsprofiler (till exempel HIPAA eller PCI). Bearbetning av reglerade data stöds inte just nu.
  • För schemalagda jobb på serverfri GPU-beräkning stöds inte automatisk återställning för inkompatibla paketversioner som är associerade med din anteckningsbok.
  • Den maximala körtiden för en arbetslast är sju dagar. För modellträningsjobb som överskrider den här gränsen, implementera en kontrollpunktsmekanism och starta om processen när den maximala körtiden har nåtts.

Metodtips

Se Metodtips för serverlös GPU-beräkning.

Felsöka problem med serverlös GPU-beräkning

Om du stöter på problem med att köra arbetsbelastningar på serverlös GPU-beräkning kan du läsa felsökningsguiden för vanliga problem, lösningar och supportresurser.

Notebook-exempel

Nedan visas olika notebook-exempel som visar hur du använder serverlös GPU-beräkning för olika uppgifter.

Task Description
Stora språkmodeller (LLM: er) Exempel för finjustering av stora språkmodeller, inklusive parametereffektiva metoder som Low-Rank Adaptation (LoRA) och övervakade finjusteringsmetoder.
Visuellt innehåll Exempel på uppgifter för visuellt innehåll, inklusive objektidentifiering och bildklassificering.
Djupinlärningsbaserade rekommenderade system Exempel för att skapa rekommendationssystem med moderna djupinlärningsmetoder som tvåtornsmodeller.
Klassisk ML Exempel på traditionella maskininlärningsuppgifter, inklusive XGBoost-modellträning och prognostisering av tidsserier.
Distribuerad träning med flera GPU:n och flera noder Exempel på skalningsträning över flera GPU:er och noder med hjälp av det serverlösa GPU-API:et, inklusive distribuerad finjustering.

Exempel på multi-GPU-utbildning

Se Distribuerad träning med flera GPU:er och flera noder för notebook-filer som visar hur du använder olika distribuerade träningsbibliotek för träning med flera GPU:er.