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 behulp van 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. De Python SDK v2 installeren

  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
    
    # 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 the connection to include workspace name
    workspace_name = "<WORKSPACE_NAME>"
    ml_client = ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group, workspace_name)
    

Werkplek

De werkruimte is de resource op het hoogste niveau voor Azure Machine Learning en biedt een gecentraliseerde werkplek met alle artefacten die u maakt in Azure Machine Learning. 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"),
)

ml_client.workspaces.begin_create(ws) # use MLClient to connect to the subscription and resource group and create workspace

In dit Jupyter-notebook ziet u 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.

Compute

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 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.
  • Deductiecluster : wordt gebruikt voor het implementeren van getrainde machine learning-modellen in Azure Kubernetes Service. U kunt een AKS-cluster (Azure Kubernetes Service) 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 rekenproces maken

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

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

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)

In dit Jupyter-notebook ziet u 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 veilig met uw gegevensopslag in Azure, 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. De CLI v2 en SDK v2 ondersteunen de volgende typen cloudopslagservices:

  • Azure Blob Container
  • Azure-bestandsshare
  • Azure Data Lake
  • Azure Data Lake 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)

Dit Jupyter-notebook toont 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 opslagindeling 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

Azure Machine Learning-omgevingen zijn een inkapseling van de omgeving waarin uw machine learning-taak plaatsvindt. Ze geven de softwarepakketten, omgevingsvariabelen en software-instellingen op rond uw trainings- en scorescripts. De omgevingen zijn beheerde en versie-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 bieden ook een snellere implementatietijd. 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-installatiekopieën
  • Een docker-basisinstallatiekopieën met een Conda YAML om verder aan te passen
  • Een docker-buildcontext

Een aangepaste Azure Machine Learning-omgeving maken

Zie Een omgeving maken met python SDK v2 als u een omgeving wilt maken.

In dit Jupyter-notebook ziet u meer manieren om aangepaste omgevingen te maken met SDK v2.

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

Gegevens

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

  • URI's (een locatie in lokale/cloudopslag)
    • 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) - een locatie in de opslag die eenvoudig kan worden toegewezen 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 moeten 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 zeere aan om te beginnen met URI's.

Onderdeel

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