Share via


Azure Well-Architected Framework-perspektiv på Azure Machine Learning

Azure Machine Learning är en hanterad molntjänst som du kan använda för att träna, distribuera och hantera maskininlärningsmodeller. Det finns en mängd olika alternativ och konfigurationer för både träning och distribution av modeller, inklusive beräknings-SKU:er och konfigurationer. Du kan distribuera Maskininlärningsmodeller till Machine Learning-beräkning eller till andra Azure-tjänster, till exempel Azure Kubernetes Service (AKS).

Den här artikeln innehåller arkitektoniska rekommendationer för att fatta välgrundade beslut när du använder Machine Learning för att träna, distribuera och hantera maskininlärningsmodeller. Vägledningen baseras på grundpelarna i Azure Well-Architected Framework.

Viktigt

Så här använder du den här guiden

Varje avsnitt har en checklista för design som visar arkitekturområden och designstrategier som är lokaliserade till teknikomfånget.

Det finns även rekommendationer om de teknikfunktioner som kan hjälpa till att materialisera dessa strategier. Rekommendationerna representerar inte en fullständig lista över alla konfigurationer som är tillgängliga för Machine Learning och dess beroenden. I stället listar de viktiga rekommendationer som mappats till designperspektiven. Använd rekommendationerna för att skapa ditt konceptbevis eller för att optimera dina befintliga miljöer.

Den grundläggande arkitekturbaslinjen OpenAI-referensarkitekturen från slutpunkt till slutpunkt visar många av de viktigaste rekommendationerna.

Teknikomfång

Den här recensionen fokuserar på de relaterade besluten för dessa Azure-resurser:

  • Machine Learning
  • Machine Learning-beräkningskluster
  • Machine Learning-beräkningsinstanser

Granskningen behandlar inte anslutna resurser, till exempel datalager eller Azure-Key Vault.

Tillförlitlighet

Syftet med grundpelarna för tillförlitlighet är att tillhandahålla fortsatt funktionalitet genom att skapa tillräcklig motståndskraft och möjlighet att snabbt återställa efter fel.

Designprinciperna för tillförlitlighet ger en övergripande designstrategi som tillämpas för enskilda komponenter, systemflöden och systemet som helhet.

Checklista för design

Starta din designstrategi baserat på checklistan för designgranskning för tillförlitlighet och fastställa dess relevans för dina affärskrav. Utöka strategin till att omfatta fler metoder efter behov.

  • Återhämtning: Distribuera modeller till miljöer som stöder tillgänglighetszoner, till exempel AKS. Genom att se till att distributionerna distribueras mellan tillgänglighetszoner ser du till att en distribution är tillgänglig även i händelse av ett datacenterfel. För förbättrad tillförlitlighet och tillgänglighet bör du överväga en topologi för distribution i flera regioner.

  • Återhämtning: Se till att du har tillräckligt med beräkning för både träning och slutsatsdragning. Kontrollera att beräknings-SKU:n och skalningsinställningarna uppfyller kraven för din arbetsbelastning genom resursplanering.

  • Återhämtning: Separera Machine Learning-arbetsytor som används för undersökande arbete från de som används för produktion.

  • Återhämtning: När du använder hanterade onlineslutpunkter för slutsatsdragning använder du en lanseringsstrategi, till exempel blågröna distributioner, för att minimera stilleståndstiden och minska risken för att distribuera nya versioner.

  • Affärskrav: Välj din användning av beräkningskluster, beräkningsinstanser och externa slutsatsdragningsvärdar baserat på tillförlitlighetsbehov, med serviceavtal (SLA) som en faktor.

  • Återställning: Se till att du har självåterställningsfunktioner, till exempel kontrollpunktsfunktioner som stöds av Machine Learning, när du tränar stora modeller.

  • Återställning: Se till att du har definierat en återställningsstrategi. Machine Learning har ingen automatisk redundansväxling. Därför måste du utforma en strategi som omfattar arbetsytan och alla dess beroenden, till exempel Key Vault, Azure Storage och Azure Container Registry.

