Azure Machine Learning-kosten beheren en optimaliseren

Meer informatie over het beheren en optimaliseren van kosten bij het trainen en implementeren van machine learning-modellen in Azure Machine Learning.

Gebruik de volgende tips om de kosten van uw rekenresources te beheren en te optimaliseren.

  • Uw trainingsclusters configureren voor automatisch schalen
  • Quota instellen voor uw abonnement en werkruimten
  • Beëindigingsbeleid instellen voor uw trainingstaak
  • Virtuele machines met lage prioriteit gebruiken (VM)
  • Rekeninstanties plannen om automatisch af te sluiten en te starten
  • Een gereserveerde VM-instantie van Azure gebruiken
  • Lokaal trainen
  • Training parallelliseren
  • Bewaar- en verwijderingsbeleid voor gegevens instellen
  • Resources implementeren in dezelfde regio

Zie het plan voor het beheren van kosten voor Azure Machine Learning voor informatie over het plannen en bewaken van kosten.

Belangrijk

Items die in dit artikel zijn gemarkeerd (preview) zijn momenteel beschikbaar als openbare preview. De preview-versie wordt aangeboden zonder Service Level Agreement en wordt niet aanbevolen voor productieworkloads. Misschien worden bepaalde functies niet ondersteund of zijn de mogelijkheden ervan beperkt. Zie Aanvullende gebruiksvoorwaarden voor Microsoft Azure-previews voor meer informatie.

Azure Machine Learning-rekencluster (AmlCompute) gebruiken

Met voortdurend veranderende gegevens hebt u snelle en gestroomlijnde modeltraining en -hertraining nodig om nauwkeurige modellen te onderhouden. Continue training kost echter kosten, met name voor deep learning-modellen op GPU's.

Azure Machine Learning-gebruikers kunnen het beheerde Azure Machine Learning-rekencluster gebruiken, ook wel AmlCompute genoemd. AmlCompute ondersteunt verschillende GPU- en CPU-opties. De AmlCompute wordt intern gehost namens uw abonnement door Azure Machine Learning. Het biedt dezelfde beveiliging, naleving en governance op bedrijfsniveau op Azure IaaS-cloudschaal.

Omdat deze rekengroepen zich in de IaaS-infrastructuur van Azure bevinden, kunt u uw training implementeren, schalen en beheren met dezelfde beveiligings- en nalevingsvereisten als de rest van uw infrastructuur. Deze implementaties vinden plaats in uw abonnement en voldoen aan uw governanceregels. Meer informatie over Azure Machine Learning Compute.

Trainingsclusters configureren voor automatisch schalen

Met automatisch schalen van clusters op basis van de vereisten van uw workload kunt u uw kosten verlagen, zodat u alleen gebruikt wat u nodig hebt.

AmlCompute-clusters zijn ontworpen om dynamisch te schalen op basis van uw workload. Het cluster kan worden geschaald tot het maximum aantal knooppunten dat u configureert. Wanneer elke taak is voltooid, worden knooppunten door het cluster vrijgegeven en geschaald naar het geconfigureerde minimumaantal knooppunten.

Belangrijk

Als u kosten wilt voorkomen wanneer er geen taken worden uitgevoerd, stelt u de minimale knooppunten in op 0. Met deze instelling kan Azure Machine Learning de toewijzing van de knooppunten ongedaan maken wanneer ze niet in gebruik zijn. Elke waarde die groter is dan 0 houdt dat aantal knooppunten actief, zelfs als ze niet in gebruik zijn.

U kunt ook de hoeveelheid tijd configureren die het knooppunt inactief is voordat u omlaag schaalt. Standaard is de niet-actieve tijd voordat omlaag schalen is ingesteld op 120 seconden.

  • Als u minder iteratieve experimenten uitvoert, vermindert u deze tijd om kosten te besparen.
  • Als u zeer iteratieve ontwikkel-/testexperimenten uitvoert, moet u mogelijk de tijd verhogen zodat u niet betaalt voor constant omhoog en omlaag schalen na elke wijziging in uw trainingsscript of -omgeving.

AmlCompute-clusters kunnen worden geconfigureerd voor uw veranderende workloadvereisten in Azure Portal, met behulp van de AmlCompute SDK-klasse, AmlCompute CLI, met de REST API's.

Quota instellen voor resources

AmlCompute wordt geleverd met een quotumconfiguratie (of limiet). Dit quotum is per VM-serie (bijvoorbeeld Dv2-serie, NCv3-serie) en verschilt per regio voor elk abonnement. Abonnementen beginnen met kleine standaardwaarden om aan de slag te gaan, maar gebruik deze instelling om de hoeveelheid Amlcompute-resources te bepalen die beschikbaar zijn om in uw abonnement te worden opgenomen.

Configureer ook het quotum op werkruimteniveau per VM-familie, voor elke werkruimte binnen een abonnement. Hierdoor kunt u gedetailleerdere controle hebben over de kosten die voor elke werkruimte mogelijk worden gemaakt en bepaalde VM-families worden beperkt.

Als u quota wilt instellen op werkruimteniveau, begint u in Azure Portal. Selecteer een werkruimte in uw abonnement en selecteer Gebruik en quota in het linkerdeelvenster. Selecteer vervolgens het tabblad Quota configureren om de quota weer te geven. U hebt bevoegdheden nodig voor het abonnementsbereik om het quotum in te stellen, omdat dit een instelling is die van invloed is op meerdere werkruimten.

