Bästa metoder för Amazon SageMaker Training Managed Warm Pools

Amazon SageMaker Training Managed Warm Pools ger dig flexibiliteten att välja att återanvända och hålla fast vid den underliggande infrastrukturen under en användardefinierad tidsperiod. Detta görs samtidigt som man bibehåller fördelen med att överföra de odifferentierade tunga lyften av att hantera beräkningsinstanser till Amazon SageMaker modellutbildning. I det här inlägget beskriver vi de viktigaste fördelarna och smärtpunkterna som behandlas av SageMaker Training Managed Warm Pools, såväl som riktmärken och bästa praxis.

Översikt över SageMaker Training Managed Warm Pools

SageMaker Model Training är en helt hanterad funktion som snurrar upp instanser för varje jobb, tränar en modell, kör och spinner ner instanser efter jobbet. Du faktureras bara för jobbets varaktighet ner till den andra. Denna fullt hanterade förmåga ger dig friheten att fokusera på din maskininlärningsalgoritm (ML) och inte oroa dig för odifferentierade tunga lyft som infrastrukturhantering medan du tränar dina modeller.

Denna mekanism kräver en begränsad starttid för ett träningsjobb. Även om denna starttid, även känd som kallstartsstarttid, är ganska låg, kräver några av våra mest krävande kundanvändningsfall ännu lägre starttider, till exempel under 20 sekunder. Det finns två framträdande användningsfall som har dessa krav:

  • Den första är aktiv ML-experimentering av dataforskare som använder Amazon SageMaker utbildningsplattform, särskilt när du tränar stora modeller, som GPT3, som kräver flera iterationer för att komma till ett produktionsfärdigt tillstånd.
  • Den andra är den programmatiska lanseringen av ett stort antal (i storleksordningen flera hundra eller tusentals) på varandra följande jobb på samma typ av instanser på en schemalagd kadens. Till exempel parametersökning eller inkrementell träning.

För sådana användningsfall har varje sekund som spenderas på overhead, som starttiden för ett träningsjobb, en kumulativ effekt på alla dessa jobb.

Med SageMaker Training Managed Warm Pools har datavetare och ML-ingenjörer möjlighet att välja att hålla SageMaker träningsinstanser eller multi-instance kluster varma under en fördefinierad och omkonfigurerbar tid (keep_alive_period_in_seconds) efter att varje träningsjobb är klart. Så även om du ådrar dig ett kallstartsstraff för det första träningsjobbet som körs på en instans eller ett kluster, för alla efterföljande träningsjobb, är instanserna redan igång. Som ett resultat av dessa efterföljande utbildningsjobb som börjar på en instans före keep_alive_period_in_seconds löper ut medför inte kallstartsstarttiden. Detta kan minska träningsjobbets starttider till ungefär mindre än 20 sekunder (P90).

Dataforskare och ML-ingenjörer kan använda SageMaker Training Managed Warm Pools för att hålla enstaka eller flera instanser varma mellan träningskörningarna för experiment eller köra flera jobb i följd på samma enstaka eller flera instanskluster. Du betalar bara för utbildningsjobbens varaktighet och det omkonfigurerbara keep_alive_period_in_seconds som överallt annars du anger för varje enskild instans.

Med SageMaker Training Managed Warm Pools får du i huvudsak en kombination av SageMaker-hanterade instansutnyttjande med möjligheten att välja in och tillhandahålla kapacitet och självhantera användningen under korta tidsintervaller. Dessa intervall är konfigurerbara före ett jobb, men om under keep_alive_period_in_seconds intervall måste du minska eller öka det, du kan göra det. Ökar till keep_alive_period_in_seconds kan göras i intervaller på upp till 60 minuter, med en maxperiod för en instans eller ett kluster på 7 dagar.

För att komma igång med varma pooler, först begära en höjning av kvotgränsen för varma pooler, ange sedan keep_alive_period_in_seconds parameter när du börjar ett träningsjobb.

