Distribuire un flusso per l'inferenza in tempo reale

Nota

Studio AI della piattaforma Azure è attualmente disponibile in anteprima pubblica. Questa versione di anteprima viene fornita senza un contratto di servizio e non è consigliabile per i carichi di lavoro 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.

Dopo aver compilato un prompt flow e averlo testato correttamente, è possibile distribuirlo come endpoint online. Le distribuzioni sono ospitate all'interno di un endpoint e possono ricevere dati dai client e inviare risposte in tempo reale.

È possibile richiamare l'endpoint per l'inferenza in tempo reale per chat, copilot o un'altra applicazione di intelligenza artificiale generativa. Prompt flow supporta la distribuzione di endpoint da un flusso o da un'esecuzione di test in blocco.

Questo articolo illustra come distribuire un flusso come endpoint online gestito per l'inferenza in tempo reale. I passaggi da eseguire sono:

  • Testare il flusso e prepararlo per la distribuzione
  • Creare una distribuzione online.
  • Concedere le autorizzazioni all'endpoint.
  • Testare l'endpoint.
  • Utilizzare l'endpoint.

Prerequisiti

Per distribuire un prompt flow come endpoint online, è necessario:

  • Una sottoscrizione di Azure. Se non se ne dispone, creare un account gratuito prima di iniziare.
  • Un progetto di Studio AI della piattaforma Azure.

Creare una distribuzione online

Dopo aver creato un flusso e averlo testato correttamente, è possibile creare l'endpoint online per l'inferenza in tempo reale.

Seguire questa procedura per distribuire un prompt flow come endpoint online in Studio AI della piattaforma Azure.

  1. Preparare un prompt flow per la distribuzione. Se non è disponibile, vedere come creare un prompt flow.

  2. Facoltativo: selezionare Chat per verificare se il flusso funziona correttamente. È consigliabile testare il flusso prima della distribuzione.

  3. Selezionare Distribuire nell'editor del flusso.

    Screenshot of the deploy button from a prompt flow editor.

  4. Specificare le informazioni richieste nella pagina Impostazioni di base della procedura guidata di distribuzione.

    Screenshot of the basic settings page in the deployment wizard.

  5. Selezionare Rivedere + creare per rivedere le impostazione e creare la distribuzione. In caso contrario, è possibile selezionare Avanti per passare alle pagine delle impostazioni avanzate.

  6. Selezionare Crea per distribuire il prompt flow.

    Screenshot of the review settings page.

  7. Per visualizzare lo stato della distribuzione, selezionare Distribuzioni nel riquadro di spostamento a sinistra. Dopo aver creato correttamente la distribuzione, è possibile selezionare la distribuzione per visualizzare i dettagli.

    Screenshot of the deployment state in progress.

  8. Selezionare la scheda Utilizza per visualizzare esempi di codice che possono essere usati per utilizzare il modello distribuito nell'applicazione.

    Nota

    In questa pagina è anche possibile visualizzare l'URL dell'endpoint che è possibile usare per utilizzare l'endpoint.

    Screenshot of the deployment details page.

  9. È possibile usare direttamente l'endpoint REST o iniziare con uno degli esempi illustrati di seguito.

    Screenshot of the deployment endpoint and code samples.

Per altre informazioni, vedere le sezioni riportate di seguito.

Suggerimento

Per una guida su come distribuire un modello di base, vedere Distribuzione di modelli con Studio AI della piattaforma Azure.

Impostazioni e configurazioni

File di testo dei requisiti

Facoltativamente è possibile specificare pacchetti aggiuntivi necessari in requirements.txt. È possibile trovare il file requirements.txt nella cartella radice della cartella del flusso. Quando si distribuisce il prompt flow all'endpoint online gestito nell'interfaccia utente, per impostazione predefinita la distribuzione usa l'ambiente creato in base all'immagine di base specificata nel file flow.dag.yaml e alle dipendenze specificate nel file requirements.txt del flusso.

