Condividi tramite


Eseguire modelli di Azure Machine Learning dal Fabric usando endpoint batch (anteprima)

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

Questo articolo spiega come usare le distribuzioni batch di Azure Machine Learning da Microsoft Fabric. Il flusso di lavoro, anche se usa modelli distribuiti negli endpoint batch, supporta anche l'uso di distribuzioni di pipeline batch da Fabric.

Importante

Questa funzionalità è attualmente in anteprima pubblica. Questa versione di anteprima viene fornita senza contratto di servizio, pertanto se ne sconsiglia l’uso per i carichi di lavoro in ambienti di produzione. Alcune funzionalità potrebbero non essere supportate o potrebbero presentare funzionalità limitate.

Per altre informazioni, vedere le Condizioni supplementari per l'uso delle anteprime di Microsoft Azure.

Prerequisiti

Architettura

Azure Machine Learning non può accedere direttamente ai dati archiviati in OneLake di Fabric. È tuttavia possibile usare la funzionalità di OneLake per creare collegamenti all'interno di una Lakehouse per leggere e scrivere dati archiviati in Azure Data Lake Gen2. Poiché Azure Machine Learning supporta l'archiviazione di Azure Data Lake Gen2, questa configurazione consente di usare insieme Fabric e Azure Machine Learning. L'architettura dei dati è la seguente:

Diagramma che mostra come vengono usati gli account di Archiviazione di Azure per connettere Fabric ad Azure Machine Learning.

Configurare l'accesso ai dati

Per consentire a Fabric e ad Azure Machine Learning di leggere e scrivere gli stessi dati senza doverli copiare, è possibile sfruttare i collegamenti a OneLake e gli archivi dati di Azure Machine Learning. Facendo reindirizzare un collegamento OneLake e un archivio dati allo stesso account di archiviazione, è possibile assicurarsi che sia Fabric sia Azure Machine Learning leggano e scrivano negli stessi dati sottostanti.

In questa sezione viene creato o identificato un account di archiviazione da usare per archiviare le informazioni che verranno usate dall'endpoint batch e che gli utenti di Fabric vedranno in OneLake. L'infrastruttura supporta solo gli account di archiviazione con nomi gerarchici abilitati, ad esempio Azure Data Lake Gen2.

Creare un collegamento OneLake all'account di archiviazione

  1. Aprire l'esperienza Ingegneria dei dati di Synapse in Fabric.

  2. Nel pannello a sinistra selezionare l'area di lavoro Fabric per aprirla.

  3. Aprire il lakehouse che verrà usato per configurare la connessione. Se non si ha già un lakehouse, passare all'esperienza Ingegneria dei dati per creare un lakehouse. In questo esempio si usa un lakehouse denominato trusted.

  4. Nella barra di spostamento a sinistra aprire altre opzioni per Filee quindi selezionare Nuovo collegamento per visualizzare la procedura guidata.

    Screenshot che mostra come creare un nuovo collegamento in una lakehouse.

  5. Selezionare l'opzione Azure Data Lake Storage Gen2.

    Screenshot che mostra come creare un collegamento di Azure Data Lake Storage Gen2.

  6. Nella sezione Impostazioni di connessione incollare l'URL associato all'account di archiviazione di Azure Data Lake Gen2.

    Screenshot che mostra come configurare l'URL del collegamento.

  7. Nella sezione Credenziali di connessione:

    1. In Connessioneselezionare Crea nuova connessione.
    2. Per Nome connessionemantenere il valore popolato predefinito.
    3. Per Tipo di autenticazione selezionare Account dell'organizzazione per usare le credenziali dell'utente connesso tramite OAuth 2.0.
    4. Selezionare Accedi per accedere.
  8. Selezionare Avanti.

  9. Configurare il percorso del collegamento, in relazione all'account di archiviazione, se necessario. Usare questa impostazione per configurare la cartella a cui punterà il collegamento.

  10. Configurare il Nome del collegamento. Questo nome sarà un percorso all'interno del lakehouse. In questo esempio assegnare un nome ai set di dati del collegamento.

  11. Salvare le modifiche.

Creare un archivio dati che reindirizzi all'account di archiviazione

  1. Aprire lo studio di Azure Machine Learning.

  2. Esplorare l'area di lavoro di Azure Machine Learning.

  3. Passare alla sezione Dati.

  4. Selezionare la scheda Archivi dati.

  5. Seleziona Crea.

  6. Configurare l'archivio dati come indicato di seguito:

    1. Per Nome archivio dati immettere trusted_blob.

    2. Per Tipo di archivio dati selezionare Archiviazione BLOB di Azure.

      Suggerimento

      Perché configurare Archiviazione BLOB di Azure anziché Azure Data Lake Gen2? Gli endpoint batch possono scrivere stime solo in account di archiviazione BLOB. Tuttavia, ogni account di archiviazione di Azure Data Lake Gen2 è anche un account di archiviazione BLOB; pertanto, possono essere usati in modo intercambiabile.

    3. Selezionare l'account di archiviazione dalla procedura guidata usando l'ID sottoscrizione, l'account di archiviazione e il contenitore BLOB (file system).

      Screenshot che mostra come configurare l'archivio dati di Azure Machine.

    4. Seleziona Crea.

  7. Verificare che il calcolo in cui è in esecuzione l'endpoint batch disponga dell'autorizzazione per montare i dati in questo account di archiviazione. Anche se l'accesso viene ancora concesso dall'identità che richiama l'endpoint, il calcolo in cui viene eseguito l'endpoint batch deve disporre dell'autorizzazione per montare l'account di archiviazione fornito. Per altre informazioni, vedere Accesso ai servizi di archiviazione.

