Funzionamento di Azure Machine Learning: risorse e asset

SI APPLICA A:estensione ml dell'interfaccia della riga di comando di Azure v2 (corrente)Python SDK azure-ai-ml v2 (corrente)

Questo articolo si applica alla seconda versione dell'interfaccia della riga di comando di Azure Machine Learning e python SDK (v2). Per la versione 1 (v1), vedere Funzionamento di Azure Machine Learning: Architettura e concetti (v1)

Azure Machine Learning include diverse risorse e asset che consentono di eseguire le attività di Machine Learning. Queste risorse e asset sono necessari per eseguire qualsiasi processo.

  • Risorse: configurare o infrastrutturare risorse necessarie per eseguire un flusso di lavoro di Machine Learning. Le risorse includono:
  • Asset: creati usando i comandi di Azure Machine Learning o come parte di un'esecuzione di training/assegnazione dei punteggi. Gli asset vengono con versione e possono essere registrati nell'area di lavoro di Azure Machine Learning. Includono:

Questo documento offre una rapida panoramica di queste risorse e risorse.

Prerequisiti

Per usare gli esempi di codice Python SDK in questo articolo:

  1. Installare Python SDK v2

  2. Creare una connessione alla sottoscrizione di Azure Machine Learning. Tutti gli esempi si basano su ml_client. Per creare un'area di lavoro, la connessione non richiede un nome dell'area di lavoro, perché potrebbe non essere ancora disponibile. Tutti gli altri esempi in questo articolo richiedono che il nome dell'area di lavoro sia incluso nella connessione.

    # 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)
    

Area di lavoro

L'area di lavoro è la risorsa di primo livello per Azure Machine Learning, che fornisce una posizione centralizzata da cui gestire tutti gli artefatti creati quando si usa Azure Machine Learning. L'area di lavoro mantiene una cronologia di tutti i processi, inclusi log, metriche, output e uno snapshot degli script. L'area di lavoro archivia i riferimenti a risorse come archivi dati e calcolo. Contiene anche tutti gli asset, ad esempio modelli, ambienti, componenti e asset di dati.

Creare un'area di lavoro

Per creare un'area di lavoro usando Python SDK v2, è possibile usare il codice seguente:

SI APPLICA A: Python SDK azure-ai-ml v2 (corrente)

# 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

Questo notebook di Jupyter illustra altri modi per creare un'area di lavoro di Azure Machine Learning con SDK v2.

Calcolo

Un ambiente di calcolo è una risorsa di calcolo designata in cui si esegue il processo o si ospita l'endpoint. Azure Machine Learning supporta i tipi di calcolo seguenti:

  • Istanza di calcolo: un ambiente di sviluppo completamente configurato e gestito nel cloud. È possibile usare l'istanza come calcolo di training o inferenza per lo sviluppo e il test. È simile a una macchina virtuale nel cloud.
  • Cluster di calcolo: un'infrastruttura di calcolo gestita che consente di creare facilmente un cluster di nodi di calcolo CPU o GPU nel cloud.
  • Calcolo serverless : un cluster di calcolo a cui si accede in tempo reale. Quando si usa il calcolo serverless, non è necessario creare un cluster personalizzato. Tutta la gestione del ciclo di vita di calcolo viene scaricata in Azure Machine Learning.
  • Cluster di inferenza: usato per distribuire modelli di Machine Learning sottoposti a training in servizio Azure Kubernetes. È possibile creare un cluster servizio Azure Kubernetes (servizio Azure Kubernetes) dall'area di lavoro di Azure Machine Learning o collegare un cluster del servizio Azure Kubernetes esistente.
  • Calcolo collegato: è possibile collegare le proprie risorse di calcolo all'area di lavoro e usarle per il training e l'inferenza.

Creare un ambiente di calcolo

Per creare un cluster di calcolo usando Python SDK v2, è possibile usare il codice seguente:

SI APPLICA A: Python SDK azure-ai-ml v2 (corrente)

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)

Questo notebook di Jupyter mostra altri modi per creare risorse di calcolo con SDK v2.

Archivio dati

Gli archivi dati di Azure Machine Learning mantengono in modo sicuro le informazioni di connessione all'archiviazione dei dati in Azure, quindi non è necessario codificarli negli script. È possibile registrare e creare un archivio dati per connettersi facilmente all'account di archiviazione e accedere ai dati nel servizio di archiviazione sottostante. L'interfaccia della riga di comando v2 e l'SDK v2 supportano i tipi seguenti di servizi di archiviazione basati sul cloud:

  • Contenitore BLOB di Azure
  • Condivisione file di Azure
  • Azure Data Lake
  • Azure Data Lake Gen2

