Usare Fabric per accedere agli endpoint batch di distribuzione del modello (anteprima)

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

Questo articolo illustra come usare Microsoft Fabric per accedere ai modelli distribuiti negli endpoint batch di Azure Machine Learning. Questo flusso di lavoro supporta anche le distribuzioni di pipeline batch da Infrastruttura.

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 Condizioni supplementari per l'utilizzo delle anteprime di Microsoft Azure.

Prerequisiti

Importante

L'identità che richiama la distribuzione batch può concedere l'accesso all'account di archiviazione, ma il calcolo che esegue la distribuzione deve disporre anche dell'autorizzazione per montare l'account di archiviazione. Per altre informazioni, vedere Accedere ai servizi di archiviazione.

Architettura

Azure Machine Learning non può accedere direttamente ai dati archiviati in Fabric OneLake, ma è possibile configurare un collegamento OneLake e un archivio dati di Azure Machine Learning per accedere allo stesso account di archiviazione di Azure Data Lake. Questo flusso di lavoro consente la lettura e la scrittura negli stessi dati sottostanti senza dover copiarli.

Questo modello di endpoint batch è uno dei diversi modi per connettere OneLake e Azure Machine Learning. Per una panoramica delle opzioni di integrazione, vedere Integrare OneLake con Azure Machine Learning.

Il diagramma seguente illustra l'architettura dei dati.

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

Configurare l'accesso ai dati

Creare o identificare una connessione all'account di archiviazione che contiene i dati dell'endpoint batch, in modo che Fabric OneLake e Azure Machine Learning possano accedere alle informazioni. Fabric supporta solo account di archiviazione gerarchici come Azure Data Lake Storage Gen2.

Creare un collegamento OneLake all'account di archiviazione

  1. In Fabric, seleziona la tua area di lavoro nel riquadro di spostamento a sinistra.
  2. Apri il lakehouse che vuoi usare.
  3. Nel riquadro Explorer selezionare l'icona Altre opzioni accanto a File e quindi selezionare Nuovo collegamento. Screenshot che mostra come creare un nuovo collegamento in una lakehouse.
  4. Nella schermata Nuovo collegamento selezionare l'opzione Azure Data Lake Storage Gen2 . Screenshot che mostra come creare un collegamento di Azure Data Lake Storage Gen2.
  5. Nella schermata Impostazioni di connessione selezionare Nuova connessione e quindi immettere l'URL per l'account Azure Data Lake Storage Gen2.
  6. Nella sezione Credenziali di connessione specificare le informazioni seguenti:
    • Connessione: selezionare Crea nuova connessione.
    • Nome connessione: mantenere il valore popolato.
    • Tipo di autenticazione: selezionare Account aziendale per usare le credenziali dell'utente connesso tramite OAuth 2.0. Se non hai eseguito l'accesso, selezionare Accedi per accedere.
  7. Selezionare Avanti. Screenshot che mostra come configurare l'URL del collegamento.
  8. Nella schermata successiva selezionare la cartella o le cartelle dell'account di archiviazione a cui impostare il collegamento, se applicabile, e quindi selezionare Avanti.
  9. Nella schermata successiva esaminare le impostazioni e quindi selezionare Crea.

Creare uno spazio dati che punta all'account di storage

Creare un archivio dati di Azure Machine Learning che punti all'account di archiviazione. Gli endpoint batch di Azure Machine Learning possono scrivere le previsioni solo negli account di archiviazione BLOB, quindi seleziona Archiviazione BLOB di Azure anziché Azure Data Lake Storage Gen2 come tipo di datastore per l'endpoint batch. Tutti gli account di archiviazione di Azure Data Lake sono anche account di archiviazione BLOB.

  1. Nell'area di lavoro di Azure Machine Learning in Azure Machine Learning Studio selezionare Dati dal menu di spostamento a sinistra.
  2. Nella pagina Dati selezionare la scheda Archivi dati e quindi selezionare Crea.
  3. Nella schermata Crea archivio dati specificare le informazioni seguenti:
    • Nome archivio dati: immettere un nome per l'archivio dati. Questo articolo usa trusted_blob nelle fasi successive; se si sceglie un nome differente, aggiornare di conseguenza i percorsi di input e di output.
    • Tipo di archivio dati: selezionare Archiviazione BLOB di Azure.
    • Metodo di selezione dell'account: selezionare Invio manualmente.
    • URL: immettere l'URL per l'account di archiviazione e il contenitore di dati.
    • ID sottoscrizione: selezionare la sottoscrizione di Azure.
    • Gruppo di risorse della risorsa di archiviazione: selezionare il gruppo di risorse dell'account di archiviazione.
    • Tipo di autenticazione: selezionare Chiave account.
    • Chiave dell'account: immettere la chiave di accesso dell'account di archiviazione.
  4. Selezionare Crea. Screenshot che mostra come configurare l'archivio dati di Azure Machine Learning.