Nota

L'immagine di base specificata nel file flow.dag.yaml deve essere creata in base all'immagine di base mcr.microsoft.com/azureml/promptflow/promptflow-runtime-stable:<newest_version> del prompt flow ed è possibile trovare la versione più recente qui. Se non si specifica l'immagine di base nel file flow.dag.yaml, la distribuzione userà l'immagine di base predefinita mcr.microsoft.com/azureml/promptflow/promptflow-runtime-stable:latest.

Screenshot of specifying base image in raw yaml file of the flow.

Screenshot of a flow's requirements text file.

Impostazioni di base

Questo passaggio consente di configurare le impostazioni di base della distribuzione.

Proprietà Descrizione
Endpoint È possibile scegliere se si vuole distribuire un nuovo endpoint o aggiornare un endpoint esistente.
Se si seleziona Nuovo, è necessario specificare il nome dell'endpoint.
Nome distribuzione - All'interno dello stesso endpoint, il nome della distribuzione deve essere univoco.
- Se si seleziona un endpoint esistente e si immette un nome di distribuzione esistente, tale distribuzione verrà sovrascritta con le nuove configurazioni.
Macchina virtuale Dimensioni della macchina virtuale da usare per la distribuzione.
Numero di istanze Numero di istanze da usare per la distribuzione. Specificare il valore del carico di lavoro previsto. Per la disponibilità elevata, è consigliabile impostare il valore almeno su 3. Si riserva un ulteriore 20% per l'esecuzione degli aggiornamenti.
Raccolta dati di inferenza Se si abilita questa opzione, gli input e gli output del flusso vengono raccolti automaticamente in un asset di dati di Azure Machine Learning e possono essere usati per il monitoraggio successivo.
Diagnostica di Application Insights Se si abilita questa opzione, le metriche di sistema durante il tempo di inferenza (come numero di token, latenza del flusso, richiesta di flusso e così via) verranno raccolte nell'istanza predefinita di Application Insights dell'hub di Azure per l'intelligenza artificiale.

Dopo aver completato le impostazioni di base, è possibile selezionare direttamente Rivedi + crea per completare la creazione oppure selezionare Avanti per configurare le Impostazioni avanzate.

Impostazioni avanzate - Endpoint

È possibile specificare le impostazioni seguenti per l'endpoint.

Screenshot of the advanced endpoint settings.

Nel flusso di lavoro delle impostazioni avanzate è anche possibile specificare i tag di distribuzione e selezionare un ambiente personalizzato.

Screenshot of the advanced deployment settings.

Tipo di autenticazione

Metodo di autenticazione per l'endpoint. L'autenticazione basata su chiave fornisce una chiave primaria e secondaria che non scade. L'autenticazione basata su token di Azure Machine Learning fornisce un token che viene aggiornato periodicamente.

Tipo di identità

L'endpoint deve accedere alle risorse di Azure, ad esempio Registro Azure Container o le connessioni delle risorse dell'hub di Azure per l'intelligenza artificiale per l'inferenza. È possibile consentire all'endpoint di accedere alle risorse di Azure concedendo l'autorizzazione alla relativa identità gestita.

L'identità assegnata dal sistema verrà creata automaticamente dopo la creazione dell'endpoint, mentre l'identità assegnata dall'utente viene creata dall'utente. Vedere altre informazioni sulle identità gestite.

Assegnata dal sistema

Si noterà che è disponibile un'opzione che indica se Imporre l'accesso ai segreti di connessione (anteprima). Se il flusso usa le connessioni, l'endpoint deve accedere alle connessioni per eseguire l'inferenza. L'opzione è abilitata per impostazione predefinita; all'endpoint viene concesso il ruolo Lettore di segreti di connessione dell'area di lavoro di Azure Machine Learning per accedere automaticamente alle connessioni se si dispone dell'autorizzazione di lettura dei segreti di connessione. Se si disabilita questa opzione, è necessario concedere manualmente questo ruolo all'identità assegnata dal sistema o chiedere assistenza all'amministratore. Altre informazioni su come concedere l'autorizzazione all'identità dell'endpoint.

