Hoe Azure Machine Learning werkt: Architectuur en concepten
Meer informatie over de architectuur en concepten voor Azure Machine Learning. In dit artikel krijgt u een hoog begrip van de onderdelen en hoe deze samenwerken om te helpen bij het bouwen, implementeren en onderhouden van machine learning modellen.
Werkruimte
Een machine learning is de resource op het hoogste niveau voor Azure Machine Learning.
De werkruimte is de centrale plaats voor het volgende:
- Resources beheren die u gebruikt voor het trainen en implementeren van modellen, zoals berekeningen
- Sla assets op die u maakt wanneer u Azure Machine Learning gebruikt, waaronder:
Een werkruimte bevat andere Azure-resources die worden gebruikt door de werkruimte:
- Azure Container Registry (ACR): registreert dockercontainers die u gebruikt tijdens de training en wanneer u een model implementeert. Om de kosten te minimaliseren, wordt ACR alleen gemaakt wanneer er implementatie-installatie images worden gemaakt.
- Azure Storage account:wordt gebruikt als de standaardgegevensstore voor de werkruimte. Jupyter-notebooks die worden gebruikt met uw Azure Machine Learning reken-exemplaren worden hier ook opgeslagen.
- Azure-toepassing Insights:slaat bewakingsinformatie over uw modellen op.
- Azure Key Vault:slaat geheimen op die worden gebruikt door rekendoelen en andere gevoelige informatie die nodig is voor de werkruimte.
U kunt een werkruimte delen met anderen.
Berekent
Een rekendoel is een computer of set machines die u gebruikt om uw trainingsscript uit te voeren of uw service-implementatie te hosten. U kunt uw lokale computer of een externe rekenresource gebruiken als rekendoel. Met rekendoelen kunt u beginnen met trainen op uw lokale computer en vervolgens uitschalen naar de cloud zonder uw trainingsscript te wijzigen.
Azure Machine Learning introduceert twee volledig beheerde virtuele machines (VM's) in de cloud die zijn geconfigureerd voor machine learning taken:
Reken-exemplaar: een reken-exemplaar is een VM met meerdere hulpprogramma's en omgevingen die zijn geïnstalleerd voor machine learning. Het primaire gebruik van een reken-exemplaar is voor uw ontwikkelwerkstation. U kunt beginnen met het uitvoeren van voorbeeldnote notebooks zonder installatie vereist. Een reken-exemplaar kan ook worden gebruikt als rekendoel voor trainings- en deferencingtaken.
Rekenclusters: rekenclusters zijn een cluster van VM's met schaalmogelijkheden voor meerdere knooppunt. Rekenclusters zijn beter geschikt voor rekendoelen voor grote taken en productie. Het cluster wordt automatisch omhoog geschaald wanneer een taak wordt verzonden. Gebruik als een rekendoel voor training of voor de implementatie van dev/test.
Zie Rekendoelen trainen voor meer informatie over trainingsrekendoelen. Zie Implementatiedoelen voor meer informatie over rekendoelen voor implementaties.
Gegevenssets en gegevensstores
Azure Machine Learning gegevenssets kunt u gemakkelijker toegang krijgen tot uw gegevens en persoonsgegevens gebruiken. Door een gegevensset te maken, maakt u een verwijzing naar de locatie van de gegevensbron samen met een kopie van de metagegevens. Omdat de gegevens op de bestaande locatie blijven, worden er geen extra opslagkosten in gebracht en loopt u geen risico op de integriteit van uw gegevensbronnen.
Zie Create and register Azure Machine Learning Datasets (Gegevenssets maken Azure Machine Learning registreren) voor meer informatie. Zie de voorbeeldnotenotes voor meer voorbeelden van het gebruik van gegevenssets.
Gegevenssets gebruiken gegevensopslag om veilig verbinding te maken met uw Azure Storage-services. In gegevensopslag worden verbindingsgegevens opgeslagen zonder dat uw verificatiereferenties en de integriteit van uw oorspronkelijke gegevensbron risico lopen. Ze slaan verbindingsgegevens, zoals uw abonnements-id en tokenautorisatie, op in uw Key Vault die is gekoppeld aan de werkruimte, zodat u veilig toegang hebt tot uw opslag zonder dat u ze in uw script in code moet schrijven.
Omgevingen
Werkruimte > Omgevingen
Een omgeving is de inkapsing van de omgeving waarin het model wordt getraind of machine learning scoren. De omgeving geeft de Python-pakketten, omgevingsvariabelen en software-instellingen rond uw trainings- en scorescripts op.
Zie de sectie Omgevingen beheren van Omgevingen gebruiken voor codevoorbeelden.
Experimenten
Werkruimte > Experimenten
Een experiment is een groepering van veel runs vanuit een opgegeven script. Deze hoort altijd bij een werkruimte. Wanneer u een run indient, geeft u een experimentnaam op. Informatie voor de run wordt opgeslagen onder dat experiment. Als de naam niet bestaat wanneer u een experiment indient, wordt er automatisch een nieuw experiment gemaakt.
Zie Zelfstudie: Uw eerste model trainen voor een voorbeeld van het gebruik van een experiment.
Wordt uitgevoerd
Werkruimte > Experimenten > Uitvoeren
Een uitvoering is één uitvoering van een trainingsscript. Een experiment bevat doorgaans meerdere runs.
Azure Machine Learning registreert alle runs en slaat de volgende informatie op in het experiment:
- Metagegevens over de run (tijdstempel, duur, e.d.)
- Metrische gegevens die door uw script worden geregistreerd
- Uitvoerbestanden die automatisch worden opgehaald door het experiment of expliciet door u zijn geüpload
- Een momentopname van de map die uw scripts bevat, vóór de run
U produceert een uitvoering wanneer u een script voor het trainen van een model indient. Een run kan nul of meer onderliggende runs hebben. De run op het hoogste niveau kan bijvoorbeeld twee onderliggende runs hebben, die elk een eigen onderliggende run kunnen hebben.
Configuraties uitvoeren
Werkruimte > Experimenten > Uitvoeren > Configuratie uitvoeren
Een uitvoeringsconfiguratie definieert hoe een script moet worden uitgevoerd in een opgegeven rekendoel. U gebruikt de configuratie om het script, het rekendoel en de Azure ML-omgeving op te geven die moeten worden uitgevoerd, eventuele gedistribueerde taakspecifieke configuraties en enkele aanvullende eigenschappen. Zie ScriptRunConfigvoor meer informatie over de volledige set configureerbare opties voor runs.
Een uitvoeringsconfiguratie kan worden opgeslagen in een bestand in de map die uw trainingsscript bevat. Of het kan worden samengesteld als een in-memory object en worden gebruikt om een run te verzenden.
Zie Configure a training run (Een trainingsrun configureren) voor bijvoorbeeld runconfiguraties.
Momentopnamen
Werkruimte > Experimenten > Uitvoeren > Momentopname
Wanneer u een run verzendt, Azure Machine Learning de map met het script als zip-bestand gecomprimeerd en naar het rekendoel verzenden. Het zip-bestand wordt vervolgens geëxtraheerd en het script wordt daar uitgevoerd. Azure Machine Learning slaat het zip-bestand ook op als een momentopname als onderdeel van de runrecord. Iedereen met toegang tot de werkruimte kan door een runrecord bladeren en de momentopname downloaden.
Logboekregistratie
Azure Machine Learning registreert automatisch standaard metrische gegevens voor uitvoeren voor u. U kunt echter ook de Python SDK gebruiken om willekeurige metrische gegevens te loggen.
Er zijn meerdere manieren om uw logboeken weer te geven: de uitvoeringsstatus in realtime bewaken of resultaten weergeven na voltooiing. Zie Monitor and view ML run logs (Logboeken bewaken ML uitvoeren) voor meer informatie.
Notitie
Als u wilt voor komen dat er onnodige bestanden in de moment opname worden opgenomen, moet u een bestand ( .gitignore of .amlignore ) in de map negeren. Voeg de bestanden en mappen toe die u wilt uitsluiten van dit bestand. Zie syntaxis en patronen voor voor meer informatie over de syntaxis die in dit bestand moet worden gebruikt .gitignore . Het .amlignore bestand gebruikt dezelfde syntaxis. Als beide bestanden bestaan, .amlignore wordt het bestand gebruikt en .gitignore wordt het bestand ongebruikt.
Git-tracering en -integratie
Wanneer u een trainingsrun start waarbij de bronmap een lokale Git-opslagplaats is, wordt informatie over de opslagplaats opgeslagen in de run history. Dit werkt met uitvoeringen die zijn verzonden met behulp van een scriptrunconfiguratie of ML pijplijn. Het werkt ook voor runs die zijn verzonden vanuit de SDK of Machine Learning CLI.
Zie Git-integratie voor meer informatie Azure Machine Learning.
Trainingswerkstroom
Wanneer u een experiment om een model te trainen, worden de volgende stappen uitgevoerd. Deze worden geïllustreerd in het onderstaande diagram van de trainingswerkstroom:
Azure Machine Learning wordt aangeroepen met de momentopname-id voor de codemomentopname die in de vorige sectie is opgeslagen.
Azure Machine Learning maakt een run-id (optioneel) en een Machine Learning-service-token, die later worden gebruikt door rekendoelen zoals Machine Learning Compute/VM's om te communiceren met de Machine Learning-service.
U kunt een beheerd rekendoel (zoals Machine Learning Compute) of een niet-beheerd rekendoel (zoals VM's) kiezen om trainingstaken uit te voeren. Dit zijn de gegevensstromen voor beide scenario's:
- VM's/HDInsight, toegankelijk via SSH-referenties in een sleutelkluis in het Microsoft-abonnement. Azure Machine Learning voert beheercode uit op het rekendoel dat:
- Bereidt de omgeving voor. (Docker is een optie voor VM's en lokale computers. Zie de volgende stappen voor Machine Learning Compute om te begrijpen hoe het uitvoeren van experimenten op Docker-containers werkt.)
- Downloadt de code.
- Stelt omgevingsvariabelen en configuraties in.
- Voert gebruikersscripts uit (de codemomentopname die in de vorige sectie is vermeld).
- Machine Learning Compute, toegankelijk via een identiteit die door een werkruimte wordt beheerd. Omdat Machine Learning Compute een beheerd rekendoel is (dat wil zeggen, het wordt beheerd door Microsoft), wordt het uitgevoerd onder uw Microsoft-abonnement.
- Indien nodig wordt de externe Docker-constructie van start gaan.
- Beheercode wordt naar de Azure Files van de gebruiker geschreven.
- De container wordt gestart met een eerste opdracht. Dat wil zeggen, beheercode zoals beschreven in de vorige stap.
Nadat de run is voltooid, kunt u query's uitvoeren op runs en metrische gegevens. In het onderstaande stroomdiagram treedt deze stap op wanneer het rekendoel van de training de metrische gegevens van de run terug schrijft naar Azure Machine Learning opslag in de Cosmos DB database. Clients kunnen een Azure Machine Learning. Machine Learning haalt op zijn beurt metrische gegevens op uit Cosmos DB database en retournt deze terug naar de client.
Modellen
In de eenvoudigste vorm is een model een stukje code dat invoer gebruikt en uitvoer produceert. Het maken machine learning model omvat het selecteren van een algoritme, het leveren van gegevens en het afstemmen van hyperparameters. Training is een iteratief proces dat een getraind model produceert, dat inkapseld wat het model tijdens het trainingsproces heeft geleerd.
U kunt een model dat buiten het model is getraind Azure Machine Learning. Of u kunt een model trainen door een uitvoering van een experiment in te dienen bij een rekendoel in Azure Machine Learning. Zodra u een model hebt, registreert u het model in de werkruimte.
Azure Machine Learning is frameworkagnostisch. Wanneer u een model maakt, kunt u elk populair machine learning-framework gebruiken, zoals Scikit-learn, XGBoost, PyTorch, TensorFlow en Chainer.
Zie Zelfstudie: Een afbeeldingsclassificatiemodel trainen met behulp van Scikit-learn voor een voorbeeld van het trainen van een model Azure Machine Learning.
Modelregister
Werkruimte > Modellen
Met het modelregister kunt u alle modellen in uw werkruimte Azure Machine Learning bijhouden.
Modellen worden aangeduid met de naam en versie. Telkens wanneer u een model registreert met dezelfde naam als een bestaand model, gaat het register ervan uit dat het een nieuwe versie is. De versie wordt verhoogd en het nieuwe model wordt geregistreerd onder dezelfde naam.
Wanneer u het model registreert, kunt u aanvullende tags voor metagegevens opgeven en vervolgens de tags gebruiken wanneer u naar modellen zoekt.
Tip
Een geregistreerd model is een logische container voor een of meer bestanden waar uw model uit bestaat. Als u bijvoorbeeld een model hebt dat is opgeslagen in meerdere bestanden, kunt u ze als één model registreren in uw Azure Machine Learning werkruimte. Na de registratie kunt u vervolgens het geregistreerde model downloaden of implementeren en alle geregistreerde bestanden ontvangen.
U kunt een geregistreerd model dat wordt gebruikt door een actieve implementatie, niet verwijderen.
Zie Train an image classification model with Azure Machine Learning (Eenmodel voor afbeeldingsclassificatie trainen met Azure Machine Learning) voor een voorbeeld van het registreren Azure Machine Learning.
Implementatie
U implementeert een geregistreerd model als een service-eindpunt. U hebt de volgende onderdelen nodig:
- Omgeving. Deze omgeving kapselt de afhankelijkheden in die nodig zijn om uw model uit te voeren voor de deferentie.
- Scorecode. Dit script accepteert aanvragen, scores van de aanvragen met behulp van het model en retourneert de resultaten.
- De deference-configuratie. De deferentieconfiguratie geeft de omgeving, het invoerscript en andere onderdelen aan die nodig zijn om het model als een service uit te voeren.
Zie Modellen implementeren met Azure Machine Learning voor meer informatie over Azure Machine Learning.
Eindpunten
Werkruimte > Eindpunten
Een eindpunt is een instantiëring van uw model in een webservice die kan worden gehost in de cloud.
Webservice-eindpunt
Wanneer u een model als een webservice implementeert, kan het eindpunt worden geïmplementeerd op Azure Container Instances, Azure Kubernetes Service of FPGA's. U maakt de service van uw model, script en bijbehorende bestanden. Deze worden in een basiscontainer-afbeelding geplaatst, die de uitvoeringsomgeving voor het model bevat. De afbeelding heeft een HTTP-eindpunt met load-balanced dat scoring-aanvragen ontvangt die naar de webservice worden verzonden.
U kunt Application Insights telemetrie of model-telemetrie inschakelen om uw webservice te bewaken. De telemetriegegevens zijn alleen voor u toegankelijk. Het wordt opgeslagen in uw Application Insights en opslagaccount-exemplaren. Als u automatisch schalen hebt ingeschakeld, schaalt Azure uw implementatie automatisch.
In het volgende diagram ziet u de deferentiewerkstroom voor een model dat is geïmplementeerd als een webservice-eindpunt:
Dit zijn de details:
- De gebruiker registreert een model met behulp van een client zoals de Azure Machine Learning SDK.
- De gebruiker maakt een afbeelding met behulp van een model, een scorebestand en andere modelafhankelijkheden.
- De Docker-afbeelding wordt gemaakt en opgeslagen in Azure Container Registry.
- De webservice wordt geïmplementeerd op het rekendoel (Container Instances/AKS) met behulp van de afbeelding die u in de vorige stap hebt gemaakt.
- Details van scoring-aanvragen worden opgeslagen in Application Insights, dat zich in het abonnement van de gebruiker voordeed.
- Telemetrie wordt ook naar het Microsoft/Azure-abonnement pushen.
Zie Deploy an image classification model in Azure Container Instances (Een afbeeldingsclassificatiemodel implementeren in Azure Container Instances) voor een voorbeeld van het implementeren van een model Azure Container Instances.
Realtime-eindpunten
Wanneer u een getraind model in de ontwerpfunctie implementeert, kunt u het model implementeren als een realtime-eindpunt. Een realtime-eindpunt ontvangt doorgaans één aanvraag via het REST-eindpunt en retourneert een voorspelling in realtime. Dit is in tegenstelling tot batchverwerking, waarbij meerdere waarden tegelijk worden verwerkt en de resultaten na voltooiing worden op slaat in een gegevensstore.
Pijplijneindpunten
Met pijplijn-eindpunten kunt u uw ML pijplijnen programmatisch aanroepen via een REST-eindpunt. Met pijplijn-eindpunten kunt u uw pijplijnwerkstromen automatiseren.
Een pijplijn-eindpunt is een verzameling gepubliceerde pijplijnen. Met deze logische organisatie kunt u meerdere pijplijnen beheren en aanroepen met hetzelfde eindpunt. Voor elke gepubliceerde pijplijn in een pijplijn-eindpunt is versieversie beschikbaar. U kunt een standaardpijplijn voor het eindpunt selecteren of een versie opgeven in de REST-aanroep.
Automation
Azure Machine Learning CLI
De Azure Machine Learning CLI is een uitbreiding op de Azure CLI, een platformoverschrijdende opdrachtregelinterface voor het Azure-platform. Deze extensie biedt opdrachten voor het automatiseren van machine learning activiteiten.
ML pijplijnen
U gebruikt machine learning pijplijnen om werkstromen te maken en te beheren die de machine learning samenbrengen. Een pijplijn kan bijvoorbeeld gegevensvoorbereiding, modeltraining, modelimplementatie en de deference/scoring-fasen bevatten. Elke fase kan meerdere stappen omvatten, die elk zonder toezicht kunnen worden uitgevoerd in verschillende rekendoelen.
Pijplijnstappen kunnen opnieuw worden gebruikt en kunnen worden uitgevoerd zonder de vorige stappen opnieuw uit te voeren als de uitvoer van deze stappen niet is gewijzigd. U kunt een model bijvoorbeeld opnieuw trainen zonder kostbare stappen voor gegevensvoorbereiding opnieuw uit te voeren als de gegevens niet zijn gewijzigd. Met pijplijnen kunnen gegevenswetenschappers ook samenwerken terwijl ze aan afzonderlijke gebieden van een machine learning werken.
Bewaking en registratie
Azure Machine Learning biedt de volgende mogelijkheden voor bewaking en logboekregistratie:
- Voor gegevenswetenschappers kunt u uw experimenten bewaken en gegevens van uw trainingstrainingen in een logboek opslaan. Raadpleeg voor meer informatie de volgende artikelen:
- Voor beheerders kunt u informatie over de werkruimte, gerelateerde Azure-resources en gebeurtenissen, zoals het maken en verwijderen van resources, bewaken met behulp van Azure Monitor. Zie Voor meer informatie How to monitor Azure Machine Learning.
- Voor DevOps of MLOps kunt u informatie bewaken die wordt gegenereerd door modellen die zijn geïmplementeerd als webservices om problemen met de implementaties te identificeren en gegevens te verzamelen die naar de service zijn verzonden. Zie Modelgegevens verzamelen en Bewaken met application Insights voor meer Insights.
Interactie met uw werkruimte
Studio
Azure Machine Learning Studio biedt een webweergave van alle artefacten in uw werkruimte. U kunt de resultaten en details van uw gegevenssets, experimenten, pijplijnen, modellen en eindpunten bekijken. U kunt ook rekenbronnen en gegevensstores beheren in de studio.
In de studio hebt u ook toegang tot de interactieve hulpprogramma's die deel uitmaken van Azure Machine Learning:
- Azure Machine Learning om werkstroomstappen uit te voeren zonder code te schrijven
- Webervaring voor geautomatiseerde machine learning
- Azure Machine Learning notebooks om uw eigen code te schrijven en uit te voeren in geïntegreerde Jupyter Notebook-servers.
- Gegevenslabelprojecten voor het maken, beheren en bewaken van projecten voor het labelen van afbeeldingen of tekst.
Programmeerprogramma's
Belangrijk
Hulpprogramma's die hieronder 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 Supplemental Terms of Use for Microsoft Azure Previews (Aanvullende gebruiksvoorwaarden voor Microsoft Azure-previews) voor meer informatie.
- Interactie met de service in een Python-omgeving met de Azure Machine Learning SDK voor Python.
- Gebruik Azure Machine Learning designer om de werkstroomstappen uit te voeren zonder code te schrijven.
- Gebruik Azure Machine Learning CLI voor automatisering.
Volgende stappen
Als u aan de slag wilt Azure Machine Learning, gaat u naar:

