Reducer træningstid og omkostninger til dyb læring med MosaicML Composer på AWS PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Reducer træningstid og omkostninger til dyb læring med MosaicML Composer på AWS

I det seneste årti har vi set Deep learning (DL) videnskab taget i brug i et enormt tempo af AWS-kunder. De rigelige og i fællesskab trænede parametre i DL-modeller har en stor repræsentationskapacitet, der bragte forbedringer i adskillige kundetilfælde, herunder billed- og taleanalyse, naturlig sprogbehandling (NLP), tidsseriebehandling og mere. I dette indlæg fremhæver vi udfordringer, der almindeligvis rapporteres specifikt i DL-træning, og hvordan open source-biblioteket MosaicML Komponist hjælper med at løse dem.

Udfordringen med DL træning

DL-modeller trænes iterativt i en indlejret for-løkke. En loop itererer gennem træningsdatasættet del for del, og om nødvendigt gentages denne loop flere gange over hele datasættet. ML-udøvere, der arbejder med DL-træning, står over for flere udfordringer:

  • Træningens varighed vokser med datastørrelsen. Med permanent voksende datasæt vokser træningstider og -omkostninger også, og rytmen af ​​videnskabelig opdagelse bliver langsommere.
  • DL-scripts kræver ofte boilerplate-kode, især den førnævnte double for loop-struktur, der opdeler datasættet i minibatches og træningen i epoker.
  • Valgets paradoks: adskillige træningsoptimeringspapirer og -biblioteker er udgivet, men det er uklart, hvilken man skal teste først, og hvordan man kombinerer deres effekter.

I de seneste par år har flere open source-biblioteker som f.eks Keras, PyTorch Lightning, Krammede ansigtstransformereog Ray tog har forsøgt at gøre DL-træning mere tilgængelig, især ved at reducere kodeordligheden og derved forenkle, hvordan neurale netværk programmeres. De fleste af disse biblioteker har fokuseret på udvikleroplevelse og kodekompakthed.

I dette indlæg præsenterer vi et nyt open source-bibliotek, der tager en anden holdning til DL-træning: MosaicML Komponist er et hastighedscentreret bibliotek, hvis primære mål er at gøre neurale netværkstræningsscripts hurtigere via algoritmisk innovation. I cloud DL-verdenen er det klogt at fokusere på hastighed, fordi computerinfrastruktur ofte betales pr. brug – helt ned til den anden på Amazon SageMaker træning-og forbedringer i hastigheden kan omsættes til pengebesparelser.

Historisk set er fremskyndelse af DL-træning for det meste blevet udført ved at øge antallet af maskiner, der beregner modeliterationer parallelt, en teknik kaldet dataparallelisme. Selvom dataparallelisme nogle gange accelererer træning (ikke garanteret, fordi det forstyrrer konvergens, som fremhævet i Goyal et al.), det reducerer ikke de samlede jobomkostninger. I praksis har det en tendens til at øge det, på grund af inter-maskine kommunikation overhead og højere maskin enhed omkostninger, fordi distribuerede DL maskiner er udstyret med high-end netværk og in-server GPU interconnect.

Selvom MosaicML Composer understøtter dataparallelisme, er dens kernefilosofi forskellig fra dataparallelismebevægelsen. Dens mål er at accelerere træningen uden at kræve flere maskiner ved at innovere på det videnskabelige implementeringsniveau. Derfor sigter det mod at opnå tidsbesparelser, som ville resultere i omkostningsbesparelser på grund af AWS' betalings-per-brug gebyrstruktur.

Introduktion af open source-biblioteket MosaicML Composer

MosaicML Composer er et open source DL-træningsbibliotek designet til at gøre det nemt at bringe de nyeste algoritmer og komponere dem til nye opskrifter, der fremskynder modeltræning og hjælper med at forbedre modelkvaliteten. På tidspunktet for skrivningen understøtter den PyTorch og inkluderer 25 teknikker - kaldet metoder i MosaicML-verdenen – sammen med standardmodeller, datasæt og benchmarks

Komponist er tilgængelig via pip:

pip install mosaicml

Speedup-teknikker implementeret i Composer kan tilgås med dens funktionelle API. For eksempel anvender følgende uddrag BlurPool teknik til et TorchVision ResNet:

import logging

from composer import functional as CF
import torchvision.models as models
logging.basicConfig(level=logging.INFO)

model = models.resnet50()
CF.apply_blurpool(model)

Eventuelt kan du også bruge en Træner at sammensætte din egen kombination af teknikker:

from composer import Trainer
from composer.algorithms import LabelSmoothing, CutMix, ChannelsLast

trainer = Trainer(
    model=.. # must be a composer.ComposerModel
    train_dataloader=...,
    max_duration="2ep",  # can be a time, a number of epochs or batches
    algorithms=[
        LabelSmoothing(smoothing=0.1),
        CutMix(alpha=1.0),
        ChannelsLast(),
    ]
)

trainer.fit()

Eksempler på metoder implementeret i Composer

Nogle af de tilgængelige metoder i Composer er specifikke for computersyn, for eksempel billedforstærkningsteknikker ColOut, Skåret ud eller Progressiv billedstørrelse. Andre er specifikke for sekvensmodellering, som f.eks Sekvenslængdeopvarmning or Alibi. Interessant nok er flere agnostikere over brugssagen og kan anvendes på en række PyTorch neurale netværk ud over computervision og NLP. Disse generiske neurale netværk træning acceleration metoder omfatter Etiketudjævning, Selektiv rygprop, Stokastisk vægtgennemsnit, Lagfrysningog Sharpness Aware Minimization (SAM).

Lad os dykke dybt ned i nogle af dem, som blev fundet særligt effektive af MosaicML-teamet:

  • Sharpness Aware Minimization (SAM) er en optimering, der minimerer både modeltabsfunktionen og dens skarphed ved at beregne en gradient to gange for hvert optimeringstrin. For at begrænse den ekstra beregning for at straffe gennemløbet, kan SAM køres med jævne mellemrum.
  • Opmærksomhed med lineære skævheder (ALiBi), inspireret af Press et al., er specifik for Transformers-modeller. Det fjerner behovet for positionelle indlejringer og erstatter dem med en ikke-lært bias til opmærksomhedsvægte.
  • Selektiv rygprop, inspireret af Jiang et al., giver dig mulighed for kun at køre back-propagation (algoritmerne, der forbedrer modelvægte ved at følge dens fejlhældning) på poster med højtabsfunktion. Denne metode hjælper dig med at undgå unødvendig beregning og hjælper med at forbedre gennemløbet.

At have disse teknikker tilgængelige i en enkelt kompakt træningsramme er en betydelig merværdi for ML-udøvere. Hvad der også er værdifuldt, er den handlingsrettede feltfeedback, som MosaicML-teamet producerer for hver teknik, testet og vurderet. Men givet en så rig værktøjskasse, kan du undre dig: hvilken metode skal jeg bruge? Er det sikkert at kombinere brugen af ​​flere metoder? Gå ind i MosaicML Explorer.

MosaicML Explorer

For at kvantificere værdien og kompatibiliteten af ​​DL-træningsmetoder, fastholder MosaicML-teamet Explorer, et første af sin slags live-dashboard, der viser snesevis af DL-træningseksperimenter over fem datasæt og syv modeller. Dashboardet billeder pareto optimal grænse i afvejningen mellem omkostninger/tid/kvalitet og giver dig mulighed for at gennemse og finde topscorende kombinationer af metoder – kaldet opskrifter i MosaicML-verdenen – for en given model og datasæt. For eksempel viser følgende grafer, at for en 125M parameter GPT2 træning, opnås den billigste træning, der opretholder en forvirring på 24.11 ved at kombinere AliBi, Sequence Length Warmup og Scale Schedule, hvilket når en pris på omkring $145.83 i AWS Cloud! Bemærk dog, at denne omkostningsberegning og dem, der følger i dette indlæg, kun er baseret på en EC2-on-demand-beregning, andre omkostningsbetragtninger kan være relevante, afhængigt af dit miljø og dine forretningsbehov.

Skærmbillede af MosaicML Explorer til GPT-2 træning

Bemærkelsesværdige præstationer med Composer på AWS

Ved at køre Composer-biblioteket på AWS opnåede MosaicML-teamet en række imponerende resultater. Bemærk, at omkostningsestimater rapporteret af MosaicML-teamet kun består af on-demand beregningsgebyr.

Konklusion

Du kan komme i gang med Composer på enhver kompatibel platform, fra din bærbare computer til store GPU-udstyrede cloud-servere. Biblioteket har intuitive funktioner Velkomsttur , Kom godt i gang dokumentationssider. Brug af Composer i AWS giver dig mulighed for at kumulere Composer omkostningsoptimeringsvidenskab med AWS omkostningsoptimeringstjenester og -programmer, inklusive Spot compute (Amazon EC2, Amazon SageMaker), Opsparingsplan, SageMaker automatisk model tuning, og mere. MosaicML-teamet opretholder en tutorial af Composer på AWS. Det giver en trin-for-trin demonstration af, hvordan du kan reproducere MLPerf-resultater og træne ResNet-50 på AWS til standard 76.6 % top-1 nøjagtighed på kun 27 minutter.

Hvis du kæmper med neurale netværk, der træner for langsomt, eller hvis du ønsker at holde dine DL-træningsomkostninger under kontrol, så prøv MosaicML på AWS og lad os vide, hvad du bygger!


Om forfatterne

Reducer træningstid og omkostninger til dyb læring med MosaicML Composer på AWS PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Bandisk Shah er en Engineering Manager hos MosaicML, der arbejder på at bygge bro mellem effektiv deep learning med distribuerede systemer i stor skala og performance computing. Bandish har over ti års erfaring med at bygge systemer til maskinlæring og virksomhedsapplikationer. Han nyder at tilbringe tid med venner og familie, lave mad og se Star Trek på gentagelse for inspiration.

Reducer træningstid og omkostninger til dyb læring med MosaicML Composer på AWS PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Olivier Cruchant er en Machine Learning Specialist Solutions Architect hos AWS, baseret i Frankrig. Olivier hjælper AWS-kunder – fra små startups til store virksomheder – med at udvikle og implementere maskinlæringsapplikationer i produktionskvalitet. I sin fritid nyder han at læse forskningsartikler og udforske vildmarken med venner og familie.

Tidsstempel:

Mere fra AWS maskinindlæring