Assegnata dall'utente

Quando si crea la distribuzione, Azure tenta di eseguire il pull dell'immagine del contenitore utente dal servizio Registro Azure Container delle risorse dell'hub Azure per intelligenza artificiale e monta il modello utente e gli artefatti di codice nel contenitore utente dall'account di archiviazione delle risorse dell'hub Azure per intelligenza artificiale.

Se è stato creato l'endpoint associato con l'identità assegnata dall'utente, è necessario concedere all'identità assegnata dall'utente i ruoli seguenti prima della creazione della distribuzione; in caso contrario, la creazione della distribuzione ha esito negativo.

Ambito Ruolo Perché è necessario
Progetto Azure per intelligenza artificiale Ruolo Lettore di segreti di connessione dell'area di lavoro di Azure Machine LearningO ruolo personalizzato con Microsoft.MachineLearningServices/workspaces/connections/listsecrets/action Ottenere connessioni al progetto Azure per intelligenza artificiale
Registro contenitori del progetto Azure per intelligenza artificiale Pull ACR Eseguire il pull dell'immagine del contenitore
Archiviazione predefinita del progetto Azure per intelligenza artificiale Lettore dei dati del BLOB di archiviazione Caricare il modello dall'archiviazione
Progetto Azure per intelligenza artificiale Writer delle metriche dell'area di lavoro Dopo aver distribuito l'endpoint, se si desidera monitorare le metriche correlate all'endpoint, ad esempio utilizzo CPU/GPU/Disco/Memoria, è necessario concedere questa autorizzazione all'identità.

Facoltativo

Vedere le indicazioni dettagliate su come concedere le autorizzazioni all'identità dell'endpoint in Concedere le autorizzazioni all'endpoint.

Impostazioni avanzate - Output e connessioni

In questo passaggio è possibile visualizzare tutti gli output del flusso e specificare quali output includere nella risposta dell'endpoint distribuito. Per impostazione predefinita, vengono selezionati tutti gli output del flusso.

È anche possibile specificare le connessioni usate dall'endpoint quando esegue l'inferenza. Per impostazione predefinita, vengono ereditate dal flusso.

Dopo aver configurato e rivisto tutti i passaggi precedenti, è possibile selezionare Rivedi + Crea per completare la creazione.

Screenshot of the advanced output and connections settings.

Nota

Si prevede che la creazione dell'endpoint richieda all'incirca più di 15 minuti, perché contiene diverse fasi, tra cui la creazione dell'endpoint, la registrazione del modello, la creazione della distribuzione e così via.

È possibile comprendere lo stato di avanzamento della creazione della distribuzione tramite la notifica avviata da Distribuzione del prompt flow.

Concedere le autorizzazioni all'endpoint

Importante