Beleid voor automatisch bepalen van taken instellen

In sommige gevallen moet u uw trainingsuitvoeringen configureren om hun duur te beperken of ze vroeg te beëindigen. Wanneer u bijvoorbeeld de ingebouwde hyperparameterafstemming of geautomatiseerde machine learning van Azure Machine Learning gebruikt.

Hier volgen enkele opties die u hebt:

  • Definieer een parameter die wordt aangeroepen max_run_duration_seconds in uw RunConfiguration om de maximale duur te bepalen waarop een uitvoering kan worden uitgebreid op de berekening die u kiest (lokale of externe cloud-compute).
  • Voor het afstemmen van hyperparameters definieert u een beleid voor vroegtijdige beëindiging van een Bandit-beleid, een mediaanbeëindigingsbeleid of een selectiebeleid voor afkapping. Als u hyperparametervegen verder wilt beheren, gebruikt u parameters zoals max_total_runs of max_duration_minutes.
  • Voor geautomatiseerde machine learning stelt u vergelijkbare beëindigingsbeleidsregels in met behulp van de enable_early_stopping vlag. Gebruik ook eigenschappen zoals iteration_timeout_minutes en experiment_timeout_minutes om de maximale duur van een taak of voor het hele experiment te bepalen.

Virtuele machines met lage prioriteit gebruiken

Met Azure kunt u overtollige niet-gebruikte capaciteit gebruiken als VM's met lage prioriteit in virtuele-machineschaalsets, Batch en de Machine Learning-service. Deze toewijzingen zijn vooraf leeg, maar hebben een lagere prijs vergeleken met toegewezen VM's. Over het algemeen raden we u aan vm's met lage prioriteit te gebruiken voor Batch-workloads. U moet ze ook gebruiken waarbij onderbrekingen kunnen worden hersteld via opnieuw indienen (voor Batch-deductie) of via opnieuw opstarten (voor deep learning-training met controlepunten).

VM's met lage prioriteit hebben één quotum, gescheiden van de toegewezen quotumwaarde. Dit is per VM-serie. Meer informatie over AmlCompute-quota.

VM's met lage prioriteit werken niet voor rekeninstanties, omdat ze interactieve notebookervaringen moeten ondersteunen.

Rekenprocessen plannen

Wanneer u een rekenproces maakt, blijft de VIRTUELE machine ingeschakeld, zodat deze beschikbaar is voor uw werk.

  • Schakel inactief afsluiten (preview) in om kosten te besparen wanneer de VIRTUELE machine gedurende een opgegeven periode niet actief is geweest.
  • Of stel een planning in om het rekenproces (preview) automatisch te starten en te stoppen om kosten te besparen wanneer u deze niet wilt gebruiken.

Gereserveerde instanties gebruiken

Een andere manier om geld te besparen op rekenresources is een gereserveerde VM-instantie van Azure. Met deze aanbieding verbindt u zich tot één jaar of drie jaar. Deze kortingen variëren tot 72% van de prijzen voor betalen per gebruik en worden rechtstreeks toegepast op uw maandelijkse Azure-factuur.

Azure Machine Learning Compute ondersteunt inherent gereserveerde instanties. Als u een gereserveerde instantie van één jaar of drie jaar aanschaft, wordt automatisch korting toegepast op uw door Azure Machine Learning beheerde rekenkracht.

Training parallelliseren

Een van de belangrijkste methoden voor het optimaliseren van kosten en prestaties is door de workload te parallelliseren met behulp van een parallel onderdeel in Azure Machine Learning. Met een parallel onderdeel kunt u veel kleinere knooppunten gebruiken om de taak parallel uit te voeren, zodat u horizontaal kunt schalen. Er is een overhead voor parallelle uitvoering. Afhankelijk van de workload en de mate van parallelle uitvoering die kan worden bereikt, is dit mogelijk of niet een optie. Volg deze koppeling voor de ParallelComponent-documentatie voor meer informatie.

Beleid voor het bewaren en verwijderen van gegevens instellen

Telkens wanneer een pijplijn wordt uitgevoerd, worden tussenliggende gegevenssets bij elke stap gegenereerd. Na verloop van tijd nemen deze tussenliggende gegevenssets ruimte in beslag in uw opslagaccount. Overweeg om beleidsregels in te stellen voor het beheren van uw gegevens gedurende de levenscyclus om uw gegevenssets te archiveren en te verwijderen. Zie kosten optimaliseren door Azure Blob Storage-toegangslagen te automatiseren voor meer informatie.

Resources implementeren in dezelfde regio

Berekeningen die zich in verschillende regio's bevinden, kunnen netwerklatentie en hogere kosten voor gegevensoverdracht ervaren. Azure-netwerkkosten worden gemaakt op basis van uitgaande bandbreedte van Azure-datacenters. Implementeer al uw resources in de regio om de netwerkkosten te verlagen. Het inrichten van uw Azure Machine Learning-werkruimte en afhankelijke resources in dezelfde regio als uw gegevens kan helpen de kosten te verlagen en de prestaties te verbeteren.

Voor hybride cloudscenario's zoals scenario's met ExpressRoute is het soms rendabeler om alle resources naar Azure te verplaatsen om de netwerkkosten en latentie te optimaliseren.

Volgende stappen