Caricare dati campione

Caricare alcuni dati campione per l'endpoint da usare come input:

  1. Passare all'area di lavoro Fabric.

  2. Selezionare il lakehouse in cui è stato creato il collegamento.

  3. Passare al collegamento ai set di dati.

  4. Creare una cartella per archiviare il set di dati campione a cui si intende assegnare un punteggio. Denominare la cartella uci-heart-unlabeled.

  5. Usare l'opzione Recupera dati e selezionare Carica file per caricare il set di dati campioneheart-unlabeled.csv.

    Screenshot che mostra come caricare dati in una cartella esistente in OneLake.

  6. Caricare il set di dati campione.

    Screenshot che mostra come caricare un file in OneLake.

  7. Il file campione è pronto per l'utilizzo. Prendere nota del percorso in cui è stato salvato.

Creare un'infrastruttura per l'inferenza batch della pipeline

In questa sezione viene creata una pipeline di inferenza dall'infrastruttura a batch nell'area di lavoro di Fabric esistente e si richiamano gli endpoint batch.

  1. Tornare all'esperienza di Ingegneria dei dati se si è già passati da questa usando l'icona del selettore esperienza nell'angolo inferiore sinistro della home page.

  2. Aprire l'area di lavoro di Fabric.

  3. Nella sezione Nuovo della home page selezionare Pipeline di dati.

  4. Assegnare alla pipeline il nome e selezionare Crea.

    Screenshot che mostra dove selezionare l'opzione della pipeline di dati.

  5. Selezionare la scheda Attività dalla barra degli strumenti nel pannello Canvas della finestra di progettazione.

  6. Selezionare altre opzioni alla fine della scheda e selezionare Azure Machine Learning.

    Screenshot che mostra come aggiungere l'attività di Azure Machine Learning a una pipeline.

  7. Passare alla scheda Impostazioni e configurare l'attività nel modo seguente:

    1. Selezionare Nuovo accanto a Connessione di Azure Machine Learning per creare una nuova connessione all'area di lavoro di Azure Machine Learning che contiene la distribuzione.

      Screenshot della sezione di configurazione dell'attività che mostra come creare una nuova connessione.

    2. Nella sezione Impostazioni di connessione della creazione della procedura guidata specificare i valori dell'ID sottoscrizione, del nome del Gruppo di risorse e del nome dell'Area di lavoro in cui viene distribuito l'endpoint.

      Screenshot che mostra esempi di valori per ID sottoscrizione, nome del gruppo di risorse e nome dell'area di lavoro.

    3. Nella sezione Credenziali di connessione selezionare Account dell'organizzazione come valore del Tipo di autenticazione della propria connessione. L'account dell'organizzazione usa le credenziali dell'utente connesso. In alternativa, è possibile usare l'Entità servizio. Nelle impostazioni di produzione è consigliabile usare un'Entità servizio. Indipendentemente dal tipo di autenticazione, assicurarsi che l'identità associata alla connessione disponga dei diritti per chiamare l'endpoint batch che è stato distribuito.

      Screenshot che mostra come configurare il meccanismo di autenticazione nella connessione.

    4. Salvare la connessione. Dopo aver selezionato la connessione, Fabric popola automaticamente gli endpoint batch disponibili nell'area di lavoro selezionata.

  8. Per Endpoint batch selezionare l'endpoint batch che si vuole chiamare. In questo esempio selezionare heart-classifier-....

    Screenshot che mostra come selezionare un endpoint dopo la configurazione di una connessione.

    La sezione Distribuzione batch popola automaticamente con le distribuzioni disponibili nell'endpoint.

  9. Per Distribuzione batch, selezionare una distribuzione specifica dall'elenco, se necessario. Se non si seleziona una distribuzione, Fabric richiama la distribuzionePredefinita nell'endpoint, consentendo all'autore dell'endpoint batch di decidere quale distribuzione viene chiamata. Nella maggior parte degli scenari è consigliabile mantenere questo comportamento predefinito.

    Screenshot che mostra come configurare l'endpoint per l'uso della distribuzione predefinita.

Configurare input e output per l'endpoint batch

In questa sezione vengono configurati input e output dall'endpoint batch. Gli input degli endpoint batch forniscono dati e parametri necessari per eseguire il processo. La pipeline batch di Azure Machine Learning in Fabric supporta sia distribuzioni modelli sia distribuzioni di pipeline. Il numero e il tipo di input forniti dipendono dal tipo di distribuzione. In questo esempio si usa una distribuzione modello che richiede esattamente un input e produce un output.

Per altre informazioni sugli input e sugli output degli endpoint batch, vedere Informazioni sugli input e gli output in Endpoint batch.

Configurare la sezione input

Configurare la sezione Input processo come indicato di seguito:

  1. Espandere la sezione Input processo.

  2. Selezionare Nuovo per aggiungere un nuovo input all'endpoint.

  3. Assegnare all'input il nome input_data. Poiché si usa una distribuzione modello, è possibile usare qualsiasi nome. Per le distribuzioni di pipeline, tuttavia, è necessario indicare il nome esatto dell'input previsto dal modello.

  4. Selezionare il menu a discesa accanto all'input appena aggiunto per aprire la proprietà dell'input (campo nome e valore).

  5. Immettere JobInputType nel campoNome per indicare il tipo di input che si sta creando.

  6. Immettere UriFolder nel campoValore per indicare che l'input è un percorso di cartella. Altri valori supportati per questo campo sono UriFile (un percorso di file) o Literal (qualsiasi valore letterale come stringa o Integer). È necessario usare il tipo corretto previsto dalla propria distribuzione.

  7. Selezionare il segno più accanto alla proprietà per aggiungere un'altra proprietà per questo input.

  8. Immettere Uri nel campo Nome per indicare il percorso dei dati.

  9. Immettere azureml://datastores/trusted_blob/datasets/uci-heart-unlabeled, il percorso per individuare i dati nel campo Valore. In questo caso si usa un percorso che porta all'account di archiviazione collegato a OneLake in Fabric e ad Azure Machine Learning. azureml://datastores/trusted_blob/datasets/uci-heart-unlabeled è il percorso dei file CSV con i dati di input previsti per il modello distribuito nell'endpoint batch. È anche possibile usare un percorso diretto per l'account di archiviazione, ad esempio https://<storage-account>.dfs.azure.com.

    Screenshot che mostra come configurare gli input nell'endpoint.

    Suggerimento

    Se l'input è di tipo Literal, sostituire la proprietà Uri con 'Value'.

Se l'endpoint richiede più input, ripetere i passaggi precedenti per ognuno di essi. In questo esempio le distribuzioni modelli richiedono esattamente un input.

Configurare la sezione output

Configurare la sezione Output del processo come indicato di seguito:

  1. Espandere la sezione Output del processo.

  2. Selezionare Nuovo per aggiungere un nuovo output all'endpoint.

  3. Assegnare il nome output_data all'output. Poiché si usa una distribuzione modello, è possibile usare qualsiasi nome. Per le distribuzioni di pipeline, tuttavia, è necessario indicare il nome esatto dell'output generato dal modello.

  4. Selezionare il menu a discesa accanto all'output appena aggiunto per aprire la proprietà dell'output (campo nome e valore).

  5. Immettere JobOutputType nel campo Nome per indicare il tipo di output che si sta creando.

  6. Immettere UriFile nel campo Valore per indicare che l'output è un percorso di file. L'altro valore supportato per questo campo è UriFolder (un percorso cartella). A differenza della sezione di input del processo, il Valore letterale (qualsiasi valore letterale come stringa o Integer) non è supportato come output.

  7. Selezionare il segno più accanto alla proprietà per aggiungere un'altra proprietà per questo output.

  8. Immettere Uri nel campo Nome per indicare il percorso dei dati.

  9. Immettere @concat(@concat('azureml://datastores/trusted_blob/paths/endpoints', pipeline().RunId, 'predictions.csv'), il percorso in cui inserire l'output nel campo Valore. Gli endpoint batch di Azure Machine Learning supportano solo l'uso dei percorsi dell'archivio dati come output. Poiché gli output devono essere univoci per evitare conflitti, è stata usata un'espressione dinamica, @concat(@concat('azureml://datastores/trusted_blob/paths/endpoints', pipeline().RunId, 'predictions.csv'), per costruire il percorso.

    Screenshot che mostra come configurare gli output nell'endpoint

Se l'endpoint restituisce più output, ripetere i passaggi precedenti per ognuno di essi. In questo esempio le distribuzioni modelli producono esattamente un output.

(Facoltativo) Configurare le impostazioni del processo

È anche possibile configurare le Impostazioni del processo aggiungendo le proprietà seguenti:

Per distribuzioni modelli:

Impostazione Descrizione
MiniBatchSize Le dimensioni del batch.
ComputeInstanceCount Numero di istanze di ambiente calcolo da richiedere dalla distribuzione.

Per le distribuzioni della pipeline:

Impostazione Descrizione
ContinueOnStepFailure Indica se la pipeline deve interrompere l'elaborazione dei nodi dopo un errore.
DefaultDatastore Indica l'archivio dati predefinito da usare per gli output.
ForceRun Indica se la pipeline deve forzare l'esecuzione di tutti i componenti anche se l'output può essere inferito da un'esecuzione precedente.

Dopo la configurazione è possibile testare la pipeline.