La concessione delle autorizzazioni (aggiunta dell'assegnazione di ruolo) è abilitata solo per il proprietario delle risorse di Azure specifiche. Potrebbe essere necessario chiedere assistenza all'amministratore IT.

È consigliabile concedere ruoli all'identità assegnata dall'utenteprima della creazione della distribuzione. Per rendere effettiva l'autorizzazione concessa, potrebbero essere necessari più di 15 minuti.

È possibile concedere tutte le autorizzazioni nell'interfaccia utente del portale di Azure seguendo questa procedura.

  1. Passare alla pagina di panoramica del progetto Azure per intelligenza artificiale nel portale di Azure.

  2. Selezionare Controllo di accesso e quindi Aggiungi assegnazione di ruolo. Screenshot of Access control with add role assignment highlighted.

  3. Selezionare Lettore di segreti di connessione dell'area di lavoro di Azure Machine Learning, quindi scegliere Avanti.

    Nota

    Il ruolo Lettore di segreti di connessione dell'area di lavoro di Azure Machine Learning è un ruolo predefinito che dispone dell'autorizzazione per ottenere le connessioni alle risorse dell'hub di Azure per intelligenza artificiale.

    Se si vuole usare un ruolo personalizzato, assicurarsi che il ruolo personalizzato disponga dell'autorizzazione di Microsoft.MachineLearningServices/workspaces/connections/listsecrets/action. Altre informazioni su Come creare ruoli personalizzati.

  4. Selezionare Identità gestita e selezionare i membri.

    Per l'identità assegnata dal sistema, selezionare Endpoint online di Machine Learning in Identità gestita assegnata dal sistema ed eseguire la ricerca in base al nome dell'endpoint.

    Per l'identità assegnata dall'utente, selezionare Identità gestita assegnata dall'utente ed eseguire la ricerca in base al nome dell'identità.

  5. Per l'identità assegnata dall'utente, è necessario concedere le autorizzazioni anche al registro contenitori e all'account di archiviazione delle risorse dell'hub di Azure per intelligenza artificiale. È possibile trovare il registro contenitori e l'account di archiviazione nella pagina di panoramica delle risorse dell'hub di Azure per intelligenza artificiale nel portale di Azure.

    Screenshot of the overview page with storage and container registry highlighted.

    Passare alla pagina di panoramica del registro contenitori delle risorse dell'hub di Azure per intelligenza artificiale, selezionare Controllo di accesso, quindi selezionare Aggiungi assegnazione di ruolo e assegnare Pull Registro Azure Container |Eseguire il pull dell'immagine del contenitore all'identità dell'endpoint.

    Passare alla pagina di panoramica dell'archiviazione predefinita delle risorse dell'hub di Azure per intelligenza artificiale, selezionare Controllo di accesso, quindi selezionare Aggiungi assegnazione di ruolo e assegnare Ruolo con autorizzazioni di lettura per i dati dei BLOB di archiviazione all'identità dell'endpoint.

  6. (Facoltativo) Per l'identità assegnata dall'utente, se si vuole monitorare le metriche correlate all'endpoint, come l'utilizzo di CPU/GPU/disco/memoria, è necessario concedere all'identità anche il ruolo Writer delle metriche dell'area di lavoro delle risorse dell'hub di Azure per intelligenza artificiale.

Controllare lo stato dell'endpoint

Dopo aver completato la distribuzione guidata, verranno visualizzate alcune notifiche. Dopo aver creato correttamente l'endpoint e la distribuzione, è possibile selezionare Visualizzare dettagli nella pagina dei dettagli della notifica all'endpoint.

È anche possibile passare direttamente alla pagina Distribuzioni dal riquadro di spostamento a sinistra, selezionare la distribuzione e controllare lo stato.

Testare l'endpoint

Nella pagina dei dettagli dell'endpoint passare alla scheda Test.

Per gli endpoint distribuiti dal flusso standard, è possibile immettere valori nell'editor di moduli o nell'editor JSON per testare l'endpoint.

Testare l'endpoint distribuito da un flusso di chat

Per gli endpoint distribuiti dal flusso di chat, è possibile testarli in una finestra di chat immersiva.

chat_input è stato impostato durante lo sviluppo del flusso di chat. È possibile immettere il messaggio chat_input nella casella di input. Se il flusso ha più input, il pannello Input sul lato destro consente di specificare i valori per gli altri input oltre a chat_input.

Utilizzare l'endpoint

Nella pagina dei dettagli dell'endpoint passare alla scheda Utilizzo. È possibile trovare l'endpoint REST e la chiave/token per usare l'endpoint. È anche disponibile un codice di esempio per usare l'endpoint in diverse lingue.

Pulire le risorse

Se non si intende usare l'endpoint dopo aver completato questa esercitazione, è necessario eliminarlo.

Nota

L'eliminazione completa potrebbe richiedere circa 20 minuti.

Passaggi successivi