riktmärken

Vi utförde benchmarking-tester för att mäta jobbstartslatens med hjälp av en TensorFlow-bild på 1.34 GB, 2 GB data och olika inmatningslägen för träningsdata (Amazon FSx, Fast File Mode, File Mode). Testerna kördes över en mängd olika instanstyper från m4-, c4-, m5- och c5-familjerna i us-east-2-regionen. Startfördröjningen mättes som tiden för jobbskapande till början av det faktiska träningsjobbet på instanserna. De första jobben som startade klustret och skapade den varma poolen hade en startfördröjning på 2–3 minuter. Denna högre latens beror på den tid det tar att tillhandahålla infrastrukturen, ladda ner bilden och ladda ner data. De efterföljande jobben som använde det varma poolklustret hade en startfördröjning på cirka 20 sekunder för Fast File Mode (FFM) eller Amazon FSx, och 70 sekunder för File Mode (FM). Detta delta är ett resultat av att FM kräver att hela datauppsättningen laddas ner från Amazon S3 innan jobbet påbörjas.

Ditt val av inmatningsläge för träningsdata påverkar starttiden, även med varma pooler. Vägledning om vilket inmatningsläge du ska välja finns i avsnittet med bästa praxis längre fram i det här inlägget.

Följande tabell sammanfattar jobbstartstiden P90 för olika inmatningslägen för träningsdata.

Datainmatningsläge Startlatens P90 (sekunder)
Första jobb Varma pooljobb (andra jobbet och framåt)
FSx 136 19
Snabbt filläge 143 21
Filläge 176 70

Bästa metoder för att använda varma pooler

I följande avsnitt delar vi med oss ​​av några bästa praxis när du använder varma pooler.

När ska man använda varma pooler?

Varma pooler rekommenderas i följande scenarier:

  • Du experimenterar interaktivt och justerar ditt manus över en rad korta jobb.
  • Du kör din egen skräddarsydda, storskaliga hyperparameteroptimering (t.ex. Syne Tune).
  • Du har en batchprocess som kör ett stort antal (i storleksordningen flera hundra eller tusentals) på varandra följande jobb på samma typ av instanser på en daglig eller veckovis kadens. Till exempel att träna en ML-modell per stad.

Varma pooler rekommenderas inte när det är osannolikt att någon kommer att återanvända den varma poolen innan den går ut. Till exempel ett enda långt jobb som körs via en automatiserad ML-pipeline.

Minimera uppstartsfördröjning för varma poolträningsjobb