Rekommendationer
Rekommendation Fördelar
Modelldistribution i flera regioner: För förbättrad tillförlitlighet och tillgänglighet bör du överväga en distributionsmiljö för flera regioner när det är möjligt. En distribution i flera regioner säkerställer att dina Machine Learning-arbetsbelastningar fortsätter att köras även om en region upplever ett avbrott. Distribution i flera regioner förbättrar belastningsfördelningen mellan regioner, vilket kan förbättra prestandan för användare i olika geografiska områden. Mer information finns i Redundans för affärskontinuitet och haveriberedskap.
Modellträningsåterhämtning: Använd kontrollpunktsfunktioner som stöds av Machine Learning, inklusive Azure Container for PyTorch, TensorFlow Estimator-klassen eller kör-objektet och klassen FileDataset som stöder modellkontrollpunkter. Med modellkontrollpunkter sparas regelbundet tillståndet för din maskininlärningsmodell under träningen, så att den kan återställas vid avbrott, fel eller avslutning. Mer information finns i Öka kontrollpunktshastigheten och minska kostnaderna med Nebula.
Använd nivån Dedikerad virtuell dator för beräkningskluster: Använd den dedikerade nivån för virtuella datorer för beräkningskluster för batchinferens för att säkerställa att batchjobbet inte föregrips. Virtuella datorer med låg prioritet har ett reducerat pris, men de kan inte användas. Kluster som använder nivån Dedikerad virtuell dator är inte förutbestämda.

Säkerhet

Syftet med säkerhetspelare är att tillhandahålla konfidentialitet, integritet och tillgänglighetsgarantier för arbetsbelastningen.

Principerna för säkerhetsdesign ger en övergripande designstrategi för att uppnå dessa mål genom att tillämpa metoder för den tekniska designen kring Machine Learning.

Checklista för design

Starta din designstrategi baserat på checklistan för designgranskning för Säkerhet och identifiera säkerhetsrisker och kontroller för att förbättra säkerhetsstatusen. Utöka strategin till att omfatta fler metoder efter behov.

  • Tillgänglighet: Minska attackytan på Machine Learning-arbetsytan genom att begränsa åtkomsten till arbetsytan till resurser i det virtuella nätverket.

  • Konfidentialitet: Skydda mot dataexfiltrering från Machine Learning-arbetsytan genom att implementera nätverksisolering. Se till att åtkomst till alla externa resurser uttryckligen godkänns och att åtkomst till alla andra externa resurser inte tillåts.

  • Integritet: Implementera åtkomstkontroller som autentiserar och auktoriserar Machine Learning-arbetsytan för externa resurser baserat på principen med lägsta behörighet.

  • Integritet: Implementera uppdelning av användningsfall för Machine Learning-arbetsytor genom att konfigurera arbetsytor baserat på specifika användningsfall eller projekt. Den här metoden följer principen om lägsta behörighet genom att se till att arbetsytor endast är tillgängliga för personer som kräver åtkomst till data och experimenteringstillgångar för användningsfallet eller projektet.

  • Integritet: Reglera åtkomsten till grundläggande modeller. Se till att endast godkända register har åtkomst till modeller i modellregistret.

  • Integritet: Reglera åtkomsten till godkända containerregister. Se till att Machine Learning-beräkning endast kan komma åt godkända register.

  • Integritet: Reglera De Python-paket som kan köras på Machine Learning-beräkning. Genom att reglera Python-paketen ser du till att endast betrodda paket körs.

  • Integritet: Kräv att kod som används för träning i Machine Learning-beräkningsmiljöer signeras. Om du kräver kodsignering ser du till att koden som körs kommer från en betrodd källa och inte har manipulerats.

  • Konfidentialitet: Följ principen om minsta behörighet för rollbaserad åtkomstkontroll (RBAC) till Machine Learning-arbetsytan och relaterade resurser, till exempel lagringskontot för arbetsytan, för att säkerställa att enskilda personer bara har de behörigheter som krävs för sin roll, vilket minimerar potentiella säkerhetsrisker.

  • Integritet: Upprätta förtroende och verifierad åtkomst genom att implementera kryptering för vilande data och data under överföring.

