Upgraden naar v2

De v2 REST API's van Azure Machine Learning, de Azure CLI-extensie en de Python SDK introduceren consistentie en een set nieuwe functies om de levenscyclus van machine learning in productie te versnellen. Dit artikel bevat een overzicht van een upgrade naar v2 met aanbevelingen om u te helpen beslissen over v1, v2 of beide.

Vereisten

  • Algemene bekendheid met Azure Machine Learning en de v1 Python SDK.
  • Begrijpen wat v2 is?

Moet ik v2 gebruiken?

Gebruik v2 als u een nieuw machine learning-project of een nieuwe werkstroom start. Gebruik v2 als u de nieuwe functies wilt gebruiken die in v2 worden aangeboden. De functies zijn onder andere:

  • Beheerde deductie
  • Herbruikbare onderdelen in pijplijnen
  • Verbeterde planning van pijplijnen
  • Verantwoordelijk AI-dashboard
  • Register van assets

Een nieuw v2-project kan bestaande v1-resources, zoals werkruimten en berekeningen en bestaande assets, zoals modellen en omgevingen die zijn gemaakt met v1, opnieuw gebruiken.

Enkele functie-hiaten in v2 zijn:

  • Spark-ondersteuning in taken: dit is momenteel in preview in v2.
  • Publicatietaken (pijplijnen in v1) als eindpunten. U kunt echter pijplijnen plannen zonder te publiceren.
  • Ondersteuning voor SQL/databasegegevensarchieven.
  • De mogelijkheid om klassieke vooraf samengestelde onderdelen te gebruiken in de ontwerpfunctie met v2.

Vervolgens moet u ervoor zorgen dat de functies die u nodig hebt in v2 voldoen aan de vereisten van uw organisatie, zoals algemeen beschikbaar zijn.

Belangrijk

Nieuwe functies in Azure Machine Learning worden alleen gestart in v2.

Welke v2-API moet ik gebruiken?

In v2-interfaces via REST API, CLI en Python SDK zijn beschikbaar. De interface die u moet gebruiken, is afhankelijk van uw scenario en voorkeuren.

API Opmerkingen
REST De minste afhankelijkheden en overhead. Gebruik dit voor het bouwen van toepassingen op Azure Machine Learning als platform, rechtstreeks in programmeertalen zonder dat er een SDK is opgegeven of per persoonlijke voorkeur.
CLI Aanbevolen voor automatisering met CI/CD of per persoonlijke voorkeur. Maakt snelle iteratie mogelijk met YAML-bestanden en eenvoudige scheiding tussen Azure Machine Learning en ML-modelcode.
Python SDK Aanbevolen voor gecompliceerde scripting (bijvoorbeeld programmatisch genereren van grote pijplijntaken) of per persoonlijke voorkeur. Maakt snelle iteratie met YAML-bestanden of -ontwikkeling alleen mogelijk in Python.

Toewijzing van Python SDK v1 naar v2

Zie elk van de volgende artikelen voor een vergelijkingscodetoewijzing voor SDK v1 versus v2.

Resources en assets Artikel
Werkplek Werkruimtebeheer in SDK v1 en SDK v2
Gegevensarchief Gegevensarchiefbeheer in SDK v1 en SDK v2
Gegevens Gegevensassets in SDK v1 en v2
Compute Compute-beheer in SDK v1 en SDK v2
Training Een script uitvoeren
Training Lokale uitvoeringen
Training Hyperparameterafstemming
Training Parallelle uitvoering
Training Pijplijnen
Training AutoML
Modellen Modelbeheer in SDK v1 en SDK v2
Implementatie Implementatie-eindpunten upgraden naar SDK v2

Resources en assets in v1 en v2

In deze sectie vindt u een overzicht van specifieke resources en assets in Azure Machine Learning. Zie het conceptartikel voor elke entiteit voor meer informatie over hun gebruik in v2.

Werkplek

Werkruimten hoeven niet te worden bijgewerkt met v2. U kunt dezelfde werkruimte gebruiken, ongeacht of u v1 of v2 gebruikt.

Als u werkruimten maakt met automatisering, kunt u overwegen om de code voor het maken van een werkruimte naar v2 te upgraden. Doorgaans worden Azure-resources beheerd via Azure Resource Manager (en Bicep) of vergelijkbare hulpprogramma's voor het inrichten van resources. U kunt ook de CLI-bestanden (v2) en YAML-bestanden gebruiken.