Creare un archivio dati

Per creare un archivio dati con Python SDK v2, è possibile usare il codice seguente:

SI APPLICA A: Python SDK azure-ai-ml v2 (corrente)

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)

Questo notebook di Jupyter mostra altri modi per creare archivi dati con SDK v2.

Per altre informazioni sull'uso di un archivio dati, vedere Creare e gestire asset di dati.

Modello

I modelli di Azure Machine Learning sono costituiti dai file binari che rappresentano un modello di Machine Learning e i metadati corrispondenti. I modelli possono essere creati da un file o una directory locale o remota. Per le posizioni httpsremote e azuremlwasbs sono supportate le posizioni. Il modello creato verrà monitorato nell'area di lavoro con il nome e la versione specificati. Azure Machine Learning supporta tre tipi di formato di archiviazione per i modelli:

  • custom_model
  • mlflow_model
  • triton_model

Creare un modello nel registro dei modelli

Con la registrazione dei modelli è possibile archiviare i modelli e creare le relative versioni nel cloud di Azure, all'interno della propria area di lavoro. Il Registro modelli consente di organizzare e tenere traccia dei modelli sottoposti a training.

Per altre informazioni su come creare modelli nel Registro di sistema, vedere Usare i modelli in Azure Machine Learning.

Ambiente

Gli ambienti di Azure Machine Learning sono un incapsulamento dell'ambiente in cui si verifica l'attività di Machine Learning. Specificano i pacchetti software, le variabili di ambiente e le impostazioni software per gli script di training e assegnazione dei punteggi. Gli ambienti sono entità gestite e con controllo delle versioni all'interno dell'area di lavoro di Machine Learning. Gli ambienti consentono flussi di lavoro riproducibili, controllabili e portabili di Machine Learning in un'ampia gamma di calcoli.

Tipi di ambiente

Azure Machine Learning supporta due tipi di ambienti: curati e personalizzati.

Gli ambienti curati vengono forniti da Azure Machine Learning e sono disponibili nell'area di lavoro per impostazione predefinita. Destinati a essere usati così come sono, contengono raccolte di pacchetti e impostazioni Python per iniziare a usare diversi framework di Machine Learning. Questi ambienti pre-creati consentono anche tempi di distribuzione più rapidi. Per un elenco completo, vedere l'articolo ambienti curati.

Negli ambienti personalizzati si è responsabili della configurazione dell'ambiente e dell'installazione di pacchetti o di altre dipendenze necessarie per il training o lo script di assegnazione dei punteggi nell'ambiente di calcolo. Azure Machine Learning consente di creare un ambiente personalizzato usando

  • Un'immagine Docker
  • Immagine Docker di base con un YAML con conda per personalizzare ulteriormente
  • Contesto di compilazione docker

Creare un ambiente personalizzato di Azure Machine Learning

Per creare un ambiente usando Python SDK v2, vedere Creare un ambiente.

Questo notebook di Jupyter mostra altri modi per creare ambienti personalizzati con SDK v2.

Dati

Azure Machine Learning consente di usare diversi tipi di dati:

  • URI (una posizione nell'archiviazione locale/cloud)
    • uri_folder
    • uri_file
  • Tabelle (astrazione di dati tabulari)
    • mltable
  • Primitive
    • string
    • boolean
    • number

Per la maggior parte degli scenari, si useranno gli URI (uri_folder e uri_file) - una posizione nell'archiviazione che può essere facilmente mappata al file system di un nodo di calcolo in un processo montando o scaricando lo spazio di archiviazione nel nodo.

mltable è un'astrazione per i dati tabulari da usare per processi AutoML, processi paralleli e alcuni scenari avanzati. Se si sta iniziando a usare Azure Machine Learning e non si usa AutoML, è consigliabile iniziare con gli URI.

Componente

Un componente di Azure Machine Learning è una parte di codice autonoma che esegue un passaggio in una pipeline di Machine Learning. I componenti sono i blocchi predefiniti delle pipeline avanzate di Machine Learning. I componenti possono eseguire attività come l'elaborazione dei dati, il training del modello, il punteggio del modello e così via. Un componente è analogo a una funzione. Ha un nome, parametri, prevede l'input e restituisce l'output.

Passaggi successivi