Rekommendationer
Rekommendation Fördelar
Säkerhetsbaslinje: Använd Azure-säkerhetsbaslinjen för Machine Learning för att förbättra säkerheten och efterlevnaden för din Machine Learning-tjänst. Säkerhetsbaslinjen ger skräddarsydd vägledning om viktiga säkerhetsaspekter som nätverkssäkerhet, identitetshantering, dataskydd och privilegierad åtkomst. För optimal säkerhet använder du Microsoft Defender för molnet för att övervaka dessa aspekter.
Isolering av hanterat virtuellt nätverk: Konfigurera hanterad isolering av virtuella nätverk för Machine Learning. När du aktiverar isolering av hanterade virtuella nätverk skapas ett hanterat virtuellt nätverk för arbetsytan. Hanterade beräkningsresurser som du skapar för arbetsytan använder automatiskt det här hanterade virtuella nätverket. Om du inte kan implementera isolering av hanterade virtuella nätverk måste du följa rekommendationerna för nätverkstopologi för att separera beräkning i ett dedikerat undernät bort från resten av resurserna i lösningen, inklusive de privata slutpunkterna för arbetsyteresurser. Isolering av hanterade virtuella nätverk förbättrar säkerheten genom att isolera din arbetsyta från andra nätverk, vilket minskar risken för obehörig åtkomst. I ett scenario där ett intrång inträffar i ett annat nätverk i din organisation påverkas inte det isolerade nätverket på din Machine Learning-arbetsyta, vilket skyddar dina maskininlärningsarbetsbelastningar.
Machine Learning-nätverksisolering: Konfigurera en privat slutpunkt för din Machine Learning-arbetsyta och anslut till arbetsytan över den privata slutpunkten. Machine Learning-nätverksisolering förbättrar säkerheten genom att säkerställa att åtkomsten till din arbetsyta är säker och kontrollerad. Med en privat slutpunkt konfigurerad för din arbetsyta kan du sedan begränsa åtkomsten till din arbetsyta så att den bara sker över de privata IP-adresserna.
Tillåt endast godkänd utgående åtkomst: Konfigurera utgående läge på machine learning-arbetsytan hanterad utgående åtkomst för Allow only approved outbound att minimera risken för dataexfiltrering. Konfigurera privata slutpunkter, tjänsttaggar eller fullständigt kvalificerade domännamn (FQDN) för resurser som du behöver åtkomst till. Den här konfigurationen minimerar risken för dataexfiltrering, vilket förbättrar datasäkerheten. När den här konfigurationen är aktiverad kan en obehörig aktör som får åtkomst till systemet inte skicka dina data till ett icke godkänt externt mål.
Isolering av virtuella nätverk för beroende tjänster: Konfigurera beroende tjänster, till exempel Lagring, Key Vault och Container Registry med privata slutpunkter och inaktivera offentlig åtkomst. Nätverksisolering stärker säkerheten genom att begränsa åtkomsten till PaaS-lösningar (Plattform som en tjänst) i Azure till privata IP-adresser.
Hanterad identitet: Använd hanterade identiteter för autentisering mellan Machine Learning och andra tjänster. Hanterade identiteter förbättrar säkerheten genom att eliminera behovet av att lagra autentiseringsuppgifter och hantera och rotera tjänstens huvudnamn manuellt.
Inaktivera lokal autentisering: Inaktivera lokal autentisering för Machine Learning-beräkningskluster och -instanser. Om du inaktiverar lokal autentisering ökar säkerheten för din Machine Learning-beräkning och ger centraliserad kontroll och hantering av identiteter och resursautentiseringsuppgifter.
Inaktivera den offentliga SSH-porten: Kontrollera att den offentliga SSH-porten (Secure Shell) är stängd i Machine Learning-beräkningsklustret genom att ange remoteLoginPortPublicAccess till Disabled. Använd en liknande konfiguration om du använder en annan beräkning. Om du inaktiverar SSH-åtkomst kan du förhindra att obehöriga personer får åtkomst och potentiellt skadar systemet och skyddar dig mot råstyrkeattacker.
Etablera inte offentliga IP-adresser för Machine Learning-beräkning: Ange enableNodePublicIp till false när du etablerar Machine Learning-beräkningskluster eller beräkningsinstanser. Använd en liknande konfiguration om du använder en annan beräkning. Avstå från att etablera offentliga IP-adresser för att förbättra säkerheten genom att begränsa risken för obehörig åtkomst till din beräkningsinstans eller dina kluster.
Hämta den senaste operativsystemavbildningen: Återskapa beräkningsinstanser för att hämta den senaste operativsystemavbildningen. Med de senaste avbildningarna säkerställer du att du upprätthåller en konsekvent, stabil och säker miljö, inklusive att se till att du har de senaste säkerhetskorrigeringarna.
Åtkomstkontroller för strikt Machine Learning-arbetsyta: Använd Microsoft Entra ID grupper för att hantera åtkomst till arbetsytor och följa principen om lägsta behörighet för RBAC. Strikta åtkomstkontroller för arbetsytor förbättrar säkerheten genom att se till att enskilda personer bara har de behörigheter som krävs för sin roll. En dataexpert kan till exempel ha åtkomst till att köra experiment men inte ändra säkerhetsinställningar, vilket minimerar potentiella säkerhetsrisker.
Begränsa distributioner av modellkataloger: Begränsa modelldistributioner till specifika register. Genom att begränsa distributionerna från modellkatalogen till specifika register ser du till att du bara distribuerar modeller till godkända register. Den här metoden hjälper till att reglera åtkomsten till grundmodeller med öppen källkod.
Kryptera vilande data: Överväg att använda kundhanterade nycklar med Machine Learning. Kryptering av vilande data förbättrar datasäkerheten genom att se till att känsliga data krypteras med hjälp av nycklar som hanteras direkt av dig. Om du har ett regelkrav för att hantera dina egna krypteringsnycklar använder du den här funktionen för att uppfylla det kravet.
Minimera risken för dataexfiltrering: Implementera dataexfiltreringsskydd. Skapa till exempel en tjänstslutpunktsprincip för att filtrera utgående trafik för virtuella nätverk och tillåta dataexfiltrering endast till specifika Azure Storage-konton. Minimera risken för dataexfiltrering genom att begränsa inkommande och utgående krav.
Advisor

