Reduser treningstiden og kostnadene for dyp læring med MosaicML Composer på AWS PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Reduser treningstiden og kostnadene for dyp læring med MosaicML Composer på AWS

I det siste tiåret har vi sett Deep learning (DL) vitenskap tatt i bruk i et enormt tempo av AWS-kunder. De mange og felles opplærte parameterne til DL-modeller har en stor representasjonskapasitet som ga forbedringer i en rekke kundetilfeller, inkludert bilde- og taleanalyse, naturlig språkbehandling (NLP), tidsseriebehandling og mer. I dette innlegget fremhever vi utfordringer som ofte rapporteres spesifikt i DL-trening, og hvordan åpen kildekode-biblioteket MosaicML-komponist hjelper til med å løse dem.

Utfordringen med DL-trening

DL-modeller trenes iterativt, i en nestet for loop. En sløyfe går gjennom treningsdatasettet bit for bit, og om nødvendig gjentas denne loopen flere ganger over hele datasettet. ML-utøvere som jobber med DL-trening står overfor flere utfordringer:

  • Treningsvarigheten øker med datastørrelsen. Med permanent voksende datasett øker også treningstidene og -kostnadene, og rytmen til vitenskapelig oppdagelse avtar.
  • DL-skript krever ofte standardkode, spesielt den nevnte doble for loop-strukturen som deler opp datasettet i minibatcher og opplæringen i epoker.
  • Valgets paradoks: flere artikler og biblioteker om treningsoptimalisering er publisert, men det er uklart hvilken du skal teste først, og hvordan du kombinerer effektene.

I løpet av de siste årene har flere åpen kildekode-biblioteker som f.eks Keras, PyTorch Lyn, Klemme ansikts-transformatorerog Ray tog har forsøkt å gjøre DL-trening mer tilgjengelig, spesielt ved å redusere kodens omfang, og dermed forenkle hvordan nevrale nettverk er programmert. De fleste av disse bibliotekene har fokusert på utvikleropplevelse og kodekompakthet.

I dette innlegget presenterer vi et nytt åpen kildekode-bibliotek som tar et annet standpunkt til DL-trening: MosaicML-komponist er et hastighetssentrisk bibliotek hvis primære mål er å gjøre nevrale nettverkstreningsskript raskere via algoritmisk innovasjon. I cloud DL-verdenen er det lurt å fokusere på hastighet, fordi datainfrastruktur ofte betales per bruk – helt ned til den andre Amazon SageMaker-opplæring-og forbedringer i hastighet kan føre til pengebesparelser.

Historisk sett har fremskyndet DL-trening for det meste blitt gjort ved å øke antall maskiner som beregner modelliterasjoner parallelt, en teknikk som kalles dataparallellisme. Selv om dataparallellisme noen ganger akselererer trening (ikke garantert fordi det forstyrrer konvergens, som fremhevet i Goyal et al.), reduserer det ikke de totale jobbkostnadene. I praksis har den en tendens til å øke den, på grunn av inter-maskin kommunikasjon overhead og høyere maskin enhet kostnad, fordi distribuerte DL maskiner er utstyrt med high-end nettverk og in-server GPU interconnect.

Selv om MosaicML Composer støtter dataparallellisme, er kjernefilosofien forskjellig fra dataparallellismebevegelsen. Målet er å akselerere treningen uten å kreve flere maskiner, ved å innovere på vitenskapelig implementeringsnivå. Derfor har det som mål å oppnå tidsbesparelser som vil resultere i kostnadsbesparelser på grunn av AWS sin betal-per-bruk gebyrstruktur.

Vi introduserer åpen kildekode-biblioteket MosaicML Composer

MosaicML Composer er et åpen kildekode DL-treningsbibliotek spesialbygd for å gjøre det enkelt å bringe de nyeste algoritmene og komponere dem til nye oppskrifter som øker modelltreningen og bidrar til å forbedre modellkvaliteten. Når dette skrives, støtter det PyTorch og inkluderer 25 teknikker – kalt metoder i MosaicML-verdenen – sammen med standardmodeller, datasett og benchmarks

Komponist er tilgjengelig via pip:

pip install mosaicml

Speedup-teknikker implementert i Composer kan nås med dens funksjonelle API. Følgende kodebit gjelder for eksempel BlurPool teknikk 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å bruke en Trener å komponere din egen kombinasjon av 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 implementert i Composer

Noen av metodene som er tilgjengelige i Composer er spesifikke for datasyn, for eksempel bildeforstørrelsesteknikker ColOut, Cutouteller Progressiv bildestørrelse. Andre er spesifikke for sekvensmodellering, som f.eks Sekvenslengde oppvarming or Alibi. Interessant nok er flere agnostikere av brukssaken og kan brukes på en rekke PyTorch nevrale nettverk utover datasyn og NLP. Disse generiske nevrale nettverkstreningsakselerasjonsmetodene inkluderer Etikettutjevning, Selektiv ryggstøtte, Stokastisk vektgjennomsnitt, Lagfrysingog Sharpness Aware Minimering (SAM).

La oss dykke dypt inn i noen av dem som ble funnet spesielt effektive av MosaicML-teamet:

  • Sharpness Aware Minimering (SAM) er en optimizer som minimerer både modelltapsfunksjonen og dens skarphet ved å beregne en gradient to ganger for hvert optimaliseringstrinn. For å begrense den ekstra beregningen for å straffe gjennomstrømningen, kan SAM kjøres med jevne mellomrom.
  • Oppmerksomhet med lineære skjevheter (ALiBi), inspirert av Press et al., er spesifikk for Transformers-modeller. Det fjerner behovet for posisjonelle innebygginger, og erstatter dem med en ikke-lært skjevhet til oppmerksomhetsvekter.
  • Selektiv ryggstøtte, inspirert av Jiang et al., lar deg kjøre back-propagation (algoritmene som forbedrer modellvektene ved å følge feilhellingen) bare på poster med høytapsfunksjon. Denne metoden hjelper deg med å unngå unødvendig databehandling og bidrar til å forbedre gjennomstrømningen.

Å ha disse teknikkene tilgjengelig i et enkelt kompakt treningsrammeverk er en betydelig verdiøkning for ML-utøvere. Det som også er verdifullt er den handlingsrettede felttilbakemeldingen som MosaicML-teamet produserer for hver teknikk, testet og vurdert. Men gitt en så rik verktøykasse, kan du spørre deg: hvilken metode skal jeg bruke? Er det trygt å kombinere bruken av flere metoder? Gå inn i MosaicML Explorer.

MosaicML Explorer

For å kvantifisere verdien og kompatibiliteten til DL-treningsmetoder, fastholder MosaicML-teamet Explorer, et første i sitt slag live dashbord som viser dusinvis av DL-treningseksperimenter over fem datasett og syv modeller. Dashbordet viser pareto optimal grense i kostnad/tid/kvalitet-avveiningen, og lar deg bla gjennom og finne toppscorekombinasjoner av metoder – kalt oppskrifter i MosaicML-verdenen – for en gitt modell og datasett. For eksempel viser følgende grafer at for en 125M parameter GPT2-trening, oppnås den billigste treningen som opprettholder en forvirring på 24.11 ved å kombinere AliBi, Sequence Length Warmup og Scale Schedule, og nå en kostnad på rundt $145.83 i AWS Cloud! Vær imidlertid oppmerksom på at denne kostnadsberegningen og de som følger i dette innlegget kun er basert på en EC2 on-demand-beregning, andre kostnadshensyn kan være aktuelle, avhengig av miljøet og forretningsbehovene dine.

Skjermbilde av MosaicML Explorer for GPT-2-trening

Bemerkelsesverdige prestasjoner med Composer på AWS

Ved å kjøre Composer-biblioteket på AWS oppnådde MosaicML-teamet en rekke imponerende resultater. Vær oppmerksom på at kostnadsestimater rapportert av MosaicML-teamet kun består av on-demand beregningskostnader.

konklusjonen

Du kan komme i gang med Composer på hvilken som helst kompatibel plattform, fra den bærbare datamaskinen til store GPU-utstyrte skyservere. Biblioteket har intuitive funksjoner Velkomsttur og Komme i gang dokumentasjonssider. Ved å bruke Composer i AWS kan du kumulere Composer kostnadsoptimaliseringsvitenskap med AWS kostnadsoptimaliseringstjenester og -programmer, inkludert Spot compute (Amazon EC2, Amazon SageMaker), Spareplan, SageMaker automatisk modellinnstilling, og mer. MosaicML-teamet opprettholder en tutorial av Composer på AWS. Den gir en trinnvis demonstrasjon av hvordan du kan reprodusere MLPerf-resultater og trene ResNet-50 på AWS til standard 76.6 % topp-1-nøyaktighet på bare 27 minutter.

Hvis du sliter med nevrale nettverk som trener for sakte, eller hvis du ønsker å holde DL-treningskostnadene under kontroll, prøv MosaicML på AWS og la oss få vite hva du bygger!


Om forfatterne

Reduser treningstiden og kostnadene for dyp læring med MosaicML Composer på AWS PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Bandish Shah er ingeniørsjef hos MosaicML, og jobber for å bygge bro over effektiv dyp læring med distribuerte systemer i stor skala og ytelsesdatabehandling. Bandish har over et tiår med erfaring med å bygge systemer for maskinlæring og bedriftsapplikasjoner. Han liker å tilbringe tid med venner og familie, lage mat og se Star Trek på repeat for inspirasjon.

Reduser treningstiden og kostnadene for dyp læring med MosaicML Composer på AWS PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Olivier Cruchant er en maskinlæringsspesialist løsningsarkitekt ved AWS, basert i Frankrike. Olivier hjelper AWS-kunder – fra små startups til store bedrifter – med å utvikle og distribuere maskinlæringsapplikasjoner i produksjonsgrad. På fritiden liker han å lese forskningsartikler og utforske villmarken med venner og familie.

Tidstempel:

Mer fra AWS maskinlæring