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 (VM) gebruiken
  • Rekenprocessen plannen om automatisch af te sluiten en op te starten
  • Een gereserveerde VM-instantie van Azure gebruiken
  • Lokaal trainen
  • Training parallelliseren
  • Beleid voor gegevensretentie en -verwijdering instellen
  • Resources implementeren in dezelfde regio

Zie de handleiding 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 in 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 Supplemental Terms of Use for Microsoft Azure Previews (Aanvullende gebruiksvoorwaarden voor Microsoft Azure-previews) voor meer informatie.

Azure Machine Learning-rekencluster gebruiken (AmlCompute)

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

Azure Machine Learning-gebruikers kunnen gebruikmaken van het beheerde Azure Machine Learning-rekencluster, 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 binnen 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

Door clusters automatisch te schalen 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 omhoog worden geschaald tot het maximum aantal knooppunten dat u configureert. Wanneer elke taak is voltooid, worden knooppunten 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 groter dan 0 houdt dat aantal knooppunten actief, zelfs als ze niet in gebruik zijn.

U kunt ook configureren hoe lang het knooppunt inactief is voordat u omlaag schaalt. Inactieve tijd voor omlaag schalen is standaard ingesteld op 120 seconden.

  • Als u minder iteratieve experimenten uitvoert, vermindert u deze tijd om kosten te besparen.
  • Als u zeer iteratieve ontwikkelings-/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-familie (bijvoorbeeld Dv2-serie, NCv3-serie) en verschilt per regio voor elk abonnement. Abonnementen beginnen met kleine standaardwaarden om u op weg te helpen, maar gebruik deze instelling om de hoeveelheid Amlcompute-resources te bepalen die beschikbaar zijn om in uw abonnement te worden geïmplementeerd.

Configureer ook het quotum op werkruimteniveau per VM-familie voor elke werkruimte binnen een abonnement. Als u dit doet, hebt u meer gedetailleerde controle over de kosten die elke werkruimte mogelijk met zich meebrengt en beperkt u bepaalde VM-families.

Als u quota wilt instellen op werkruimteniveau, begint u in de 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 de duur ervan te beperken of ze vroegtijdig te beëindigen. Bijvoorbeeld wanneer u de ingebouwde hyperparameterafstemming of geautomatiseerde machine learning van Azure Machine Learning gebruikt.

Hier volgen enkele opties die u hebt:

  • Definieer een parameter met de naam max_run_duration_seconds in uw RunConfiguration om te bepalen tot welke maximale duur een uitvoering kan worden uitgebreid op de berekening die u kiest (lokaal of extern berekenen in de cloud).
  • Voor het afstemmen van hyperparameters definieert u een beleid voor vroegtijdige beëindiging van een Bandit-beleid, een mediaan-stopbeleid of een selectiebeleid voor afkapping. Als u hyperparameter-sweeps verder wilt beheren, gebruikt u parameters zoals max_total_runs of max_duration_minutes.
  • Stel voor geautomatiseerde machine learning 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 Low-Priority VM's in virtuele-machineschaalsets, Batch en de Machine Learning-service. Deze toewijzingen zijn preventief, maar hebben een lagere prijs in vergelijking met toegewezen VM's. Over het algemeen raden we u aan Low-Priority-VM's te gebruiken voor Batch-workloads. U moet deze ook gebruiken waar onderbrekingen kunnen worden hersteld door middel van opnieuw verzenden (voor batchdeductie) of opnieuw opstarten (voor deep learning-training met controlepunten).

Low-Priority VM's hebben één quotum, gescheiden van de toegewezen quotumwaarde, per VM-familie. Meer informatie over AmlCompute-quota.

Low-Priority VM's werken niet voor rekeninstanties, omdat ze interactieve notebook-ervaringen moeten ondersteunen.

Rekenprocessen plannen

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

  • Schakel inactief afsluiten (preview) in om kosten te besparen wanneer de VM gedurende een opgegeven periode inactief 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 van plan bent te gebruiken.

Gereserveerde instanties gebruiken

Een andere manier om geld te besparen op rekenresources is gereserveerde VM-instantie van Azure. Met deze aanbieding verbindt u zich tot een termijn van één 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 of drie jaar aanschaft, wordt automatisch korting toegepast op uw beheerde rekenkracht van Azure Machine Learning.

Lokaal trainen

Bij het maken van prototypen en het uitvoeren van trainingstaken die klein genoeg zijn om op uw lokale computer te worden uitgevoerd, kunt u lokaal trainen. Als u de Python-SDK gebruikt, wordt uw script lokaal uitgevoerd als local u uw rekendoel instelt.

Visual Studio Code biedt een volledige omgeving voor het ontwikkelen van uw machine learning-toepassingen. Met behulp van de Visual Studio Code-extensie van Azure Machine Learning en Docker kunt u lokaal fouten opsporen en uitvoeren. Zie Interactieve foutopsporing met Visual Studio Code voor meer informatie.

Training parallelliseren

Een van de belangrijkste methoden voor het optimaliseren van kosten en prestaties is het parallelliseren van de workload met behulp van een parallelle uitvoeringsstap in Azure Machine Learning. Met deze stap 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, kan dit al dan niet een optie zijn. Zie de ParallelRunStep-documentatie voor meer informatie.

Beleid voor het verwijderen van gegevensretentie & instellen

Telkens wanneer een pijplijn wordt uitgevoerd, worden bij elke stap tussenliggende gegevenssets gegenereerd. Na verloop van tijd nemen deze tussenliggende gegevenssets ruimte in uw opslagaccount in beslag. Overweeg 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 in verschillende regio's kunnen te maken hebben met netwerklatentie en hogere kosten voor gegevensoverdracht. Azure-netwerkkosten worden gemaakt door uitgaande bandbreedte van Azure-datacenters. Implementeer al uw resources in de regio om de netwerkkosten te verlagen. Door uw Azure Machine Learning-werkruimte en afhankelijke resources in dezelfde regio als uw gegevens in te richten, kunt u de kosten verlagen en de prestaties verbeteren.

Voor hybride cloudscenario's zoals scenario's die gebruikmaken van ExpressRoute, kan het soms rendabeler zijn om alle resources naar Azure te verplaatsen om de netwerkkosten en latentie te optimaliseren.

Volgende stappen