Hoe Azure Machine Learning werkt: architectuur en concepten (v1)

VAN TOEPASSING OP: Azure CLI ml-extensie v1Python SDK azureml v1

Dit artikel is van toepassing op de eerste versie (v1) van de Azure Machine Learning CLI & SDK. Zie Hoe Azure Machine Learning werkt (v2) voor versie twee (v2).

Meer informatie over de architectuur en concepten voor Azure Machine Learning. In dit artikel krijgt u een algemeen inzicht in de onderdelen en hoe ze samenwerken om u te helpen bij het bouwen, implementeren en onderhouden van machine learning-modellen.

Werkplek

Een machine learning-werkruimte is een resource op het hoogste niveau voor Azure Machine Learning.

Diagram: Azure Machine Learning architecture of a workspace and its components

De werkruimte is de centrale locatie voor het volgende:

Een werkruimte bevat andere Azure-resources die worden gebruikt door de werkruimte:

  • Azure Container Registry (ACR):registreert docker-containers die u tijdens de training gebruikt en wanneer u een model implementeert. Om de kosten te minimaliseren, wordt ACR alleen gemaakt wanneer implementatieinstallatiekopieën worden gemaakt.
  • Azure Storage-account: wordt gebruikt als het standaardgegevensarchief voor de werkruimte. Jupyter-notebooks die worden gebruikt met uw Azure Machine Learning-rekeninstanties worden hier ook opgeslagen.
  • Azure-toepassing Inzichten: slaat bewakingsgegevens 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 als rekendoel gebruiken. 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 in de cloud (VM) die zijn geconfigureerd voor machine learning-taken:

  • Rekenproces: een rekenproces is een VIRTUELE machine die meerdere hulpprogramma's en omgevingen bevat die zijn geïnstalleerd voor machine learning. Het primaire gebruik van een rekenproces is voor uw ontwikkelwerkstation. U kunt voorbeeldnotebooks zonder installatie uitvoeren. Een rekenproces kan ook worden gebruikt als rekendoel voor trainings- en deductietaken.

  • Rekenclusters: Rekenclusters zijn een cluster met VM's met schaalmogelijkheden voor meerdere knooppunten. Rekenclusters zijn beter geschikt voor rekendoelen voor grote taken en productie. Het cluster wordt automatisch opgeschaald wanneer een taak wordt verzonden. Gebruiken als trainingsrekendoel of voor de implementatie van ontwikkelen/testen.

Zie Rekendoelen trainen voor meer informatie over trainingsrekendoelen. Zie Implementatiedoelen voor meer informatie over rekendoelen voor implementatie.

Gegevenssets en gegevensarchieven

Met Azure Machine Learning-gegevenssets kunt u eenvoudiger toegang krijgen tot uw gegevens en ermee werken. 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 zich op de bestaande locatie bevinden, worden er geen extra opslagkosten in rekening gebracht en loopt u geen risico op de integriteit van uw gegevensbronnen.

Zie Azure Machine Learning-gegevenssets maken en registreren voor meer informatie. Zie de voorbeeldnotebooks voor meer voorbeelden met behulp van gegevenssets.

Gegevenssets maken gebruik van een gegevensarchief om veilig verbinding te maken met uw Azure Storage-services. Gegevensarchieven slaan verbindingsgegevens op zonder uw verificatiereferenties en de integriteit van uw oorspronkelijke gegevensbron in gevaar te brengen. Ze slaan verbindingsgegevens op, zoals uw abonnements-id en tokenautorisatie in uw Sleutelkluis die is gekoppeld aan de werkruimte, zodat u veilig toegang hebt tot uw opslag zonder dat u ze in uw script hoeft te codeken.

Omgevingen

Werkruimteomgevingen>

Een omgeving is de inkapseling van de omgeving waarin het trainen of scoren van uw machine learning-model plaatsvindt. In de omgeving worden de Python-pakketten, omgevingsvariabelen en software-instellingen voor uw trainings- en scorescripts opgegeven.

Zie de sectie 'Omgevingen beheren' van Omgevingen beheren voor codevoorbeelden.

Experimenten

Werkruimteexperimenten>