Träningsjobb som återanvänder en varm pool börjar snabbare än det första jobbet som skapade den varma poolen. Detta beror på att ML-instanserna körs mellan jobb med en cachad utbildningsbehållare Docker-bild för att hoppa över att dra behållaren från Amazon Elastic Container Registry (Amazon ECR). Men även vid återanvändning av en varm pool inträffar vissa initialiseringssteg för alla jobb. Att optimera dessa steg kan minska din starttid för ditt jobb (både första och efterföljande jobb). Tänk på följande:

  • Inmatningsläge för träningsdata kan påverka starttiden – Hanterade inmatningskanaler för träningsdata återskapas för varje träningsjobb, vilket bidrar till latens för jobbstart. Så att göra initiala experiment över en mindre datauppsättning möjliggör snabbare starttid (och snabbare träningstid). För senare stadier av experiment, när en stor datamängd behövs, överväg att använda en inmatningslägestyp som har minimal eller fast initieringstid. Till exempel kopierar inmatningsläget FILE hela datamängden från Amazon enkel lagringstjänst (Amazon S3) till träningsinstansen, vilket är tidskrävande för stora datamängder (även med varma pooler). Snabbt filläge är bättre lämpat för lägre startfördröjning eftersom endast S3-objektmetadata behöver läsas från Amazon S3 innan arbetsbelastningen kan starta. De Amazon FSx för Luster, eller Amazon Elastic File System (Amazon EFS) filsysteminmatningsläge, har en fast initialiseringstid oavsett antalet filer i filsystemet, vilket är fördelaktigt när man arbetar med en stor datamängd.
    För mer information om hur du väljer en ingångskanal, se Välj den bästa datakällan för ditt Amazon SageMaker-utbildningsjobb.
  • Minska runtime installation av paket – Alla programvaruinstallationer som sker under containerstart, till exempel Pythons pip eller operativsystem apt-get, kommer att öka fördröjningen av träningsjobbet. Att minimera denna startfördröjning kräver att man gör en avvägning mellan flexibiliteten och enkelheten hos runtime-installationer jämfört med installation vid containerbyggning. Om du använder din egen Docker-behållare med SageMaker, se Anpassa din egen Docker-behållare för att fungera med SageMaker. Om du litar på förbyggda SageMaker-containerbilder, måste du förlänga en förbyggd container och explicit hantera dessa behållare. Tänk på detta om dina runtime-installationer avsevärt ökar startfördröjningen.
  • Undvik att uppdatera din Docker-bild ofta – Om du använder din egen Docker-behållare med SageMaker, försök att undvika att uppdatera den varje körning. Om Docker-bilden ändras mellan jobbinlämningarna kommer den varma poolen att återanvändas, men startprocessen kommer att behöva dra tillbaka behållarbilden från Amazon ECR istället för att återanvända en cachad behållarbild. Om Docker-bilden måste uppdateras, begränsa uppdateringarna till det sista Docker-lagret för att dra fördel av Docker-lagercache. Helst bör du ta bort Dockerfile-innehållet som sannolikt kommer att ändras över iterationer, som hyperparameter, datauppsättningsdefinitioner och själva ML-koden. För att iterera på ML-kod utan att behöva bygga om Docker-avbildningar med varje ändring, kan du använda rambehållarparadigmet som förespråkas i SageMaker Training Toolkit. Om du vill utveckla en ramverksbehållare med din egen kod, se den här Amazon SageMaker handledning.

Dela varma pooler mellan flera användare

När du arbetar med ett stort team av dataforskare kan du dela varma pooler som har matchande jobbkriterier, som densamma AWS identitets- och åtkomsthantering (IAM) roll eller behållarbild.

Låt oss titta på ett exempel på en tidslinje. User-1 startar ett träningsjobb som slutför och resulterar i en ny varm pool skapad. När användare-2 påbörjar ett träningsjobb kommer jobbet att återanvända den befintliga varma poolen, vilket resulterar i en snabb start av jobbet. Medan användare-2:s jobb körs med den varma poolen i bruk, om en annan användare startar ett träningsjobb, kommer en andra varmpool att skapas.

Detta återanvändningsbeteende hjälper till att minska kostnaderna genom att dela varma pooler mellan användare som påbörjar liknande jobb. Om du vill undvika att dela varma pooler mellan användare, då får användarnas jobb inte ha matchande jobbkriterier (de måste till exempel använda en annan IAM-roll).

Meddela användarna när jobbet är klart

När du använder varma pooler för experiment, rekommenderar vi att du meddelar användarna när deras jobb är klart. Detta tillåter användare att återuppta experimenterandet innan den varma poolen går ut eller stoppa den varma poolen om den inte längre behövs. Du kan också automatiskt utlösa aviseringar dig genom Amazon EventBridge.

Ytterligare verktyg för snabba experiment och felsökning av träningsjobb

Med varma pooler kan du påbörja ett jobb på mindre än 20 sekunder. Vissa scenarier kräver interaktiva experiment och felsökning i realtid. Den öppna källkoden SageMaker SSH Helper-bibliotek låter dig slänga in i en SageMaker-utbildningsbehållare och genomföra fjärrutveckling och felsökning.

Slutsats