Zie Werkruimtebeheer in SDK v1 en SDK v2 voor een vergelijking van SDK v1- en v2-code.

Belangrijk

Als uw werkruimte gebruikmaakt van een privé-eindpunt, wordt de v1_legacy_mode vlag automatisch ingeschakeld, waardoor het gebruik van v2-API's wordt voorkomen. Zie hoe u netwerkisolatie configureert met v2 voor meer informatie.

Verbinding maken ion (werkruimteverbinding in v1)

Werkruimteverbindingen van v1 blijven behouden in de werkruimte en zijn volledig beschikbaar met v2.

Zie Werkruimtebeheer in SDK v1 en SDK v2 voor een vergelijking van SDK v1- en v2-code.

Gegevensarchief

Gegevensopslagtypen voor objectopslag die zijn gemaakt met v1, zijn volledig beschikbaar voor gebruik in v2. Databasegegevensarchieven worden niet ondersteund; exporteren naar objectopslag (meestal Azure Blob) is het aanbevolen migratiepad.

Zie Datastore-beheer in SDK v1 en SDK v2 voor een vergelijking van SDK v1- en v2-code.

Gegevens (gegevenssets in v1)

De naam van gegevenssets wordt gewijzigd in gegevensassets. Achterwaartse compatibiliteit wordt geboden, wat betekent dat u V1-gegevenssets in V2 kunt gebruiken. Wanneer u een V1-gegevensset in een V2-taak gebruikt, ziet u dat deze automatisch als volgt worden toegewezen aan V2-typen:

  • V1 FileDataset = V2-map (uri_folder)
  • V1 TabularDataset = V2 Table (mltable)

Er moet worden opgemerkt dat compatibiliteit niet is opgegeven, wat betekent dat u geen V2-gegevensassets in V1 kuntgebruiken.

In dit artikel wordt meer besproken over het verwerken van gegevens in v2 - Gegevens lezen en schrijven in een taak

Zie Gegevensassets in SDK v1 en v2 voor een vergelijking van SDK v1- en v2-code.

Compute

Berekening van het type AmlCompute en ComputeInstance zijn volledig beschikbaar voor gebruik in v2.

Zie Compute-beheer in SDK v1 en SDK v2 voor een vergelijking van SDK v1- en v2-code.

Taken (experimenten, uitvoeringen, pijplijnen in v1)

In v2 worden 'experimenten', 'uitvoeringen' en 'pijplijnen' als taken samengevoegd. Een taak heeft een type. De meeste taken zijn command taken die een opdracht uitvoeren, zoals python main.py. Wat in een taak wordt uitgevoerd, is agnostisch voor elke programmeertaal, zodat u scripts kunt uitvoeren, interpreters kunt aanroepen bashpython , een aantal curl opdrachten kunt uitvoeren of iets anders. Een ander veelvoorkomend type taak is pipeline, waarmee onderliggende taken worden gedefinieerd die mogelijk invoer-/uitvoerrelaties hebben, waardoor een gerichte acyclische grafiek (DAG) ontstaat.

Zie voor een vergelijking van SDK v1- en v2-code

Ontwerper

U kunt designer gebruiken om pijplijnen te bouwen met behulp van uw eigen aangepaste v2-onderdelen en de nieuwe vooraf gemaakte onderdelen uit het register. In deze situatie kunt u v1- of v2-gegevensassets in uw pijplijn gebruiken.

U kunt de ontwerpfunctie blijven gebruiken om pijplijnen te bouwen met behulp van klassieke vooraf gedefinieerde onderdelen en v1-gegevenssettypen (tabellair, bestand). U kunt geen bestaande vooraf samengestelde ontwerponderdelen met v2-gegevensassets gebruiken.

U kunt geen pijplijn bouwen met zowel bestaande vooraf samengestelde ontwerponderdelen als aangepaste v2-onderdelen.

Model

Modellen die zijn gemaakt op basis van v1, kunnen worden gebruikt in v2.

Zie Modelbeheer in SDK v1 en SDK v2 voor een vergelijking van SDK v1- en v2-code

Eindpunt en implementatie (eindpunt en webservice in v1)

