Minska utbildningstiden och kostnaden för djupinlärning med MosaicML Composer på AWS PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Minska utbildningstiden och kostnaden för djupinlärning med MosaicML Composer på AWS

Under det senaste decenniet har vi sett Vetenskap för djupinlärning (DL) anammats i en enorm takt av AWS-kunder. De rikliga och gemensamt tränade parametrarna för DL-modeller har en stor representationskapacitet som gav förbättringar i många kundanvändningsfall, inklusive bild- och talanalys, naturlig språkbehandling (NLP), tidsseriebearbetning och mer. I det här inlägget lyfter vi fram utmaningar som ofta rapporteras specifikt i DL-träning och hur biblioteket med öppen källkod MosaicML kompositör hjälper till att lösa dem.

Utmaningen med DL-träning

DL-modeller tränas iterativt, i en kapslad för-loop. En loop itererar genom träningsdatauppsättningen bit för bit och, om nödvändigt, upprepas denna loop flera gånger över hela datauppsättningen. ML-utövare som arbetar med DL-träning står inför flera utmaningar:

  • Utbildningslängden ökar med datastorleken. Med permanent växande datamängder ökar också träningstider och kostnader, och rytmen i vetenskapliga upptäckter saktar ner.
  • DL-skript kräver ofta boilerplate-kod, särskilt den tidigare nämnda dubbel för loop-strukturen som delar upp datasetet i minibatcher och träningen i epoker.
  • Paradoxen med valet: flera utbildningsoptimeringsartiklar och bibliotek publiceras, men det är oklart vilket som ska testas först och hur man kombinerar deras effekter.

Under de senaste åren har flera bibliotek med öppen källkod som t.ex Keras, PyTorch Lightning, Kramar ansikts transformatoreroch Ray tåg har försökt göra DL-träning mer tillgänglig, framför allt genom att minska kodfördjupningen, och därigenom förenkla hur neurala nätverk programmeras. De flesta av dessa bibliotek har fokuserat på utvecklarupplevelse och kodkompakthet.

I det här inlägget presenterar vi ett nytt bibliotek med öppen källkod som tar en annan ställning till DL-träning: MosaicML kompositör är ett hastighetscentrerat bibliotek vars primära mål är att göra träningsskript för neurala nätverk snabbare via algoritmisk innovation. I molnet DL-världen är det klokt att fokusera på hastighet, eftersom datorinfrastruktur ofta betalas per användning – till och med ända till den andra Amazon SageMaker utbildning— och snabbhetsförbättringar kan leda till besparingar.

Historiskt sett har att påskynda DL-träning mestadels gjorts genom att öka antalet maskiner som beräknar modelliterationer parallellt, en teknik som kallas data parallellism. Även om dataparallellism ibland påskyndar träningen (inte garanterat eftersom det stör konvergensen, som framhålls i Goyal et al.), det minskar inte den totala jobbkostnaden. I praktiken tenderar det att öka den, på grund av kommunikationskostnader mellan maskiner och högre maskinenhetskostnad, eftersom distribuerade DL-maskiner är utrustade med avancerade nätverk och in-server GPU-interconnect.

Även om MosaicML Composer stöder dataparallellism, skiljer sig dess kärnfilosofi från dataparallellismrörelsen. Dess mål är att påskynda träningen utan att behöva fler maskiner, genom att förnya på vetenskapsimplementeringsnivå. Därför syftar det till att uppnå tidsbesparingar som skulle resultera i kostnadsbesparingar på grund av AWS avgiftsstruktur för betalning per användning.

Vi presenterar biblioteket med öppen källkod MosaicML Composer

MosaicML Composer är ett DL-träningsbibliotek med öppen källkod som är specialbyggt för att göra det enkelt att ta med de senaste algoritmerna och komponera dem till nya recept som påskyndar modellträning och hjälper till att förbättra modellkvaliteten. När detta skrivs stöder den PyTorch och innehåller 25 tekniker – kallade metoder i MosaicML-världen – tillsammans med standardmodeller, datauppsättningar och riktmärken

Kompositör är tillgänglig via pip:

pip install mosaicml

Speedup-tekniker implementerade i Composer kan nås med dess funktionella API. Till exempel, följande kodavsnitt tillämpar BlurPool teknik till ett 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)

Alternativt kan du också använda en Tränare att komponera din egen kombination av tekniker:

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()

Exempel på metoder implementerade i Composer

Några av metoderna som finns tillgängliga i Composer är specifika för datorseende, till exempel bildförstärkningstekniker ColOut, UTKLIPPSFIGUR, eller Progressiv bildstorleksändring. Andra är specifika för sekvensmodellering, som t.ex Sekvenslängd Uppvärmning or Alibi. Intressant nog är flera agnostiker av användningsfallet och kan appliceras på en mängd olika PyTorch neurala nätverk utöver datorseende och NLP. Dessa generiska accelerationsmetoder för neurala nätverksträning inkluderar Etikettutjämning, Selektiv ryggstöd, Stokastisk viktgenomsnitt, Lagerfrysningoch Sharpness Aware Minimering (SAM).

Låt oss dyka djupt in i några av dem som visade sig vara särskilt effektiva av MosaicML-teamet:

  • Sharpness Aware Minimering (SAM) är en optimerare som minimerar både modellförlustfunktionen och dess skärpa genom att beräkna en gradient två gånger för varje optimeringssteg. För att begränsa den extra beräkningen för att straffa genomströmningen, kan SAM köras med jämna mellanrum.
  • Uppmärksamhet med linjära fördomar (ALiBi), inspirerad av Press et al., är specifik för Transformers-modeller. Det tar bort behovet av positionella inbäddningar, och ersätter dem med en icke-inlärd bias till uppmärksamhetsvikter.
  • Selektiv ryggstöd, inspirerad av Jiang et al., låter dig köra back-propagation (algoritmerna som förbättrar modellvikter genom att följa dess fellutning) endast på poster med högförlustfunktion. Den här metoden hjälper dig att undvika onödig beräkning och hjälper dig att förbättra genomströmningen.

Att ha dessa tekniker tillgängliga i en enda kompakt träningsram är ett betydande mervärde för ML-utövare. Vad som också är värdefullt är den handlingsbara fältfeedback som MosaicML-teamet producerar för varje teknik, testad och betygsatt. Men med tanke på en så rik verktygslåda kanske du undrar: vilken metod ska jag använda? Är det säkert att kombinera användningen av flera metoder? Gå in i MosaicML Explorer.

MosaicML Explorer

För att kvantifiera värdet och kompatibiliteten hos DL-träningsmetoder, upprätthåller MosaicML-teamet explorer, en första i sitt slag live-dashboard som visar dussintals DL-träningsexperiment över fem datamängder och sju modeller. Instrumentpanelen bilder pareto optimal gräns i avvägningen mellan kostnad/tid/kvalitet, och låter dig bläddra och hitta bästa kombinationer av metoder – som kallas recept i MosaicML-världen – för en given modell och datauppsättning. Följande grafer visar till exempel att för en 125M parameter GPT2-träning, erhålls den billigaste träningen som bibehåller en förvirring på 24.11 genom att kombinera AliBi, Sequence Length Warmup och Scale Schedule, vilket når en kostnad på cirka $145.83 i AWS-molnet! Observera dock att denna kostnadsberäkning och de som följer i det här inlägget endast baseras på en EC2-beräkning på begäran, andra kostnadsöverväganden kan vara tillämpliga, beroende på din miljö och affärsbehov.

Skärmdump av MosaicML Explorer för GPT-2-träning

Anmärkningsvärda prestationer med Composer på AWS

Genom att köra Composer-biblioteket på AWS uppnådde MosaicML-teamet ett antal imponerande resultat. Observera att kostnadsberäkningar som rapporterats av MosaicML-teamet endast består av on-demand beräkningsavgift.

Slutsats

Du kan komma igång med Composer på vilken kompatibel plattform som helst, från din bärbara dator till stora GPU-utrustade molnservrar. Biblioteket har intuitiva funktioner Välkomsttur och Komma igång dokumentationssidor. Genom att använda Composer i AWS kan du samla Composer kostnadsoptimeringsvetenskap med AWS kostnadsoptimeringstjänster och program, inklusive Spot compute (Amazon EC2, Amazon SageMaker), Sparplan, SageMaker automatisk modelljustering, och mer. MosaicML-teamet upprätthåller en handledning av kompositör på AWS. Den ger en steg-för-steg-demonstration av hur du kan reproducera MLPerf-resultat och träna ResNet-50 på AWS till standarden 76.6 % topp-1-noggrannhet på bara 27 minuter.

Om du kämpar med neurala nätverk som tränar för långsamt, eller om du vill hålla dina DL-träningskostnader under kontroll, ge MosaicML på AWS ett försök och låt oss veta vad du bygger!


Om författarna

Minska utbildningstiden och kostnaden för djupinlärning med MosaicML Composer på AWS PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Bandisk Shah är ingenjörschef på MosaicML, som arbetar för att överbrygga effektiv djupinlärning med storskaliga distribuerade system och prestandaberäkningar. Bandish har över ett decennium av erfarenhet av att bygga system för maskininlärning och företagsapplikationer. Han tycker om att umgås med vänner och familj, laga mat och se Star Trek på repris för inspiration.

Minska utbildningstiden och kostnaden för djupinlärning med MosaicML Composer på AWS PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Olivier Cruchant är en maskininlärningsspecialistlösningsarkitekt på AWS, baserad i Frankrike. Olivier hjälper AWS-kunder – från små startups till stora företag – att utveckla och distribuera produktionsklassade maskininlärningsapplikationer. På fritiden tycker han om att läsa forskningsrapporter och utforska vildmarken med vänner och familj.

Tidsstämpel:

Mer från AWS maskininlärning