Följande är några exempel på rekommendationerna om bästa praxis för Advisor-säkerhet för Machine Learning:

  • Arbetsytor ska krypteras med en kundhanterad nyckel (CMK).
  • Arbetsytor bör använda Azure Private Link.
  • Arbetsytor bör inaktivera åtkomst till offentligt nätverk.
  • Beräkning bör finnas i ett virtuellt nätverk.
  • Beräkningsinstanser bör återskapas för att hämta de senaste programuppdateringarna.
Azure Policy

Följande är exempel på inbyggda Azure Policy definitioner för Maskininlärningssäkerhet:

Kostnadsoptimering

Kostnadsoptimering fokuserar på att identifiera utgiftsmönster, prioritera investeringar inom kritiska områden och optimera i andra för att uppfylla organisationens budget samtidigt som affärskraven uppfylls.

Läs designprinciperna för kostnadsoptimering för att förstå metoderna för att uppnå dessa mål och de nödvändiga kompromisserna i tekniska designval som rör utbildning och distribution av modeller i deras miljöer.

Checklista för design

Starta din designstrategi baserat på checklistan för designgranskning för kostnadsoptimering för investeringar och finjustera designen så att arbetsbelastningen anpassas till den budget som allokerats för arbetsbelastningen. Din design bör använda rätt Azure-funktioner, övervaka investeringar och hitta möjligheter att optimera över tid.

  • Användningsoptimering: Välj lämpliga resurser för att säkerställa att de överensstämmer med dina arbetsbelastningskrav. Du kan till exempel välja mellan processorer eller GPU:er, olika SKU:er eller virtuella datorer med låg respektive normal prioritet.

  • Användningsoptimering: Se till att beräkningsresurser som inte används skalas ned eller stängs av när de är inaktiva för att minska avfallet.

  • Användningsoptimering: Tillämpa principer och konfigurera kvoter för att uppfylla designens övre och nedre gränser.

  • Användningsoptimering: Testa parallellisering av träningsarbetsbelastningar för att avgöra om träningskraven kan uppfyllas på SKU:er med lägre kostnad.

  • Prisoptimering: Köp Azure Reserved Virtual Machine Instances om du har en bra uppskattning av användningen under de kommande ett till tre åren.

  • Övervaka och optimera: Övervaka resursanvändningen, till exempel CPU- och GPU-användning när du tränar modeller. Om resurserna inte används fullt ut ändrar du koden för att bättre använda resurser eller skala ned till mindre eller billigare VM-storlekar.

Rekommendationer
Rekommendation Fördelar
Optimera beräkningsresurser: Optimera dina beräkningsresurser baserat på kraven för din arbetsbelastning. Välj den SKU som passar din arbetsbelastning bäst:
  • Generell användning – Balanserat förhållande mellan processor och minne, bra för alla ändamål.
  • Beräkningsoptimerad – Hög cpu-till-minne-förhållande, bra för matematiska tunga beräkningar.
  • Minnesoptimerad – Högt minne till CPU, bra för minnesinterna beräkningar eller databasprogram.
  • M-serien – Mycket stora datorer som har stora mängder minne och PROCESSOR.
  • GPU – Bättre för modeller med ett stort antal variabler som kan dra nytta av högre parallellitet och specialiserade kärninstruktioner. Vanliga program är djupinlärning, bild- eller videobearbetning, vetenskapliga simuleringar, datautvinning och användning av GPU-utvecklingsramverk. Testa med flera familjer och dokumentera resultatet som baslinje. När din modell och dina data utvecklas kan den lämpligaste beräkningsresursen ändras. Övervaka körningstider och utvärdera om efter behov.
Det är viktigt att välja rätt beräkning eftersom det direkt påverkar kostnaden för att köra din arbetsbelastning. Att välja en GPU eller en högpresterande SKU utan korrekt användning kan leda till slösaktiga utgifter, medan valet av underdimensionerad beräkning kan leda till oöverkomligt långa träningstider och prestandaproblem.
Optimera beräkningsskalning: Konfigurera dina beräkningskluster för automatisk skalning så att du bara använder det du behöver.

För träningskluster anger du det minsta antalet noder till 0 och konfigurerar hur lång tid noden är inaktiv till en lämplig tid. Minska tiden för att spara kostnader för mindre iterativ experimentering. För mer iterativ experimentering använder du en högre tid för att förhindra att betala för att skala upp eller ned efter varje ändring.
Konfigurera automatisk skalning för beräkningskluster för att skala ned när deras användning är låg.

Ange det minsta antalet noder till 0 för träningskluster för att skala ned till 0 när de inte används.
Ange principer för träningsavslut: Ange principer för tidig avslutning för att begränsa varaktigheten för träningskörningar eller avsluta dem tidigt. Om du anger avslutningsprinciper kan du spara kostnader genom att stoppa icke-kompatibla körningar tidigt.
Använd virtuella datorer med låg prioritet för batcharbetsbelastningar: Överväg att använda virtuella datorer med låg prioritet för batcharbetsbelastningar som inte är tidskänsliga och där avbrott kan återställas. Virtuella datorer med låg prioritet gör det möjligt att använda en stor mängd beräkningskraft för en låg kostnad. De drar nytta av överkapacitet i Azure.
Aktivera inaktiv avstängning för beräkningsinstanser: Aktivera inaktiv avstängning för beräkningsinstanser eller schemalägg en start- och stopptid om användningstiden är känd. Som standard är beräkningsinstanser tillgängliga för dig, vilket ackumulerar kostnader. Om du konfigurerar beräkningsinstanser så att de stängs av när de är inaktiva eller konfigurerar ett schema för dem sparas kostnader när de inte används.
Parallellisera träningsarbetsbelastningar: Överväg att parallellisera träningsarbetsbelastningar. Testa att köra dem med hjälp av de parallella komponenterna i Machine Learning. Parallella arbetsbelastningar kan köras på flera mindre instanser, vilket kan ge kostnadsbesparingar.
Azure Reserved VM Instances: Köp Azure Reserved VM Instances om du har en bra uppskattning av användningen under de kommande ett till tre åren. Dra nytta av alternativ för reserverad kapacitet för tjänster när du har bra uppskattningar av användningen. Köp Azure Reserved VM Instances för att förskottsbetala för användning av virtuella datorer och ge rabatter med betala per användning-priser. Rabatten tillämpas automatiskt för användning av virtuella datorer som matchar reservationen.

Driftseffektivitet

Operational Excellence fokuserar främst på procedurer för utvecklingsmetoder, observerbarhet och versionshantering.

Designprinciperna för operational excellence tillhandahåller en övergripande designstrategi för att uppnå dessa mål mot arbetsbelastningens driftskrav.

Checklista för design

Starta din designstrategi baserat på checklistan för designgranskning för operational excellence för att definiera processer för observerbarhet, testning och distribution som rör Machine Learning.

  • Utvecklingsstandarder: Dra nytta av maskininlärningsmodellkataloger och register för att lagra, version och dela maskininlärningstillgångar.

  • Automatisera för effektivitet: Följ bra MLOps-metoder (Machine Learning Operations). När det är möjligt skapar du automatiserade pipelines från slutpunkt till slutpunkt för processer för förberedelse, träning och bedömning av data. Under utvecklingen använder du skript i stället för notebook-filer för träningsmodeller, eftersom skript är enklare att integrera i automatiserade pipelines.

  • Distribuera med tillförsikt: Implementera infrastruktur som kod (IaC) för Machine Learning-arbetsytor, beräkningskluster, beräkningsinstanser och andra distributionsmiljöer.

  • Observerbarhet: Övervaka prestanda för dina distribuerade modeller, inklusive dataavvikelser.

  • Observerbarhet: Om dina modeller distribueras till onlineslutpunkter aktiverar du Application Insights för att övervaka onlineslutpunkter och distributioner. Övervaka utbildningsinfrastrukturen för att säkerställa att du uppfyller dina baslinjekrav.

  • Enkelhet: Använd organiserade miljöer som är optimerade för Maskininlärning när det är tillgängligt.

Rekommendationer
Rekommendation Fördelar
Minimera instanser av Machine Learning-arbetsytor: Minimera antalet arbetsytor när det är möjligt för att minska underhållet. Om du begränsar antalet arbetsytor minskar du underhållsinsatsen och driftkostnaden. För krav, till exempel säkerhet, kan du behöva flera separata arbetsytor. Minimera antalet arbetsytor när det är möjligt.
Dra nytta av modellkataloger och register: Dra nytta av Maskininlärningsmodellkataloger och -register för lagring, version och delning av maskininlärningstillgångar.

Använd Machine Learning-modellkataloger för att implementera A/B-testning och distribution av modeller.
Använd Maskininlärningsmodellregister för att lagra och versionshantera dina maskininlärningsmodeller för att spåra ändringar och upprätthålla ursprung med jobbet och datauppsättningarna som används för träning.

Med Machine Learning-modellkataloger kan dina datavetenskapsteam identifiera, utvärdera och finjustera förträna grundläggande maskininlärningsmodeller.

Lagring av versionshanterade modeller i Machine Learning-modellregister har stöd för distributionsstrategier som A/B-versioner, kanarieversioner och återställningar.
Övervaka modellprestanda: Övervaka prestanda för dina distribuerade modeller och identifiera dataavvikelser i datauppsättningar. Övervakning av distribuerade modeller säkerställer att dina modeller uppfyller prestandakraven.

Genom att övervaka dataavvikelser kan du identifiera ändringar i indata som kan leda till en minskning av modellens prestanda. Genom att hantera dataavvikelser kan du se till att din modell ger korrekta resultat över tid.
Övervaka infrastruktur: Om dina modeller distribueras till onlineslutpunkter aktiverar du Application Insights för att övervaka onlineslutpunkter och distributioner.

