Delen via


Hoe Azure Machine Learning werkt: resources en assets

VAN TOEPASSING OP:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (current)

Dit artikel is van toepassing op de tweede versie van de Azure Machine Learning CLI en Python SDK v2. Zie Voor versie 1 (v1) hoe Azure Machine Learning werkt: Architectuur en concepten (v1).

Azure Machine Learning bevat verschillende resources en assets waarmee u uw machine learning-taken kunt uitvoeren. Deze resources en assets zijn nodig om een taak uit te voeren.

  • Resources: installatie- of infrastructuurbronnen die nodig zijn om een machine learning-werkstroom uit te voeren. Resources zijn onder andere:
  • Assets: gemaakt met Azure Machine Learning-opdrachten of als onderdeel van een trainings-/scoreuitvoering. Assets zijn versiebeheer en kunnen worden geregistreerd in de Azure Machine Learning-werkruimte. Dit zijn onder andere:

Dit document biedt een kort overzicht van deze resources en assets.

Vereisten

De Python SDK-codevoorbeelden in dit artikel gebruiken:

  1. Installeer de Python SDK v2.

  2. Maak een verbinding met uw Azure Machine Learning-abonnement. De voorbeelden zijn allemaal afhankelijk ml_clientvan . Als u een werkruimte wilt maken, heeft de verbinding geen werkruimtenaam nodig, omdat u er mogelijk nog geen hebt. Voor alle andere voorbeelden in dit artikel is vereist dat de naam van de werkruimte is opgenomen in de verbinding.

    # Import required libraries.
    from azure.ai.ml import MLClient
    from azure.ai.ml.entities import Workspace
    from azure.identity import DefaultAzureCredential
    from azure.ai.ml.entities import AmlCompute
    
    # Enter details of your subscription.
    subscription_id = "<SUBSCRIPTION_ID>"
    resource_group = "<RESOURCE_GROUP>"
    
    # Get a handle to the subscription. (Use this if you haven't created a workspace yet.)
    ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group)
    
    # All other examples in this article require that the connection include a workspace name.
    workspace_name = "<WORKSPACE_NAME>"
    ml_client = ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group, workspace_name)
    

Werkplek

Een werkruimte is de resource op het hoogste niveau voor Azure Machine Learning, waarmee u kunt werken met alle artefacten die u maakt wanneer u Azure Machine Learning gebruikt. De werkruimte bewaart een geschiedenis van alle taken, waaronder logboeken, metrische gegevens, uitvoer en een momentopname van uw scripts. De werkruimte slaat verwijzingen op naar resources zoals gegevensarchieven en compute. Het bevat ook alle assets, zoals modellen, omgevingen, onderdelen en gegevensassets.

Een werkruimte maken

Als u een werkruimte wilt maken met behulp van Python SDK v2, kunt u de volgende code gebruiken:

VAN TOEPASSING OP: Python SDK azure-ai-ml v2 (actueel)

# Specify the workspace details.
ws = Workspace(
    name="my_workspace",
    location="eastus",
    display_name="My workspace",
    description="This example shows how to create a workspace",
    tags=dict(purpose="demo"),
)
# Use MLClient to connect to the subscription and resource group and create the workspace.
ml_client.workspaces.begin_create(ws) 

Zie dit Jupyter-notebook voor meer manieren om een Azure Machine Learning-werkruimte te maken met sdk v2.

Zie Azure Machine Learning-werkruimten beheren in de portal of met de Python SDK (v2) voor meer informatie over het maken van een werkruimte.

Berekenen

Een berekening is een aangewezen rekenresource waar u uw taak uitvoert of uw eindpunt host. Azure Machine Learning ondersteunt de volgende typen berekeningen:

  • Rekenproces. Een volledig geconfigureerde en beheerde ontwikkelomgeving in de cloud. U kunt het exemplaar gebruiken als trainings- of deductie berekenen voor ontwikkeling en testen. Het is vergelijkbaar met een virtuele machine in de cloud.
  • Rekencluster. Een beheerde rekeninfrastructuur waarmee u eenvoudig een cluster van CPU- of GPU-rekenknooppunten in de cloud kunt maken.
  • Serverloze berekening. Een rekencluster dat u onderweg opent. Wanneer u serverloze berekeningen gebruikt, hoeft u geen eigen cluster te maken. Alle levenscyclusbeheer voor rekenprocessen wordt offload naar Azure Machine Learning.
  • Inference-cluster Wordt gebruikt voor het implementeren van getrainde machine learning-modellen in Azure Kubernetes Service (AKS). U kunt een Azure Kubernetes Service-cluster maken vanuit uw Azure Machine Learning-werkruimte of een bestaand AKS-cluster koppelen.
  • Gekoppelde rekenkracht. U kunt uw eigen rekenresources koppelen aan uw werkruimte en deze gebruiken voor training en deductie.

Een rekenresource maken

Als u een rekencluster wilt maken met behulp van Python SDK v2, kunt u de volgende code gebruiken:

VAN TOEPASSING OP: Python SDK azure-ai-ml v2 (actueel)

from azure.ai.ml.entities import AmlCompute
cluster_basic = AmlCompute(
    name="basic-example",
    type="amlcompute",
    size="STANDARD_DS3_v2",
    location="westus",
    min_instances=0,
    max_instances=2,
    idle_time_before_scale_down=120,
)
ml_client.begin_create_or_update(cluster_basic)

Zie dit Jupyter-notebook voor meer manieren om berekeningen te maken met sdk v2.

Zie voor meer gedetailleerde informatie over het maken van rekenkracht:

Gegevensarchief

Azure Machine Learning-gegevensarchieven bewaren de verbindingsgegevens voor uw gegevensopslag in Azure veilig, zodat u deze niet hoeft te codeeren in uw scripts. U kunt een gegevensarchief registreren en maken om eenvoudig verbinding te maken met uw opslagaccount en toegang te krijgen tot de gegevens in uw onderliggende opslagservice. CLI v2 en SDK v2 ondersteunen de volgende typen cloudopslagservices:

  • Azure Blob-container
  • Azure-bestandsdeling
  • Azure Data Lake Storage
  • Azure Data Lake Storage Gen2

Een gegevensarchief maken

Als u een gegevensarchief wilt maken met behulp van Python SDK v2, kunt u de volgende code gebruiken:

VAN TOEPASSING OP: Python SDK azure-ai-ml v2 (actueel)

import AzureBlobDatastore

blob_datastore1 = AzureBlobDatastore(
    name="blob_example",
    description="Datastore pointing to a blob container.",
    account_name="mytestblobstore",
    container_name="data-container",
    credentials={
        "account_key": "XXXxxxXXXxXXXXxxXXXXXxXXXXXxXxxXxXXXxXXXxXXxxxXXxxXXXxXxXXXxxXxxXXXXxxxxxXXxxxxxxXXXxXXX"
    },
)
ml_client.create_or_update(blob_datastore1)

Zie dit Jupyter-notebook voor meer manieren om gegevensarchieven te maken met sdk v2.

Zie Gegevensassets maken en beheren voor meer informatie over het gebruik van een gegevensarchief.

Modelleren

Azure Machine Learning-modellen bestaan uit een of meer binaire bestanden die een machine learning-model en eventuele bijbehorende metagegevens vertegenwoordigen. Modellen kunnen worden gemaakt op basis van een lokaal of extern bestand of een lokale map. Voor externe locaties httpswasbs en azureml locaties worden ondersteund. Het gemaakte model wordt bijgehouden in de werkruimte onder de opgegeven naam en versie. Azure Machine Learning ondersteunt drie typen opslagindelingen voor modellen:

  • custom_model
  • mlflow_model
  • triton_model

Een model maken in het modelregister

Met modelregistratie kunt u uw modellen opslaan en versien in de Azure-cloud, in uw werkruimte. Het modelregister helpt u bij het organiseren en bijhouden van uw getrainde modellen.

Zie Werken met modellen in Azure Machine Learning voor meer informatie over het maken van modellen in het register.

Omgeving

Een Azure Machine Learning-omgeving is een inkapseling van de omgeving waarin uw machine learning-taak plaatsvindt. Hiermee geeft u de softwarepakketten, omgevingsvariabelen en software-instellingen op voor uw trainings- en scorescripts. Omgevingen zijn beheerde en versiebeheerbare entiteiten in uw Machine Learning-werkruimte. Omgevingen maken reproduceerbare, controleerbare en draagbare machine learning-werkstromen mogelijk voor verschillende berekeningen.

Typen omgevingen

Azure Machine Learning ondersteunt twee soorten omgevingen: gecureerd en aangepast.

Gecureerde omgevingen worden geleverd door Azure Machine Learning en zijn standaard beschikbaar in uw werkruimte. Ze zijn bedoeld om als zodanig te worden gebruikt, ze bevatten verzamelingen python-pakketten en -instellingen om u te helpen aan de slag te gaan met verschillende machine learning-frameworks. Deze vooraf gemaakte omgevingen maken ook snellere implementatietijd mogelijk. Zie het artikel over gecureerde omgevingen voor een volledige lijst.

In aangepaste omgevingen bent u verantwoordelijk voor het instellen van uw omgeving en het installeren van pakketten of eventuele andere afhankelijkheden die uw trainings- of scorescript op de berekening nodig heeft. Met Azure Machine Learning kunt u uw eigen omgeving maken met behulp van:

  • Een Docker-image.
  • Een basis Docker-image met een Conda YAML-bestand voor verdere aanpassingen.
  • Een Docker-buildcontext.

Een aangepaste Azure Machine Learning-omgeving maken

Zie Een omgeving maken voor informatie over het maken van een omgeving met behulp van Python SDK v2.

Zie dit Jupyter-notebook voor meer manieren om aangepaste omgevingen te maken met SDK v2.

Zie Omgevingen maken en beheren in Azure Machine Learning voor meer informatie over omgevingen.

Gegevens

Met Azure Machine Learning kunt u werken met verschillende typen gegevens:

  • URI's (een locatie in lokale opslag of cloudopslagruimte)
    • uri_folder
    • uri_file
  • Tabellen (een abstractie van tabellaire gegevens)
    • mltable
  • Primitieven
    • string
    • boolean
    • number

Voor de meeste scenario's gebruikt u URI's (uri_folder en uri_file) naar een locatie in de opslag die u eenvoudig kunt toewijzen aan het bestandssysteem van een rekenknooppunt in een taak door de opslag te koppelen of te downloaden naar het knooppunt.

mltable is een abstractie voor tabelgegevens die worden gebruikt voor AutoML-taken, parallelle taken en enkele geavanceerde scenario's. Als u Azure Machine Learning net gaat gebruiken en geen AutoML gebruikt, raden we u ten zeerste aan om te beginnen met URI's.

Onderdeel

Een Azure Machine Learning-onderdeel is een zelfstandig stukje code dat één stap in een machine learning-pijplijn voltooit. Onderdelen zijn de bouwstenen van geavanceerde machine learning-pijplijnen. Onderdelen kunnen taken uitvoeren zoals gegevensverwerking, modeltraining en modelscore. Een onderdeel is vergelijkbaar met een functie: het heeft een naam en parameters, verwacht invoer en retourneert uitvoer.