Caricare un set di dati di esempio

In Fabric, caricare i dati di esempio da usare come input per l'endpoint batch.

  1. Passare al collegamento creato in Fabric lakehouse.
  2. Selezionare l'icona Altre azioni , selezionare Nuova sottocartella e creare una cartella denominata heart-unlabeled-0 per archiviare il set di dati di esempio.
  3. Nella nuova cartella selezionare Recupera dati e quindi selezionare Carica file. Screenshot che mostra come caricare i dati in una cartella esistente in OneLake.
  4. Caricare il set di dati di esempio heart-unlabeled-0.csv. Screenshot che mostra come caricare un file in OneLake.

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

Creare una pipeline di inferenza da Infrastruttura a batch

Creare una pipeline di inferenza da Infrastruttura a batch nell'area di lavoro Infrastruttura esistente che richiama l'endpoint batch.

  1. Nella pagina Home dell'area di lavoro Fabric selezionare Nuovo elemento.
  2. Nella pagina Nuovo elemento selezionare Pipeline. Screenshot che mostra dove selezionare l'opzione della pipeline di dati.
  3. Assegnare un nome alla pipeline e selezionare Crea.
  4. Selezionare la scheda Attività nella parte superiore della pagina della finestra di progettazione della pipeline.
  5. Selezionare l'icona Altre opzioni alla fine della scheda e quindi scorrere verso il basso e selezionare Azure Machine Learning. Screenshot che mostra come aggiungere l'attività di Azure Machine Learning a una pipeline.

Creare e configurare la connessione di distribuzione batch

Per configurare la connessione all'area di lavoro di Azure Machine Learning, seguire questa procedura.

  1. Nel riquadro della finestra di progettazione inferiore selezionare la scheda Impostazioni .
  2. Accanto a Connessione di Azure Machine Learning selezionare la freccia a discesa e quindi selezionare Sfoglia tutto per aggiungere una nuova connessione. Screenshot che mostra come selezionare Sfoglia tutto per aggiungere una connessione.
  3. Nella schermata Scegliere un'origine dati per iniziare selezionare Azure Machine Learning in Nuove origini.
  4. Nella schermata Connetti origine dati , in Impostazioni di connessione immettere l'ID sottoscrizione, il nome del gruppo di risorse e il nome dell'area di lavoro di Azure Machine Learning in cui viene distribuito l'endpoint.
  5. Nella sezione Credenziali di connessione selezionare Crea nuova connessione in Connessione e specificare un nome di connessione in Nome connessione.
  6. Per Tipo di autenticazione selezionare Account aziendale per usare le credenziali dell'utente connesso o Entità servizio per usare un'entità servizio.

    Annotazioni

    È consigliabile usare un'entità servizio per le impostazioni di produzione. Per entrambe le opzioni, assicurarsi che l'identità associata alla connessione disponga dell'autorizzazione per chiamare l'endpoint batch distribuito.

  7. Per un account aziendale, effettua l'accesso se necessario. Per una connessione all'entità servizio, specificare l'ID tenant, l'ID client dell'entità servizio e la chiave dell'entità servizio.
  8. Selezionare Connetti. Screenshot che mostra come configurare la connessione.

La nuova connessione viene visualizzata nella scheda Impostazioni della finestra di progettazione e Fabric popola automaticamente gli endpoint batch disponibili nell'area di lavoro selezionata.

  1. Per Endpoint batch, selezionare l'endpoint batch che si vuole chiamare. Per questo esempio, selezionare un endpoint di distribuzione del classificatore cardiaco .
  2. Per la distribuzione di Batch, selezionare una distribuzione specifica, se necessario. La sezione Distribuzione batch popola automaticamente con le distribuzioni disponibili nell'endpoint. Se non si seleziona una distribuzione, Fabric richiama la distribuzione predefinita nell'endpoint, consentendo all'autore dell'endpoint batch di decidere quale distribuzione chiamare. Per la maggior parte degli scenari, mantenere questo comportamento predefinito. Screenshot che mostra come selezionare un endpoint dopo la configurazione di una connessione.

Configurare input e output per l'endpoint batch

Configurare ingressi e uscite per l'endpoint batch. Gli input degli endpoint batch forniscono dati e parametri necessari per eseguire il processo. Gli output forniscono i percorsi in cui inserire i dati batch.

La pipeline batch di Azure Machine Learning in Infrastruttura supporta sia le distribuzioni modelli sia le distribuzioni di pipeline. Il numero e il tipo di input forniti dipendono dal tipo di distribuzione. Questo esempio usa una distribuzione del modello che richiede esattamente un input e produce un output.

Per altre informazioni sugli input e gli output degli endpoint batch, vedere Informazioni su input e output negli endpoint batch.

Configurare gli input

Configurare la sezione Input processo come indicato di seguito:

  1. Espandere Input processo e selezionare Nuovo per aggiungere un nuovo input all'endpoint.

  2. Assegnare il nome input_data all'input. Per la distribuzione del modello, è possibile usare qualsiasi nome. Per le distribuzioni di pipeline, è necessario specificare il nome esatto dell'input previsto dal modello.

  3. Selezionare il cursore accanto all'input per espandere i campi Nome e Valore .

  4. Per indicare il tipo di input che si sta creando, immettere JobInputType nel campo Nome .

  5. Per indicare che l'input è un percorso di cartella, immettere UriFolder nel campo Valore .

    Annotazioni

    È necessario usare il tipo di input previsto dall'implementazione. Altri valori supportati per questo campo sono UriFile per un percorso di file o Valore letterale per qualsiasi valore letterale, ad esempio una stringa o un numero intero.

  6. Per aggiungere un'altra proprietà per questo input, selezionare il segno più accanto alla proprietà .

  7. Per indicare il percorso dei dati, immettere Uri nel campo Nome .

    Suggerimento

    Se l'input è di tipo Valore letterale, immettere Valore nel campo Nome .

  8. Nel campo Valore immettere il percorso dei dati azureml://datastores/trusted_blob/paths/heart-unlabeled-0.

    Questo percorso di input punta all'account di archiviazione collegato sia a OneLake in Fabric che ad Azure Machine Learning. È anche possibile usare un percorso diretto all'account di archiviazione, ad esempio https://< storage-account.dfs.azure.com>. Il percorso conduce ai file CSV che contengono i dati di input previsti per il modello distribuito nell'endpoint batch.

    Screenshot che mostra come configurare gli input nell'endpoint.

Se l'endpoint richiede più input, ripetere i passaggi precedenti per ogni input.

Configurare gli output

Configurare la sezione Output processo come indicato di seguito:

  1. Espandere la sezione Output processo e selezionare Nuovo per aggiungere un nuovo output all'endpoint.

  2. Assegnare all'output il nome output_data. Per la distribuzione del modello, è possibile usare qualsiasi nome. Per le distribuzioni di pipeline, è necessario specificare il nome esatto dell'output generato dal modello.

  3. Selezionare il cursore accanto all'output per espandere i campi Nome e Valore .

  4. Per indicare il tipo di output che si sta creando, immettere JobOutputType nel campo Nome .

  5. Per indicare che l'output è un percorso di file, immettere UriFile nel campo Valore . L'altro valore supportato per questo campo è UriFolder, per un percorso di cartella. Literal non è supportato per gli output.

  6. Per aggiungere un'altra proprietà per questo output, selezionare il segno più accanto alla proprietà .

  7. Per indicare il percorso dei dati, immettere Uri nel campo Nome .

  8. Nel campo Valore immettere l'espressione seguente per compilare un percorso di output univoco:

    @concat('azureml://datastores/trusted_blob/paths/endpoints/', pipeline().RunId, '/predictions.csv')
    

    Gli endpoint batch di Azure Machine Learning supportano solo i percorsi dell'archivio dati come output. Gli output devono essere univoci per evitare conflitti, quindi si usa un'espressione dinamica che include l'ID esecuzione per costruire il percorso.

    Screenshot che mostra come configurare gli output nell'endpoint.

Se l'endpoint restituisce più output, ripetere i passaggi precedenti per ogni output.

Opzionalmente, configurare le impostazioni del lavoro

È anche possibile configurare le impostazioni del processo espandendo la sezione Impostazioni processo , selezionando Nuovo e aggiungendo una delle proprietà seguenti.

Per le distribuzioni di modelli

Nome Value
MiniBatchSize Dimensione del batch.
ComputeInstanceCount Numero di istanze di calcolo da richiedere dalla distribuzione.

Per distribuzioni delle pipeline

Nome Value
ContinueOnStepFailure Indica se la pipeline deve interrompere l'elaborazione dei nodi dopo un errore.
DefaultDatastore 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 dedotto da un'esecuzione precedente.

Dopo aver configurato le impostazioni, eseguire la pipeline e verificare i risultati.

Eseguire la pipeline e verificare i risultati

  1. Nella finestra di progettazione della pipeline selezionare Esegui per avviare la pipeline e confermare l'esecuzione, se richiesto.
  2. Selezionare la scheda Output per monitorare l'attività Azure Machine Learning. Attendere che lo stato dell'attività venga visualizzato Completato.
  3. Per confermare il processo batch in Azure Machine Learning, aprire studio di Azure Machine Learning, selezionare Endpoint>batch, selezionare l'endpoint e rivedere il processo completato.
  4. Per verificare le previsioni, tornare al lakehouse Fabric e aprire la cartella di scelta rapida di OneLake che corrisponde al percorso di output. Verificare che il file predictions.csv sia presente nel percorso endpoints/<run-id> ed esaminarlo per vedere i risultati della valutazione. Il file contiene le righe di input con punteggio assegnato e una colonna di previsione aggiunta.

Poiché il collegamento e il datastore puntano allo stesso account di archiviazione, le previsioni che l'endpoint batch scrive sono immediatamente disponibili in Fabric senza copiare i dati.

Troubleshooting

Sintomo Cause Resolution
Il processo batch non viene eseguito a causa di un errore di montaggio o di accesso all'archiviazione. Il calcolo che esegue la distribuzione non dispone dell'autorizzazione per montare l'account di archiviazione. Concedere all'identità di calcolo della distribuzione l'accesso all'account di archiviazione. Per altre informazioni, vedere Accedere ai servizi di archiviazione.
Non è possibile creare l'archivio dati oppure l'endpoint non può scrivere output. L'archivio dati è stato creato come Azure Data Lake Gen2 anziché come Archiviazione BLOB di Azure. Ricreare l'archivio dati e selezionare Archiviazione BLOB di Azure come tipo di archivio dati. Gli endpoint batch scrivono le previsioni solo negli account di archiviazione BLOB.
La pipeline non riesce a richiamare l'endpoint con un errore di autorizzazione. L'identità di connessione non può chiamare l'endpoint di elaborazione batch. Assicurarsi che l'account aziendale o l'entità servizio utilizzata dalla connessione disponga delle autorizzazioni necessarie per richiamare l'endpoint batch. Per altre informazioni, vedere Autorizzazione negli endpoint batch.
Il percorso di output non è valido oppure un'esecuzione sovrascrive i risultati precedenti. L'espressione di output dinamico è mal formata o non è univoca. Verifica che l'output Uri usi un'espressione dinamica che includa pipeline().RunId in modo che ogni esecuzione scriva in un percorso univoco.