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.

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 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 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-rekeninstanties worden hier ook opgeslagen.
  • Azure-toepassing Insights: 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 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 installatie vereist. Een rekenproces kan ook worden gebruikt als rekendoel voor trainings- en deductietaken.

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

Zie Trainingsrekendoelen voor meer informatie over trainingsrekendoelen. Zie Implementatiedoelen voor meer informatie over rekendoelen voor implementaties.

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 gebruiken 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 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 training of score van uw machine learning-model plaatsvindt. In de omgeving worden de Python-pakketten, omgevingsvariabelen en software-instellingen rond uw trainings- en scorescripts opgegeven.

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

Experimenten

Werkruimte>Experimenten

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 naam op voor het experiment. Informatie voor de uitvoering wordt opgeslagen onder dat experiment. Als de naam niet bestaat wanneer u een experiment verzendt, wordt 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 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, 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 ML-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 samengesteld als een in-memory object en gebruikt om een uitvoering te verzenden.

Zie Een trainingsuitvoering configureren, bijvoorbeeld configuraties uitvoeren.

Momentopnamen

Werkruimte>Experimenten>Uitvoeren>Momentopname

Wanneer u een uitvoering verzendt, comprimeert Azure Machine Learning de map die het script bevat als zip-bestand en verzendt het naar het rekendoel. Het zip-bestand wordt vervolgens geëxtraheerd 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 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 controleren 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 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, geopend met 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 actieve experimenten op Docker-containers werken.)
    2. Hiermee downloadt u de code.
    3. Hiermee stelt u omgevingsvariabelen en -configuraties in.
    4. Voert gebruikersscripts uit (de codemomentopname 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 deze 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 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. In het onderstaande stroomdiagram vindt deze stap plaats wanneer het rekendoel voor training de metrische gegevens over uitvoering terugschrijft naar Azure Machine Learning vanuit de opslag in de Cosmos DB-database. Clients kunnen Azure Machine Learning aanroepen. Machine Learning haalt op zijn beurt metrische gegevens op uit de Cosmos DB-database en retourneert ze terug naar de client.

Trainingswerkstroom

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, dat inkapselt wat het model tijdens het trainingsproces heeft geleerd.

U kunt een model meenemen dat is getraind buiten Azure Machine Learning. U kunt een model ook 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 frameworkonafhankelijk. 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

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 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 in meerdere bestanden is opgeslagen, 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 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 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 instantiëring 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 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 installatiekopieën hebben een http-eindpunt met 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 Azure.

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 in de vorige stap is gemaakt.
  • Details van scoreaanvragen worden opgeslagen in Application Insights, dat zich in het abonnement van de gebruiker bevindt.
  • Telemetrie wordt ook gepusht naar het Microsoft Azure-abonnement.

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, waarmee meerdere waarden tegelijk worden verwerkt en de resultaten na voltooiing worden opgeslagen 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 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 is een uitbreiding voor 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 beheren die machine learning-fasen samenvoegen. Een pijplijn kan bijvoorbeeld gegevensvoorbereiding, modeltraining, modelimplementatie en deductie-/scorefasen bevatten. 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 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-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

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

Volgende stappen

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