Met SDK/CLI v1 kunt u modellen implementeren in ACI of AKS als webservices. Uw bestaande v1-modelimplementaties en webservices blijven werken zoals ze zijn, maar het gebruik van SDK/CLI v1 voor het implementeren van modellen in ACI of AKS als webservices wordt nu beschouwd als verouderd. Voor nieuwe modelimplementaties wordt u aangeraden een upgrade uit te voeren naar v2. In v2 bieden we beheerde eindpunten of Kubernetes-eindpunten aan. De volgende tabel begeleidt onze aanbeveling:

Eindpunttype in v2 Upgraden van Opmerkingen
Lokaal ACI Snelle test van modelimplementatie lokaal; niet voor productie.
Beheerd online-eindpunt ACI, AKS Infrastructuur voor beheerde modelimplementatie op ondernemingsniveau met bijna realtime antwoorden en grootschalige schaalaanpassing voor productie.
Beheerd batch-eindpunt ParallelRunStep in een pijplijn voor batchgewijs scoren Infrastructuur voor beheerde modelimplementatie op bedrijfsniveau met grootschalige parallelle batchverwerking voor productie.
Azure Kubernetes Service (AKS) ACI, AKS Beheer uw eigen AKS-cluster(s) voor modelimplementatie, wat flexibiliteit en gedetailleerde controle biedt ten koste van IT-overhead.
Azure Arc Kubernetes N.v.t. Beheer uw eigen Kubernetes-cluster(s) in andere clouds of on-premises, wat flexibiliteit en gedetailleerde controle biedt ten koste van IT-overhead.

Zie Implementatie-eindpunten upgraden naar SDK v2 voor een vergelijking van SDK v1- en v2-code. Zie ons artikel en blog voor migratiestappen van uw bestaande ACI-webservices naar beheerde online-eindpunten.

Omgeving

Omgevingen die zijn gemaakt op basis van v1, kunnen worden gebruikt in v2. In v2 hebben omgevingen nieuwe functies, zoals het maken vanuit een lokale Docker-context.

Geheimen beheren

Het beheer van Key Vault-geheimen verschilt aanzienlijk in V2 ten opzichte van V1. De V1-set_secret- en get_secret SDK-methoden zijn niet beschikbaar in V2. In plaats daarvan moet directe toegang worden gebruikt met key Vault-clientbibliotheken.

Zie Verificatiereferentiegeheimen gebruiken in Azure Machine Learning-trainingstaken voor meer informatie over Key Vault.

Scenario's in de levenscyclus van machine learning

Er zijn enkele scenario's die gebruikelijk zijn in de levenscyclus van machine learning met behulp van Azure Machine Learning. We bekijken enkele en geven algemene aanbevelingen voor het uitvoeren van een upgrade naar v2.

Azure-configuratie

Azure raadt Azure Resource Manager-sjablonen (vaak via Bicep voor gebruiksgemak) aan om resources te maken. Hetzelfde is een goede benadering voor het maken van Azure Machine Learning-resources.

Als uw team alleen Gebruikmaakt van Azure Machine Learning, kunt u overwegen om de werkruimte en eventuele andere resources in te richten via YAML-bestanden en CLI.

Prototypemodellen

We raden v2 aan voor prototypemodellen. U kunt overwegen om de CLI te gebruiken voor een interactief gebruik van Azure Machine Learning, terwijl uw modeltrainingscode Python of een andere programmeertaal is. U kunt ook een volledige stack-benadering gebruiken met Python, uitsluitend met behulp van de Azure Machine Learning SDK of een gemengde benadering met de Azure Machine Learning Python SDK en YAML-bestanden.

Training van productiemodel

We raden v2 aan voor training van productiemodellen. Taken consolideren de terminologie en bieden een set consistentie waarmee u eenvoudiger kunt overstappen tussen typen (bijvoorbeeld command naar sweep) en een GitOps-vriendelijk proces voor het serialiseren van taken in YAML-bestanden.

Met v2 moet u uw machine learning-code scheiden van de code van het besturingsvlak. Deze scheiding maakt eenvoudigere iteratie mogelijk en maakt een eenvoudigere overgang tussen lokale en cloud mogelijk. U wordt ook aangeraden MLflow te gebruiken voor het bijhouden en vastleggen van modellen. Zie het conceptartikel over MLflow voor meer informatie.

Implementatie van productiemodel

