Analysera Amazon SageMakers utgifter och bestämma kostnadsoptimeringsmöjligheter baserat på användning, Del 4: Utbildningsjobb | Amazon webbtjänster

Analysera Amazon SageMakers utgifter och bestämma kostnadsoptimeringsmöjligheter baserat på användning, Del 4: Utbildningsjobb | Amazon webbtjänster

2021 lanserade vi AWS Support Proactive Services som en del av AWS Enterprise Support planen. Sedan introduktionen har vi hjälpt hundratals kunder att optimera sina arbetsbelastningar, sätta skyddsräcken och förbättra synligheten för deras maskininlärnings (ML) arbetsbelastningars kostnader och användning.

I den här serien av inlägg delar vi lärdomar om att optimera kostnader i Amazon SageMaker. I det här inlägget fokuserar vi på SageMaker-utbildningsjobb.

SageMaker utbildningsjobb

SageMaker utbildningsjobb är asynkrona batchprocesser med inbyggda funktioner för ML-modellutbildning och optimering.

Med SageMaker utbildningsjobb kan du ta med din egen algoritm eller välja bland fler än 25 inbyggda algoritmer. SageMaker stöder olika datakällor och åtkomstmönster, distribuerad utbildning inklusive heterogena kluster, såväl som experimenthanteringsfunktioner och automatisk modellinställning.

Kostnaden för ett träningsjobb baseras på de resurser du använder (instanser och lagring) under den tid (i sekunder) som dessa instanser körs. Detta inkluderar den tid träning äger rum och, om du använder varm poolfunktion, Keep Alive-perioden du konfigurerar. I del 1, visade vi hur du kommer igång med att använda AWS Cost Explorer för att identifiera kostnadsoptimeringsmöjligheter i SageMaker. Du kan filtrera utbildningskostnader genom att använda ett filter på användningstypen. Namnen på dessa användningstyper är följande:

  • REGION-Train:instanceType (till exempel, USE1-Train:ml.m5.large)
  • REGION-Train:VolumeUsage.gp2 (till exempel, USE1-Train:VolumeUsage.gp2)

För att se en uppdelning av dina utbildningskostnader i Cost Explorer kan du gå in train: som prefix för Användningstyp. Om du bara filtrerar för använda timmar (se följande skärmdump), kommer Cost Explorer att generera två grafer: Kostnad och Användning. Denna vy hjälper dig att prioritera dina optimeringsmöjligheter och identifiera vilka instanser som är långvariga och kostsamma.

Analysera Amazon SageMakers utgifter och bestämma kostnadsoptimeringsmöjligheter baserat på användning, Del 4: Utbildningsjobb | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Innan du optimerar ett befintligt utbildningsjobb rekommenderar vi att du följer de bästa praxis som beskrivs i Optimera kostnader för maskininlärning med Amazon SageMaker: testa din kod lokalt och använd lokalt läge för testning, använd förutbildade modeller där det är möjligt och överväg klarad punktträning (vilket kan optimera kostnaden med upp till 90 % jämfört med On-Demand-instanser).

När ett On-Demand-jobb startas går det igenom fem faser: Start, Nedladdning, Utbildning, Uppladdning och Slutfört. Du kan se dessa faser och beskrivningar på utbildningsjobbets sida på SageMaker-konsolen.

Analysera Amazon SageMakers utgifter och bestämma kostnadsoptimeringsmöjligheter baserat på användning, Del 4: Utbildningsjobb | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Ur ett prissättningsperspektiv debiteras du för nedladdnings-, utbildnings- och uppladdningsfaser.

Att granska dessa faser är ett första steg för att diagnostisera var du kan optimera dina träningskostnader. I det här inlägget diskuterar vi nedladdnings- och utbildningsfaserna.

Nedladdningsfasen

I det föregående exemplet tog nedladdningsfasen mindre än en minut. Men om nedladdning av data är en stor faktor för din utbildningskostnad bör du överväga vilken datakälla du använder och få tillgång till metoder. SageMaker utbildningsjobb stödjer tre datakällor inbyggt: Amazon Elastic File System (Amazon EFS), Amazon enkel lagringstjänst (Amazon S3), och Amazon FSx för Luster. För Amazon S3 erbjuder SageMaker tre hanterade sätt som din algoritm kan komma åt träningen på: filläge (där data laddas ner till instansblocklagringen), rörläge (data strömmas till instansen, vilket eliminerar varaktigheten av nedladdningsfasen) och Snabb fil-läge (kombinerar användarvänligheten i det befintliga filläget med prestanda för Pipe-läget). För detaljerad vägledning om att välja rätt datakälla och åtkomstmetoder, se Välj den bästa datakällan för ditt Amazon SageMaker-utbildningsjobb.

