Share via


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 deze samenwerken om te helpen bij het bouwen, implementeren en onderhouden van machine learning-modellen.

Werkruimte

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

Diagram: Azure Machine Learning-architectuur van een werkruimte en de bijbehorende onderdelen

De werkruimte is de centrale plaats voor het volgende:

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

  • Azure Container Registry (ACR): Registreert Docker-containers die u gebruikt tijdens de training en wanneer u een model implementeert. Om de kosten te minimaliseren, wordt ACR alleen gemaakt wanneer implementatie-installatiekopieën worden gemaakt.
  • Azure Storage-account: wordt gebruikt als het standaardgegevensarchief voor de werkruimte. Jupyter-notebooks die worden gebruikt met uw Azure Machine Learning-rekenexemplaren worden hier ook opgeslagen.
  • Azure-toepassing Insights: Hiermee worden bewakingsgegevens over uw modellen opgeslagen.
  • 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 elke machine of set computers 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:

  • Rekenproces: een rekenproces is een VM 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 beginnen met het uitvoeren van voorbeeldnotebooks zonder dat installatie is vereist. Een rekenproces kan ook worden gebruikt als rekendoel voor trainings- en deductietaken.

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

Zie Trainingsrekendoelen voor meer informatie over het trainen van rekendoelen. Zie Implementatiedoelen voor meer informatie over rekendoelen voor implementatie.

Gegevenssets en gegevensarchieven

Azure Machine Learning-gegevenssets maken het gemakkelijker om uw gegevens te openen en ermee te 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 op de bestaande locatie blijven, 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 van het gebruik van gegevenssets.

Gegevenssets gebruiken gegevensopslag om veilig verbinding te maken met uw Azure Storage-services. Gegevensarchieven slaan verbindingsinformatie op zonder dat uw verificatiereferenties en de integriteit van uw oorspronkelijke gegevensbron in gevaar worden gebracht. Ze slaan verbindingsgegevens op, zoals uw abonnements-id en tokenautorisatie in uw Key Vault die zijn gekoppeld aan de werkruimte, zodat u veilig toegang hebt tot uw opslag zonder dat u ze in uw script hoeft te codeken.

Omgevingen

Werkruimte>Omgevingen

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 gebruiken voor codevoorbeelden.

Experimenten

Werkruimte>Experimenten

Een experiment is een groepering van veel uitvoeringen van een opgegeven script. Het behoort altijd tot 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 verzendt, 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 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 worden geregistreerd 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, voorafgaand aan 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

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 Machine Learning-omgeving op te geven waarop moet worden uitgevoerd, 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 opgeslagen in een bestand in de map die uw trainingsscript bevat. Het kan ook worden geconstrueerd als een in-memory object en worden gebruikt om een uitvoering te verzenden.

Zie Een trainingsuitvoering configureren voor voorbeeldconfiguraties.

Momentopnamen

Werkruimte>Experimenten>Uitvoeren>Momentopname

Wanneer u een uitvoering verzendt, comprimeert Azure Machine Learning de map die het script bevat als een zip-bestand en verzendt deze 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 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 standaarduitvoeringsgegevens 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 negeerbestand (.gitignore of .amlignore) in de map. Voeg de bestanden en mappen toe die u wilt uitsluiten van dit bestand. Zie 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 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 is opgeslagen in de vorige sectie.

  • Azure Machine Learning maakt een uitvoerings-id (optioneel) en een Machine Learning-servicetoken, 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 onbeheerd 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:
    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 op Docker-containers werkt.)
    2. Hiermee downloadt u de code.
    3. Hiermee stelt u omgevingsvariabelen en -configuraties in.
    4. Hiermee voert u gebruikersscripts uit (de codemomentopname die in de vorige sectie is vermeld).
    • Machine Learning Compute, toegankelijk via een door de werkruimte beheerde identiteit. Omdat Machine Learning Compute een beheerd rekendoel is (dat wil gezegd, het wordt beheerd door Microsoft), wordt het uitgevoerd onder uw Microsoft-abonnement.
    1. De externe Docker-constructie wordt gestart, indien nodig.
    2. Beheercode wordt geschreven naar de Azure Files-share van de gebruiker.
    3. De container wordt gestart met een eerste opdracht. Dat wil gezegd, beheercode zoals beschreven in de vorige stap.
  • Nadat de uitvoering is voltooid, kunt u query's uitvoeren op uitvoeringen en metrische gegevens. In het onderstaande stroomdiagram vindt deze stap plaats wanneer het trainingsrekendoel de metrische gegevens van 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 naar de client.

Trainingswerkstroom

Modellen

Eenvoudig gezegd is een model een stukje code dat een invoer neemt en uitvoer produceert. Het maken van een machine learning-model omvat het selecteren van een algoritme, het voorzien van gegevens en het afstemmen van hyperparameters. Training is een iteratief proces dat een getraind model produceert, waarmee wordt ingekapseld wat het model tijdens het trainingsproces heeft geleerd.

U kunt een model meenemen dat buiten Azure Machine Learning is getraind. U kunt ook een model trainen door een uitvoering van een experiment te verzenden naar een rekendoel in Azure Machine Learning. 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 model voor afbeeldingsclassificatie trainen met Azure Machine Learning voor een voorbeeld van het trainen van een model met scikit-learn.

Modelregister

Werkruimte>Modellen

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, wordt ervan uitgegaan dat het een nieuwe versie is. De versie wordt verhoogd en het nieuwe model wordt onder dezelfde naam geregistreerd.

Wanneer u het model registreert, kunt u aanvullende metagegevenstags opgeven en de tags vervolgens 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 deze als één model registreren in uw Azure Machine Learning-werkruimte. Na de registratie kunt u 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 Een afbeeldingsclassificatiemodel 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 voor deductie uit te voeren.
  • Scorecode. Dit script accepteert aanvragen, beoordeelt de aanvragen met behulp van het model en retourneert de resultaten.
  • Configuratie van deductie. De deductieconfiguratie specificeert de omgeving, het invoerscript en andere onderdelen 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 instantiëring van uw model in een webservice die kan worden gehost in de cloud.

Webservice-eindpunt

Wanneer u een model als webservice implementeert, kan het eindpunt worden geïmplementeerd op 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 voor u toegankelijk. Het wordt opgeslagen in uw Application Insights- en opslagaccountexemplaren. Als u automatisch schalen hebt ingeschakeld, wordt uw implementatie automatisch geschaald.

In het volgende diagram ziet u de deductiewerkstroom 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 installatiekopieën 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.

Werkstroom voor deductie

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

Pijplijneindpunten

Met pijplijneindpunten kunt u uw ML-pijplijnen 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 heeft versiebeheer. 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 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 kunnen worden uitgevoerd in verschillende rekendoelen.

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 dure gegevensvoorbereidingsstappen 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-werkstroom werken.

Bewaking en registratie

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 resultaten en details van uw gegevenssets, experimenten, pijplijnen, modellen en eindpunten bekijken. U kunt ook rekenresources en gegevensarchieven in de studio beheren.

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 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.

Volgende stappen

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