Övervaka utbildningsinfrastrukturen för att säkerställa att du uppfyller dina baslinjekrav.

Se till att du samlar in resursloggar för Machine Learning.
Övervakningsslutpunkter ger dig insyn i mått som svarstid för begäranden och begäranden per minut. Du kan jämföra prestanda jämfört med din baslinje och använda den här informationen för att göra ändringar i beräkningsresurserna. Övervakningsmått som nätverksbyte kan varna dig om du närmar dig kvotgränser och förhindrar begränsning.

På samma sätt ger övervakning av din träningsmiljö information för att göra ändringar i din träningsmiljö. Använd den informationen för att bestämma dig för att skala in eller ut, skala upp eller ned med olika högpresterande SKU:er eller välja mellan processorer eller GPU:er.
Kuratera modellträningsmiljöer: Använd organiserade miljöer som är optimerade för Maskininlärning när det är tillgängligt. Organiserade miljöer är färdiga miljöer som tillhandahålls av Machine Learning som påskyndar distributionstiden och minskar svarstiden för distribution och träning. Om du använder organiserade miljöer förbättras tränings- och distributionsframgången och onödiga avbildningsversioner undviks.

Organiserade miljöer, till exempel Azure Container for PyTorch, kan också optimeras för träning av stora modeller i Machine Learning.

Prestandaeffektivitet

Prestandaeffektivitet handlar om att upprätthålla användarupplevelsen även när belastningen ökar genom att hantera kapaciteten. Strategin omfattar skalning av resurser, identifiering och optimering av potentiella flaskhalsar och optimering av prestandatoppar.

Designprinciperna för prestandaeffektivitet ger en övergripande designstrategi för att uppnå dessa kapacitetsmål mot den förväntade användningen.

Checklista för design

Starta din designstrategi baserat på checklistan för designgranskning för prestandaeffektivitet för att definiera en baslinje baserat på viktiga prestandaindikatorer för Machine Learning-arbetsbelastningar.

  • Prestandamål: Fastställa acceptabel träningstid och omträningsfrekvens för din modell. Genom att ange ett tydligt mål för träningstid, tillsammans med testning, kan du fastställa de beräkningsresurser, PROCESSOR kontra GPU och CPU-SKU:er som krävs för att uppfylla träningstidsmålet.

  • Prestandamål: Definiera godkända prestandamål för dina distribuerade modeller, inklusive svarstid, begäranden per sekund, felfrekvens och drifttid. Prestandamål fungerar som ett riktmärke för din distribuerade modells effektivitet. Mål kan hjälpa dig att göra cpu- jämfört med GPU-bestämningar, cpu-SKU-val och skalningskrav.

  • Uppfylla kapacitetskrav: Välj rätt beräkningsresurser för modellträning.

  • Uppfylla kapacitetskrav: Välj rätt beräkningsresurser för modelldistributioner.

  • Uppfylla kapacitetskrav: Välj distributionsmiljöer med funktioner för automatisk skalning för att lägga till och ta bort kapacitet när efterfrågan varierar.

  • Uppnå och upprätthålla prestanda: Övervaka kontinuerligt prestanda för dina distribuerade modeller, granska resultaten och vidta lämpliga åtgärder.

  • Uppnå och upprätthålla prestanda: Övervaka kontinuerligt prestanda för din infrastruktur för distribuerade modeller, granska resultaten och vidta lämpliga åtgärder. Övervaka utbildningsinfrastrukturen för att säkerställa att du uppfyller dina krav för utbildningstid.

Rekommendationer
Rekommendation Fördelar
Välj lämpliga beräkningstjänster för modellträning: Överväg Machine Learning-beräkningskluster över beräkningsinstanser för modellträning om du behöver autoskalning.

Optimera dina beräkningsresurser baserat på träningskraven. Välj först mellan processorer och GPU:er. Standardvärdet är processorer, men överväg GPU:er för arbetsbelastningar som djupinlärning, bild- eller videobearbetning eller stora mängder data. Välj sedan den avbildnings-SKU som passar din arbetsbelastning bäst.

