Hantera och optimera Azure Machine Learning-kostnader
Den här artikeln visar hur du hanterar och optimerar kostnader när du tränar och distribuerar maskininlärningsmodeller till Azure Machine Learning.
Använd följande tips för att hantera och optimera dina kostnader för beräkningsresurser.
- Använda Azure Machine Learning-beräkningskluster
- Konfigurera dina träningskluster för automatisk skalning
- Konfigurera dina hanterade onlineslutpunkter för automatisk skalning
- Ange kvoter för din prenumeration och dina arbetsytor
- Ange avslutningsprinciper för ditt träningsjobb
- Använda virtuella datorer med låg prioritet (VM)
- Schemalägg beräkningsinstanser så att de stängs av och startas automatiskt
- Använda en Azure Reserved VM-instans
- Parallellisera träning
- Ange principer för datakvarhållning och borttagning
- Distribuera resurser till samma region
- Ta bort misslyckade distributioner
Information om planerings- och övervakningskostnader finns i Planera för att hantera kostnader för Azure Machine Learning.
Viktigt!
Objekt markerade (förhandsversion) i den här artikeln är för närvarande i offentlig förhandsversion. Förhandsversionen tillhandahålls utan ett serviceavtal. Vi rekommenderar inte förhandsversioner för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller kan vara begränsade. Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.
Använda Azure Machine Learning-beräkningsklustret
Med ständigt föränderliga data behöver du snabb och strömlinjeformad modellträning och omträning för att upprätthålla korrekta modeller. Kontinuerlig träning kostar dock en kostnad, särskilt för djupinlärningsmodeller på GPU:er.
Azure Machine Learning-användare kan använda det hanterade Azure Machine Learning-beräkningsklustret, även kallat AmlCompute. AmlCompute stöder olika GPU- och CPU-alternativ. AmlCompute hanteras internt för din prenumeration av Azure Machine Learning. Det ger samma säkerhet, efterlevnad och styrning i företagsklass i Azure IaaS-molnskala.
Eftersom dessa beräkningspooler finns i Azures IaaS-infrastruktur kan du distribuera, skala och hantera din utbildning med samma säkerhet och efterlevnadskrav som resten av infrastrukturen. Dessa distributioner sker i din prenumeration och följer dina styrningsregler. Mer information finns i Planera för att hantera kostnader för Azure Machine Learning.
Konfigurera träningskluster för automatisk skalning
Autoskalningskluster baserat på kraven för din arbetsbelastning bidrar till att minska dina kostnader så att du bara använder det du behöver.
AmlCompute-kluster är utformade för att skalas dynamiskt baserat på din arbetsbelastning. Klustret kan skalas upp till det maximala antalet noder som du konfigurerar. När varje jobb är klart släpper klustret noder och skalar till det konfigurerade minsta antalet noder.
Viktigt!
Om du vill undvika avgifter när inga jobb körs anger du miniminoderna till 0. Med den här inställningen kan Azure Machine Learning avallokera noderna när de inte används. Alla värden som är större än 0 håller det antalet noder igång, även om de inte används.
Du kan också konfigurera hur lång tid noden är inaktiv innan den skalas ned. Inaktiv tid före nedskalning är som standard inställd på 120 sekunder.
- Om du utför mindre iterativa experiment kan du minska den här tiden för att spara kostnader.
- Om du utför mycket iterativa utvecklings-/testexperiment kan du behöva öka tiden så att du inte betalar för konstant skalning upp och ned efter varje ändring i träningsskriptet eller miljön.
Du kan konfigurera AmlCompute-kluster för dina föränderliga arbetsbelastningskrav med hjälp av:
- Azure-portalen
- SDK-klassen AmlCompute
- AmlCompute CLI
- REST-API:er.
Konfigurera hanterade onlineslutpunkter för automatisk skalning
Med autoskalning körs automatiskt rätt mängd resurser för att hantera arbetsbelastningen i appen. Hanterade onlineslutpunkter stöder automatisk skalning genom integrering med autoskalningsfunktionen i Azure Monitor. Mer information finns i Onlineslutpunkter och distributioner för slutsatsdragning i realtid.
Automatisk skalning i Azure Monitor stöder en omfattande uppsättning regler:
- Måttbaserad skalning, till exempel processoranvändning >70 %
- Schemabaserad skalning, till exempel skalningsregler för tider med hög belastning på kontorstid
- En kombination av de två
Mer information finns i Autoskala onlineslutpunkter.
Ange kvoter för resurser
AmlCompute levereras med en kvot eller gränskonfiguration. Den här kvoten är per VM-familj, till exempel Dv2-serien eller NCv3-serien. Kvoten varierar beroende på region för varje prenumeration. Prenumerationer börjar med små standardvärden. Använd den här inställningen för att styra hur mycket AmlCompute-resurser som ska spunnas upp i din prenumeration. Mer information finns i Azure Machine Learning Compute.
Du kan också konfigurera kvoten för arbetsytor efter VM-familj för varje arbetsyta i en prenumeration. Den här metoden ger dig mer detaljerad kontroll över de kostnader som varje arbetsyta kan medföra och begränsar vissa VM-familjer. Mer information finns i kvoter på arbetsyta.
Så här anger du kvoter på arbetsytans nivå:
Öppna Azure Portal och välj sedan valfri arbetsyta i din prenumeration.
Välj Support + Felsökning>av användning + kvoter på arbetsytans meny.
Välj Visa kvot för att visa kvoter i Azure Machine Learning-studio.
På den här sidan hittar du din prenumeration och region för att ange kvoter.
Eftersom den här inställningen påverkar flera arbetsytor behöver du behörigheter i prenumerationsomfånget för att ange kvoten.
Ange principer för uppsägning av jobb
I vissa fall bör du konfigurera dina träningskörningar för att begränsa deras varaktighet eller avsluta dem tidigt. När du till exempel använder Azure Machine Learnings inbyggda hyperparameterjustering eller automatiserad maskininlärning.
Här är några alternativ som du har:
- Definiera en parameter som anropas
max_run_duration_seconds
i din RunConfiguration för att styra den maximala varaktighet som en körning kan sträcka sig till på den beräkning du väljer, antingen lokal eller fjärransluten molnberäkning. - För justering av hyperparameter definierar du en princip för tidig avslutning från en Bandit-princip, en princip för medianstopp eller en truncation-urvalsprincip. Om du vill kontrollera hyperparametrar ytterligare använder du parametrar som
max_total_runs
ellermax_duration_minutes
. Mer information finns i Ange princip för tidig uppsägning. - För automatiserad maskininlärning anger du liknande avslutningsprinciper med hjälp av
enable_early_stopping
flaggan. Du kan också använda egenskaper somiteration_timeout_minutes
ochexperiment_timeout_minutes
för att styra den maximala varaktigheten för ett jobb eller för hela experimentet. Mer information finns i Avsluta villkor.
Använda virtuella datorer med låg prioritet
Med Azure kan du använda överskott av outnyttjad kapacitet som virtuella datorer med låg prioritet i vm-skalningsuppsättningar, Batch och Machine Learning-tjänsten. Dessa allokeringar är fördefinierade men har ett reducerat pris jämfört med dedikerade virtuella datorer. I allmänhet rekommenderar vi att du använder virtuella datorer med låg prioritet för Batch-arbetsbelastningar. Du bör också använda dem där avbrott kan återställas, antingen via återprenumereringar för Batch-inferens eller genom omstarter för djupinlärningsträning med kontrollpunkter.
Virtuella datorer med låg prioritet har en enda kvot som är separat från det dedikerade kvotvärdet, som är efter VM-familj. Mer information om AmlCompute-kvoter finns i Hantera och öka kvoter .
Virtuella datorer med låg prioritet fungerar inte för beräkningsinstanser, eftersom de behöver stöd för interaktiva notebook-funktioner.
Schemalägga beräkningsinstanser
När du skapar en beräkningsinstans förblir den virtuella datorn på så att den är tillgänglig för ditt arbete.
- Aktivera inaktiv avstängning (förhandsversion) för att spara på kostnaden när den virtuella datorn är inaktiv under en angiven tidsperiod. Se Konfigurera inaktiv avstängning.
- Konfigurera ett schema för att automatiskt starta och stoppa beräkningsinstansen (förhandsversion) när den inte används för att spara kostnader. Se Schemalägg automatisk start och stopp.
Använd reserverade instanser
Ett annat sätt att spara pengar på beräkningsresurser är Azure Reserved VM Instance. Med det här erbjudandet förbinder du dig till ett- eller treårsperioder. Dessa rabatter varierar upp till 72 % av priserna för betala per användning och tillämpas direkt på din månatliga Azure-faktura.
Azure Machine Learning Compute stöder reserverade instanser. Om du köper en reserverad instans på ett år eller tre år tillämpar vi automatiskt rabatt mot din hanterade Azure Machine Learning-beräkning.
Parallellisera träning
En av de viktigaste metoderna för att optimera kostnader och prestanda är att parallellisera arbetsbelastningen med hjälp av en parallell komponent i Azure Machine Learning. Med en parallell komponent kan du använda många mindre noder för att köra uppgiften parallellt, vilket gör att du kan skala vågrätt. Det finns en omkostnad för parallellisering. Beroende på arbetsbelastningen och graden av parallellitet som kan uppnås kan den här metoden vara ett alternativ. Mer information finns i ParallelComponent-klass.
Ange principer för datakvarhållning och borttagning
Varje gång en pipeline körs genereras mellanliggande datauppsättningar i varje steg. Med tiden tar dessa mellanliggande datamängder upp utrymme i ditt lagringskonto. Överväg att konfigurera principer för att hantera dina data under hela livscykeln för att arkivera och ta bort dina datauppsättningar. Mer information finns i Optimera kostnader genom att automatiskt hantera datalivscykeln.
Distribuera resurser till samma region
Beräkningar som finns i olika regioner kan uppleva nätverksfördröjning och ökade kostnader för dataöverföring. Kostnader för Azure-nätverk tillkommer från utgående bandbredd från Azure-datacenter. För att minska nätverkskostnaderna distribuerar du alla dina resurser i regionen. Genom att etablera din Azure Machine Learning-arbetsyta och beroende resurser i samma region som dina data kan du sänka kostnaderna och förbättra prestandan.
För hybridmolnscenarier som de som använder Azure ExpressRoute kan det ibland vara mer kostnadseffektivt att flytta alla resurser till Azure för att optimera nätverkskostnader och svarstider.
Ta bort misslyckade distributioner
Hanterade onlineslutpunkter använder virtuella datorer för distributionerna. Om du skickade en begäran om att skapa en onlinedistribution och den misslyckades kan begäran ha passerat fasen när beräkningen skapas. I så fall skulle den misslyckade distributionen medföra avgifter. När du är klar med felsökningen eller undersökningen av felet tar du bort de misslyckade distributionerna för att spara kostnaden.