Een experiment is een groepering van veel uitvoeringen vanuit een opgegeven script. Het hoort altijd bij een werkruimte. Wanneer u een uitvoering verzendt, geeft u een experimentnaam op. Informatie voor de uitvoering 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.

Uitvoerbewerkingen

Werkruimteexperimenten>>worden uitgevoerd

Een uitvoering is één uitvoering van een trainingsscript. Een experiment bevat doorgaans meerdere uitvoeringen.

Azure Machine Learning registreert alle uitvoeringen en slaat de volgende informatie op in het experiment:

  • Metagegevens over de uitvoering (tijdstempel, duur, enzovoort)
  • Metrische gegevens die zijn vastgelegd door uw script
  • 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 uitvoering

U produceert een uitvoering wanneer u een script verzendt om een model te trainen. Een uitvoering kan nul of meer onderliggende uitvoeringen hebben. De uitvoering op het hoogste niveau kan bijvoorbeeld twee onderliggende uitvoeringen hebben, die elk een eigen onderliggende uitvoering kunnen hebben.

Configuraties uitvoeren

Uitvoeringsconfiguratie voor werkruimteexperimenten>>>

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 Machine Learning-omgeving op te geven voor uitvoering, eventuele gedistribueerde taakspecifieke configuraties en enkele aanvullende eigenschappen. Zie ScriptRunConfig voor meer informatie over de volledige set configureerbare opties voor uitvoeringen.

Een uitvoeringsconfiguratie kan worden bewaard in een bestand in de map die uw trainingsscript bevat. Het kan ook worden samengesteld als een in-memory object en wordt gebruikt om een uitvoering te verzenden.

Zie Een trainingsuitvoering configureren, bijvoorbeeld om configuraties uit te voeren.

Momentopnamen

Momentopname uitvoeren>van werkruimteexperimenten>>

Wanneer u een uitvoering verzendt, comprimeert Azure Machine Learning de map die het script als een zip-bestand bevat en verzendt het naar het rekendoel. Het zip-bestand wordt vervolgens uitgepakt en het script wordt daar uitgevoerd. Azure Machine Learning slaat het zip-bestand ook op als een momentopname als onderdeel van de uitvoeringsrecord. Iedereen met toegang tot de werkruimte kan door een uitvoeringsrecord bladeren en de momentopname downloaden.

Logboekregistratie

Azure Machine Learning registreert automatisch metrische gegevens voor standaarduitvoeringen voor u. U kunt echter ook de Python SDK gebruiken om willekeurige metrische gegevens te registreren.

Er zijn meerdere manieren om uw logboeken weer te geven: de uitvoeringsstatus in realtime bewaken of resultaten bekijken na voltooiing. Zie Ml-uitvoeringslogboeken bewaken en weergeven voor meer informatie.

Notitie

Als u wilt voorkomen dat onnodige bestanden worden opgenomen in de momentopname, maakt u een genegeerd bestand (.gitignore of .amlignore) in de map. Voeg de bestanden en mappen toe die u wilt uitsluiten van dit bestand. Zie de syntaxis en patronen voor .gitignoremeer informatie over de syntaxis die in dit bestand moet worden gebruikt. Het .amlignore bestand gebruikt dezelfde syntaxis. Als beide bestanden bestaan, wordt het .amlignore bestand gebruikt en wordt het .gitignore bestand niet gebruikt.

Git-tracering en -integratie

Wanneer u een trainingsuitvoering start waarbij de bronmap een lokale Git-opslagplaats is, wordt informatie over de opslagplaats opgeslagen in de uitvoeringsgeschiedenis. Dit werkt met uitvoeringen die zijn verzonden met behulp van een scriptuitvoeringsconfiguratie of ML-pijplijn. Het werkt ook voor uitvoeringen die zijn verzonden vanuit de SDK of Machine Learning CLI.

Zie Git-integratie voor Azure Machine Learning voor meer informatie.

Trainingswerkstroom