Använd testning för att välja beräkningsalternativet som optimerar kostnaden mot träningstiden när du fastställer baslinjen.
Det är viktigt att välja rätt beräkning eftersom det direkt påverkar träningstiden. Genom att välja rätt SKU och CPU jämfört med GPU säkerställer du att modellträningen uppfyller dina krav och prestandamål. Om du väljer en SKU med låga prestanda som används för mycket kan det leda till oöverkomligt långa träningstider och prestandaproblem.

Beräkningskluster ger möjlighet att förbättra prestanda genom att skala ut arbetsbelastningar som stöder horisontell skalning. Den här metoden ger flexibilitet för hantering av arbetsbelastningar med olika krav och gör att du kan lägga till eller ta bort datorer efter behov.
Skalning av modelldistributionsmiljö: Använd distributionsmiljöns autoskalningsfunktioner. För AKS-distributionsmiljöer använder du autoskalning av kluster för att skala för att möta efterfrågan. För onlineslutpunkter skalar du automatiskt via integrering med autoskalningsfunktionen i Azure Monitor. Autoskalning justerar antalet instanser av den distribuerade modellen för att matcha efterfrågan.
Övervaka modellprestanda: Övervaka prestanda för dina distribuerade modeller. Om du spårar prestanda för modeller i produktion får du en avisering om potentiella problem som dataavvikelser, förutsägelseavvikelser, datakvalitet och funktionsattributionsavvikelser.

Genom att övervaka dataavvikelser kan du identifiera ändringar i indata som kan leda till en minskning av modellens prestanda. Genom att hantera dataavvikelser kan du se till att din modell ger korrekta resultat över tid.
Övervaka infrastruktur: Övervaka onlineslutpunkter och integrera med Monitor för att spåra och övervaka lämpliga mått och loggar. Aktivera Application Insights när du skapar onlinedistributioner.

Övervaka träningsinfrastrukturen och granska resursanvändningen, till exempel minne och CPU- eller GPU-användning när du tränar modeller för att säkerställa att du uppfyller dina baslinjekrav.
Övervakningsslutpunkter ger dig insyn i mått som svarstid för begäranden och begäranden per minut. Du kan jämföra prestanda jämfört med din baslinje och använda den här informationen för att göra ändringar i beräkningsresurserna. Övervakningsmått som nätverksbyte kan varna dig om du närmar dig kvotgränser och förhindrar begränsning.

På samma sätt ger övervakning av din träningsmiljö information för att göra ändringar i din träningsmiljö. Använd den informationen för att bestämma dig för att skala in eller ut, skala upp eller ned med olika högpresterande SKU:er eller välja mellan processorer eller GPU:er.

Azure-principer

Azure tillhandahåller en omfattande uppsättning inbyggda principer relaterade till Machine Learning och dess beroenden. Några av föregående rekommendationer kan granskas via Azure-principer. Överväg följande principer som är relaterade till säkerhet:

Överväg följande princip som är relaterad till kostnadsoptimering:

Tänk på följande principer som är relaterade till driftseffektivitet:

Mer omfattande styrning finns i Azure Policy inbyggda definitioner för Machine Learning.

Advisor-rekommendationer

Advisor är en anpassad molnkonsult som hjälper dig att följa bästa praxis för att optimera dina Azure-distributioner. Advisor-rekommendationer kan hjälpa dig att förbättra maskininlärningens tillförlitlighet, säkerhet, kostnadseffektivitet, prestanda och driftseffektivitet.

Överväg följande Advisor-rekommendationer för säkerhet:

  • Arbetsytor ska krypteras med en kundhanterad nyckel (CMK).
  • Arbetsytor bör använda privat länk.
  • Arbetsytor bör inaktivera åtkomst till offentligt nätverk.
  • Beräkning ska finnas i ett virtuellt nätverk.
  • Beräkningsinstanser bör återskapas för att få de senaste programuppdateringarna.

Överväg följande Advisor-rekommendation för driftseffektivitet:

  • Resursloggar i Machine Learning-arbetsytor ska vara aktiverade.

Nästa steg

Tänk på de här artiklarna som resurser som visar de rekommendationer som beskrivs i den här artikeln.