We raden v2 aan voor implementatie van productiemodellen. Beheerde eindpunten abstraheren de IT-overhead en bieden een krachtige oplossing voor het implementeren en scoren van modellen, zowel voor onlinescenario's (bijna realtime) als batchscenario's (zeer parallelle) scenario's.

Kubernetes-implementaties worden ondersteund in v2 via AKS of Azure Arc, waardoor Azure-cloud- en on-premises implementaties worden ingeschakeld die worden beheerd door uw organisatie.

Machine learning-bewerkingen (MLOps)

Een MLOps-werkstroom omvat doorgaans CI/CD via een extern hulpprogramma. Normaal gesproken wordt een CLI gebruikt in CI/CD, maar u kunt Python ook aanroepen of rechtstreeks REST gebruiken.

De oplossingsversneller voor MLOps met v2 wordt ontwikkeld en https://github.com/Azure/mlops-v2 kan als referentie worden gebruikt of worden gebruikt voor het instellen en automatiseren van de levenscyclus van machine learning.

Een notitie in GitOps met v2

Een belangrijk paradigma met v2 is het serialiseren van machine learning-entiteiten als YAML-bestanden voor broncodebeheer, gitwaardoor betere GitOps-benaderingen mogelijk zijn dan met v1 mogelijk was. U kunt bijvoorbeeld beleid afdwingen waarmee alleen een service-principal die in CI/CD-pijplijnen wordt gebruikt, sommige of alle entiteiten kan maken/bijwerken/verwijderen, zodat wijzigingen een beheerd proces doorlopen, zoals pull-aanvragen met vereiste revisoren. Omdat de bestanden in broncodebeheer YAML zijn, zijn ze eenvoudig te diffen en wijzigingen in de loop van de tijd bij te houden. U en uw team kunnen overwegen om over te schakelen naar dit paradigma wanneer u een upgrade uitvoert naar v2.

U kunt een YAML-weergave van elke entiteit met de CLI verkrijgen via az ml <entity> show --output yaml. Houd er rekening mee dat deze uitvoer door het systeem gegenereerde eigenschappen heeft, die kunnen worden genegeerd of verwijderd.

Moet ik bestaande v1-code upgraden naar v2

U kunt uw bestaande v1-assets opnieuw gebruiken in uw v2-werkstromen. Een model dat in v1 is gemaakt, kan bijvoorbeeld worden gebruikt voor het uitvoeren van beheerde deductie in v2.

Als u desgewenst specifieke onderdelen van uw bestaande v1-code wilt upgraden naar v2, raadpleegt u de vergelijkingskoppelingen in dit document.

Kan ik v1 en v2 samen gebruiken?

v1 en v2 kunnen naast elkaar bestaan in een werkruimte. U kunt uw bestaande assets opnieuw gebruiken in uw v2-werkstromen. Een model dat in v1 is gemaakt, kan bijvoorbeeld worden gebruikt voor het uitvoeren van beheerde deductie in v2. Resources zoals werkruimte, berekening en gegevensopslag werken in v1 en v2, met uitzonderingen. Een gebruiker kan de Python SDK van v1 aanroepen om de beschrijving van een werkruimte te wijzigen. Vervolgens wijzigt u de V2 CLI-extensie opnieuw. Taken (experimenten/uitvoeringen/pijplijnen in v1) kunnen vanuit de v1- of v2 Python SDK naar dezelfde werkruimte worden verzonden. Een werkruimte kan zowel v1- als v2-implementatie-eindpunten hebben.

V1- en v2-code samen gebruiken

Het is niet raadzaam om de v1- en v2 SDK's samen in dezelfde code te gebruiken. Het is technisch mogelijk om v1 en v2 in dezelfde code te gebruiken, omdat ze verschillende Azure-naamruimten gebruiken. Er zijn echter veel klassen met dezelfde naam in deze naamruimten (zoals werkruimte, model) die verwarring kunnen veroorzaken en leesbaarheid en foutopsporing van code lastig kunnen maken.

Belangrijk

Als uw werkruimte gebruikmaakt van een privé-eindpunt, wordt de v1_legacy_mode vlag automatisch ingeschakeld, waardoor het gebruik van v2-API's wordt voorkomen. Zie hoe u netwerkisolatie configureert met v2 voor meer informatie.

Volgende stappen