Wanneer u een experiment uitvoert om een model te trainen, worden de volgende stappen uitgevoerd. Deze worden geïllustreerd in het onderstaande trainingswerkstroomdiagram:

  • Azure Machine Learning wordt aangeroepen met de momentopname-id voor de codemomentopname die in de vorige sectie is opgeslagen.

  • Azure Machine Learning maakt een uitvoerings-id (optioneel) en een Machine Learning Service-token, dat later wordt 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 onbeheerd rekendoel (zoals VM's) kiezen om trainingstaken uit te voeren. Dit zijn de gegevensstromen voor beide scenario's:

    • VM's/HDInsight, die worden geopend door SSH-referenties in een sleutelkluis in het Microsoft-abonnement. Azure Machine Learning voert beheercode uit op het rekendoel dat:
    1. 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 in Docker-containers werkt.)
    2. Downloadt de code.
    3. Hiermee stelt u omgevingsvariabelen en configuraties in.
    4. Voert gebruikersscripts uit (de momentopname van de code die wordt vermeld in de vorige sectie).
    • Machine Learning Compute, toegankelijk via een door een werkruimte beheerde identiteit. Omdat Machine Learning Compute een beheerd rekendoel is (dat wil gezegd, wordt het beheerd door Microsoft) wordt het uitgevoerd onder uw Microsoft-abonnement.
    1. De externe Docker-bouw wordt gestart, indien nodig.
    2. Beheercode wordt geschreven naar de Azure Files-share van de gebruiker.
    3. De container wordt gestart met een initiële opdracht. Dat wil gezegd, beheercode zoals beschreven in de vorige stap.
  • Nadat de uitvoering is voltooid, kunt u query's uitvoeren en metrische gegevens uitvoeren. In het onderstaande stroomdiagram vindt deze stap plaats wanneer het trainingsrekendoel de metrische gegevens over de uitvoering terugschrijft naar Azure Machine Learning vanuit de opslag in de Azure Cosmos DB-database. Clients kunnen Azure Machine Learning aanroepen. Machine Learning haalt op zijn beurt metrische gegevens op uit de Azure Cosmos DB-database en retourneert deze terug naar de client.

Training workflow

Modellen

Op de eenvoudigste wijze is een model een stukje code dat een invoer gebruikt en uitvoer produceert. Het maken van een machine learning-model omvat het selecteren van een algoritme, het verstrekken van gegevens en het afstemmen van hyperparameters. Training is een iteratief proces dat een getraind model produceert, waarin wordt ingekapseld wat het model tijdens het trainingsproces heeft geleerd.

U kunt een model meenemen dat is getraind buiten Azure Machine Learning. U kunt ook een model trainen door een uitvoering van een experiment naar een rekendoel in Azure Machine Learning te verzenden. Zodra u een model hebt, registreert u het model in de werkruimte.

Azure Machine Learning is frameworkneutraal. 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 Azure Machine Learning voor een voorbeeld van het trainen van een model met Scikit-learn.

Modelregister

Werkruimtemodellen>

Met het modelregister kunt u alle modellen in uw Azure Machine Learning-werkruimte bijhouden.

Modellen worden geïdentificeerd op 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 extra metagegevenstags opgeven en vervolgens de tags gebruiken wanneer u naar modellen zoekt.

Tip

Een geregistreerd model is een logische container voor een of meer bestanden waaruit uw model bestaat. Als u bijvoorbeeld een model hebt dat is opgeslagen in meerdere bestanden, kunt u ze registreren als één model in uw Azure Machine Learning-werkruimte. Na de registratie kunt u het geregistreerde model downloaden of implementeren en alle bestanden ontvangen die zijn geregistreerd.

U kunt een geregistreerd model dat wordt gebruikt door een actieve implementatie niet verwijderen.

Zie Een model voor afbeeldingsclassificatie trainen met Azure Machine Learning voor een voorbeeld van het registreren van een model.

Implementatie

U implementeert een geregistreerd model als een service-eindpunt. U hebt de volgende onderdelen nodig:

  • Omgeving. Deze omgeving bevat de afhankelijkheden die nodig zijn om uw model uit te voeren voor deductie.
  • Scorecode. Dit script accepteert aanvragen, beoordeelt de aanvragen met behulp van het model en retourneert de resultaten.
  • Deductieconfiguratie. De deductieconfiguratie geeft de omgeving, het invoerscript en andere onderdelen op die nodig zijn om het model als een service uit te voeren.