När du använder hanterad punktträning debiteras inte alla upprepade nedladdningsfaser som inträffade på grund av avbrott (så du debiteras bara för varaktigheten av nedladdningen en gång).

Det är viktigt att notera att även om SageMaker utbildningsjobb stödjer de datakällor vi nämnde, är de inte obligatoriska. I din träningskod kan du implementera vilken metod som helst för att ladda ner träningsdata från vilken källa som helst (förutsatt att träningsinstansen kan komma åt den). Det finns ytterligare sätt att påskynda nedladdningstiden, som att använda Boto3 API med multiprocessing för att ladda ner filer samtidigt, eller använda tredjepartsbibliotek som WebDataset eller s5cmd för snabbare nedladdning från Amazon S3. För mer information, se Parallellisering av S3-arbetsbelastningar med s5cmd.

Träningsfas

Att optimera träningsfasens kostnad består av att optimera två vektorer: att välja rätt infrastruktur (instansfamilj och storlek) och att optimera själva träningen. Vi kan grovt dela in träningsinstanser i två kategorier: accelererad GPU-baserad, mestadels för djupinlärningsmodeller, och CPU-baserad för vanliga ML-ramverk. För vägledning om att välja rätt instansfamilj för träning, se Säkerställ effektiva beräkningsresurser på Amazon SageMaker. Om din träning kräver GPU-instanser rekommenderar vi att du hänvisar till videon Hur man väljer Amazon EC2 GPU-instanser för djupinlärning.

Som en allmän vägledning, om din arbetsbelastning kräver en NVIDIA GPU, fann vi att kunderna vinner betydande kostnadsbesparingar med två Amazon Elastic Compute Cloud (Amazon EC2) instanstyper: ml.g4dn och ml.g5. ml.g4dn är utrustad med NVIDIA T4 och erbjuder en särskilt låg kostnad per minne. ml.g5-instansen är utrustad med NVIDIA A10g Tensor Core och har den lägsta kostnaden per CUDA-flopp (fp32).

AWS erbjuder specifika kostnadsbesparande funktioner för djupinlärningsträning:

För att rätt storleksanpassa och optimera din instans bör du först titta på amazoncloudwatch statistik som utbildningsjobben genererar. För mer information, se SageMaker jobb och ändpunktsmått. Du kan använda CloudWatch vidare anpassade algoritmer för att övervaka träningsprestanda.

Analysera Amazon SageMakers utgifter och bestämma kostnadsoptimeringsmöjligheter baserat på användning, Del 4: Utbildningsjobb | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Dessa mätvärden kan indikera flaskhalsar eller övertillgång av resurser. Till exempel, om du observerar hög CPU med låg GPU-användning kan du lösa problemet genom att använda heterogena kluster. Ett annat exempel kan vara att se konsekvent låg CPU-användning under hela jobbets varaktighet – detta kan leda till att instansens storlek minskar.

Om du använder distribuerad utbildningbör du testa olika distributionsmetoder (torn, Ring-AllReduce, mirrored, och så vidare) för att validera maximalt utnyttjande och finjustera dina ramverksparametrar därefter (se till exempel Bästa metoder för TensorFlow 1.x accelerationsträning på Amazon SageMaker). Det är viktigt att markera att du kan använda SageMaker distributions-API och liknande bibliotek SageMaker distribuerad data parallellt, SageMaker Model Parallelloch SageMaker delad data parallell, som är optimerade för AWS-infrastruktur och hjälper till att minska utbildningskostnaderna.

Observera att distribuerad träning inte nödvändigtvis skalas linjärt och kan introducera vissa overhead, vilket kommer att påverka den totala körtiden.

För modeller för djupinlärning är en annan optimeringsteknik att använda blandad precision. Blandad precision kan påskynda träningen och därigenom minska både träningstid och minnesanvändning med minimal eller ingen inverkan på modellens noggrannhet. För mer information, se Träna med Data Parallel och Model Parallel avsnitt i Distribuerad utbildning i Amazon SageMaker.

Slutligen kan optimering av ramspecifika parametrar ha en betydande inverkan på att optimera träningsprocessen. SageMaker automatisk modelljustering hittar hyperparametrar som ger bäst resultat, mätt med ett objektivt mått som du väljer. Att ställa in träningstiden som ett objektivt mått och ramkonfiguration som hyperparametrar kan hjälpa till att ta bort flaskhalsar och minska den totala träningstiden. För ett exempel på att optimera standardinställningarna för TensorFlow och ta bort en CPU-flaskhals, se Aerobotics förbättrar träningshastigheten med 24 gånger per prov med Amazon SageMaker och TensorFlow.

En annan möjlighet för att optimera både nedladdnings- och bearbetningstiden är att överväga att träna på en delmängd av din data. Om din data består av flera dubbla poster eller funktioner med låg informationsvinst, kanske du kan träna på en delmängd av data och minska nedladdnings- och träningstiden samt använda en mindre instans och Amazon Elastic Block Store (Amazon EBS) volym. För ett exempel, se Använd ett datacentrerat tillvägagångssätt för att minimera mängden data som krävs för att träna Amazon SageMaker-modeller. Också, Amazon SageMaker Data Wrangler kan förenkla analys och skapande av träningsprover. För mer information, se Skapa slumpmässiga och stratifierade urval av data med Amazon SageMaker Data Wrangler.

SageMaker-felsökare

För att säkerställa effektiv utbildning och resursutnyttjande kan SageMaker profilera ditt träningsjobb med hjälp av Amazon SageMaker Debugger. Debugger-erbjudanden inbyggda regler för att varna om vanliga problem som påverkar din träning som CPU-flaskhals, GPU-minnesökning eller I/O-flaskhals, eller så kan du skapa dina egna regler. Du kan komma åt och analysera den genererade rapporten i Amazon SageMaker Studio. För mer information, se Amazon SageMaker Debugger UI i Amazon SageMaker Studio Experiments. Följande skärmdump visar felsökningsvyn i Studio.

Analysera Amazon SageMakers utgifter och bestämma kostnadsoptimeringsmöjligheter baserat på användning, Del 4: Utbildningsjobb | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Du kan gå igenom Python-operatorerna och funktionerna (den Toppoperationer på GPU avsnitt) som körs för att utföra träningsjobbet. De inbyggda Debugger-reglerna för profilering av bevakningsramverksrelaterade problem, inklusive överdriven träningsinitieringstid på grund av datanedladdning innan träningsstart och steglängdsavvikelser i träningsloopar. Du bör notera att även om det är gratis att använda de inbyggda reglerna, gäller kostnader för anpassade regler baserat på den instans som du konfigurerar för varaktigheten av utbildningsjobbet och lagringen som är kopplad till det.

Slutsats

I det här inlägget gav vi vägledning om kostnadsanalys och bästa praxis när du tränar ML-modeller med SageMaker-utbildningsjobb. Eftersom maskininlärning etablerar sig som ett kraftfullt verktyg över branscher måste utbildning och körning av ML-modeller förbli kostnadseffektiva. SageMaker erbjuder en bred och djup uppsättning funktioner för att underlätta varje steg i ML-pipelinen och ger kostnadsoptimeringsmöjligheter utan att påverka prestanda eller smidighet.


Om författarna

Analysera Amazon SageMakers utgifter och bestämma kostnadsoptimeringsmöjligheter baserat på användning, Del 4: Utbildningsjobb | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Deepali Rajale är senior AI/ML-specialist på AWS. Hon arbetar med företagskunder och tillhandahåller teknisk vägledning med bästa praxis för att distribuera och underhålla AI/ML-lösningar i AWS-ekosystemet. Hon har arbetat med ett brett spektrum av organisationer med olika användningsfall för djupinlärning som involverar NLP och datorseende. Hon brinner för att ge organisationer möjlighet att utnyttja generativ AI för att förbättra deras användningsupplevelse. På fritiden tycker hon om film, musik och litteratur.

Analysera Amazon SageMakers utgifter och bestämma kostnadsoptimeringsmöjligheter baserat på användning, Del 4: Utbildningsjobb | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Uri Rosenberg är AI & ML Specialist Technical Manager för Europa, Mellanöstern och Afrika. Med utgångspunkt från Israel arbetar Uri för att ge företagskunder i allt ML möjlighet att designa, bygga och driva i stor skala. På fritiden tycker han om att cykla, vandra och öka entropin.

Tidsstämpel:

Mer från AWS maskininlärning