Med SageMaker Training Managed Warm Pools kan du hålla din modell träningsutrustning varm efter varje jobb under en viss period. Detta kan minska startfördröjningen för ett modellträningsjobb med upp till 8x. SageMaker Training Managed Warm Pools är tillgängliga i alla offentliga AWS-regioner där SageMaker Model Training är tillgänglig.

För att komma igång, se Träna med SageMaker Managed Warm Pools.


Om författarna

Romi DattaDr Romi Datta  är en Senior Manager of Product Management i Amazon SageMaker-teamet ansvarig för utbildning, bearbetning och funktionsbutik. Han har varit i AWS i över 4 år och innehaft flera ledarskapsroller för produktledning inom SageMaker, S3 och IoT. Före AWS arbetade han i olika produktlednings-, ingenjörs- och operativa ledarroller på IBM, Texas Instruments och Nvidia. Han har en MS och Ph.D. i elektro- och datorteknik från University of Texas i Austin, och en MBA från University of Chicago Booth School of Business.

Bästa metoder för Amazon SageMaker Training Managed Warm Pools PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Arun Nagarajan är en huvudingenjör med Amazon SageMaker-teamet med fokus på utbildnings- och MLOps-områdena. Han har varit med i SageMaker-teamet från lanseringsåret och njutit av att bidra till olika områden i SageMaker inklusive realtidsinferens och Model Monitor-produkter. Han gillar att utforska naturen i Pacific Northwest-området och bestiga berg.

Bästa metoder för Amazon SageMaker Training Managed Warm Pools PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Amy du är mjukvaruutvecklingschef på AWS SageMaker. Hon fokuserar på att sammanföra ett team av mjukvaruingenjörer för att bygga, underhålla och utveckla nya funktioner för SageMaker Training-plattformen som hjälper kunder att träna sina ML-modeller mer effektivt och enkelt. Hon har en passion för ML och AI-teknik, speciellt relaterad till image och vision från hennes forskarutbildning. På fritiden älskar hon att arbeta med musik och konst med sin familj.

Bästa metoder för Amazon SageMaker Training Managed Warm Pools PlatoBlockchain Data Intelligence. Vertikal sökning. Ai. Sifei Li är en mjukvaruingenjör i Amazon AI där hon arbetar med att bygga Amazon Machine Learning Platforms och var en del av lanseringsteamet för Amazon SageMaker. På fritiden gillar hon att spela musik och läsa.

Bästa metoder för Amazon SageMaker Training Managed Warm Pools PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Jenna Zhao är en mjukvaruutvecklingsingenjör på AWS SageMaker. Hon brinner för ML/AI-teknik och har fokuserat på att bygga SageMaker Training-plattform som gör det möjligt för kunder att snabbt och enkelt träna maskininlärningsmodeller. Utanför jobbet tycker hon om att resa och umgås med sin familj.

Bästa metoder för Amazon SageMaker Training Managed Warm Pools PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Paras Mehra är Senior Product Manager på AWS. Han är fokuserad på att hjälpa till att bygga Amazon SageMaker Training and Processing. På sin fritid gillar Paras att umgås med sin familj och cykla landsvägscyklar runt Bay Area. Du kan hitta honom på LinkedIn.

Bästa metoder för Amazon SageMaker Training Managed Warm Pools PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Gili Nachum är en senior AI/ML Specialist Solutions Architect som arbetar som en del av EMEAs Amazon Machine Learning-team. Gili brinner för utmaningarna med att träna modeller för djupinlärning och hur maskininlärning förändrar världen som vi känner den. På fritiden tycker Gili om att spela bordtennis.

Bästa metoder för Amazon SageMaker Training Managed Warm Pools 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.

Bästa metoder för Amazon SageMaker Training Managed Warm Pools PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Emily Webber gick med i AWS precis efter att SageMaker lanserades, och har försökt berätta för världen om det sedan dess! Förutom att bygga nya ML-upplevelser för kunder tycker Emily om att meditera och studera tibetansk buddhism.

Tidsstämpel:

Mer från AWS maskininlärning