Zie Modellen implementeren met Azure Machine Learning voor meer informatie over deze onderdelen.

Eindpunten

Werkruimte-eindpunten>

Een eindpunt is een instantie van uw model in een webservice die kan worden gehost in de cloud.

Eindpunt van webservice

Wanneer u een model als webservice implementeert, kan het eindpunt worden geïmplementeerd in Azure Container Instances, Azure Kubernetes Service of FPGA's. U maakt de service op basis van uw model, script en bijbehorende bestanden. Deze worden in een basiscontainerinstallatiekopieën geplaatst, die de uitvoeringsomgeving voor het model bevat. De afbeelding heeft een http-eindpunt met gelijke taakverdeling dat scoreaanvragen ontvangt die naar de webservice worden verzonden.

U kunt Application Insights-telemetrie of modeltelemetrie inschakelen om uw webservice te bewaken. De telemetriegegevens zijn alleen toegankelijk voor u. Het wordt opgeslagen in uw Application Insights- en opslagaccountexemplaren. Als u automatisch schalen hebt ingeschakeld, wordt uw implementatie automatisch geschaald in Azure.

In het volgende diagram ziet u de deductiewerkstroom voor een model dat is geïmplementeerd als een webservice-eindpunt:

Hier volgen 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-installatiekopieën worden gemaakt en opgeslagen in Azure Container Registry.
  • De webservice wordt geïmplementeerd op het rekendoel (Container Instances/AKS) met behulp van de installatiekopie die u in de vorige stap hebt gemaakt.
  • Details van scoreaanvragen worden opgeslagen in Application Insights, dat zich in het abonnement van de gebruiker bevindt.
  • Telemetrie wordt ook naar het Microsoft Azure-abonnement gepusht.

Inference workflow

Zie Zelfstudie: Een model trainen en implementeren voor een voorbeeld van het implementeren van een model als een webservice.

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, waarmee meerdere waarden tegelijk worden verwerkt en de resultaten worden opgeslagen na voltooiing in een gegevensarchief.

Pijplijneindpunten

Met pijplijneindpunten kunt u uw ML Pipelines programmatisch aanroepen via een REST-eindpunt. Met pijplijneindpunten kunt u uw pijplijnwerkstromen automatiseren.

Een pijplijneindpunt is een verzameling gepubliceerde pijplijnen. Met deze logische organisatie kunt u meerdere pijplijnen beheren en aanroepen met hetzelfde eindpunt. Elke gepubliceerde pijplijn in een pijplijneindpunt is geversied. U kunt een standaardpijplijn voor het eindpunt selecteren of een versie opgeven in de REST-aanroep.

Automatisering

Azure Machine Learning CLI

De Azure Machine Learning CLI v1 is een uitbreiding op de Azure CLI, een platformoverschrijdende opdrachtregelinterface voor het Azure-platform. Deze extensie biedt opdrachten voor het automatiseren van uw machine learning-activiteiten.

ML-pijplijnen

U gebruikt machine learning-pijplijnen om werkstromen te maken en te beheren die machine learning-fasen samenvoegen. Een pijplijn kan bijvoorbeeld gegevensvoorbereiding, modeltraining, modelimplementatie en deductie-/scorefasen omvatten. Elke fase kan meerdere stappen omvatten, die elk zonder toezicht in verschillende rekendoelen kunnen worden uitgevoerd.

Pijplijnstappen zijn herbruikbaar en kunnen worden uitgevoerd zonder de vorige stappen opnieuw uit te voeren als de uitvoer van deze stappen niet is gewijzigd. U kunt bijvoorbeeld een model 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 werken aan afzonderlijke gebieden van een machine learning-werkstroom.

Controle en logboekregistratie

Azure Machine Learning biedt de volgende mogelijkheden voor bewaking en logboekregistratie:

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 rekenresources en gegevensarchieven beheren in de studio.

In de studio hebt u ook toegang tot de interactieve hulpprogramma's die deel uitmaken van Azure Machine Learning:

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 Aanvullende gebruiksvoorwaarden voor Microsoft Azure-previews voor meer informatie.

Volgende stappen

Als u aan de slag wilt met Azure Machine Learning, raadpleegt u: