Condividi tramite


Distribuire un flusso per l'inferenza in tempo reale

Importante

Gli elementi contrassegnati (anteprima) in questo articolo sono attualmente disponibili in anteprima pubblica. Questa 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.
  • Progetto Azure AI Foundry.

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 flusso di richiesta come endpoint online nel portale di Azure AI Foundry.

  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 del pulsante Distribuisci da un editor del prompt flow.

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

    Screenshot della pagina delle impostazioni di base nella procedura guidata di distribuzione.

  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.

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

    Screenshot dello stato della distribuzione in corso.

  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 della pagina dei dettagli della distribuzione.

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

    Screenshot degli esempi di codice e dell'endpoint di distribuzione.

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 Azure AI Foundry.

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 della specifica dell'immagine di base nel file yaml non elaborato del flusso.

Impostazioni di base

Questo passaggio consente di configurare le impostazioni di base quando si seleziona Distribuisci nell'editor del flusso.

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.

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 delle impostazioni avanzate dell'endpoint.

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

Screenshot delle impostazioni di distribuzione avanzate.

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 le Registro Azure Container o le connessioni dell'hub di Azure AI Foundry 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 dall'hub di Azure AI Foundry Registro Azure Container (ACR) e monta il modello utente e gli artefatti di codice nel contenitore utente dall'account di archiviazione dell'hub.

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 AI Foundry Ruolo Lettore di segreti di connessione dell'area di lavoro di Azure Machine Learning O ruolo personalizzato con Microsoft.MachineLearningServices/workspaces/connections/listsecrets/action Ottenere connessioni di progetto
Registro contenitori del progetto Azure AI Foundry Pull ACR Eseguire il pull dell'immagine del contenitore
Archiviazione predefinita del progetto Azure AI Foundry Lettore dei dati del BLOB di archiviazione Caricare il modello dall'archiviazione
Progetto Azure AI Foundry 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.

Importante

Se il flusso usa connessioni di autenticazione basate su ID Entra di Microsoft, indipendentemente dall'uso dell'identità assegnata dal sistema o dell'identità assegnata dall'utente, è sempre necessario concedere all'identità gestita i ruoli appropriati delle risorse corrispondenti in modo che possa effettuare chiamate API a tale risorsa. Ad esempio, se la connessione Azure OpenAI usa l'autenticazione basata su ID Entra di Microsoft, è necessario concedere all'identità gestita dall'endpoint il ruolo di Utente OpenAI OpenAI di Servizi cognitivi o Collaboratore OpenAI di Servizi cognitivi delle risorse Azure OpenAI corrispondenti.

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 delle impostazioni avanzate di output e connessioni.

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.

Abilitare la traccia attivando la diagnostica di Application Insights (anteprima)

Se si abilita questa opzione, i dati di tracciamento e 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 di Application Insights dell'area di lavoro. Per ulteriori informazioni, vedere Prompt flow che gestisce i dati e le metriche di tracciamento.

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 al proprietario della sottoscrizione di Azure (che può coincidere con l'amministratore IT) di fornire assistenza.

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

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

  1. Passare alla pagina di panoramica del progetto Azure AI Foundry in portale di Azure.

  2. Selezionare Controllo di accesso e quindi Aggiungi assegnazione di ruolo. Screenshot del controllo di accesso con l'aggiunta dell'assegnazione di ruolo evidenziata.

  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 connessioni hub.

    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 dell'hub. È possibile trovare il registro contenitori e l'account di archiviazione nella pagina di panoramica dell'hub nel portale di Azure.

    Screenshot della pagina di panoramica con l'archiviazione e il registro contenitori evidenziati.

    Passare alla pagina di panoramica del registro contenitori dell'hub, 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 dell'hub, 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'uso di CPU/GPU/disco/memoria, è necessario concedere all'identità anche il ruolo Writer delle metriche dell'hub.

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 della distribuzione, 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 della distribuzione 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.

Screenshot del codice di esempio relativo all'utilizzo degli endpoint.

È necessario immettere valori per RequestBody o data e api_key. Ad esempio, se il flusso ha 2 input location e url, è necessario specificare i dati come indicato di seguito.

 {
"location": "LA",
"url": "<the_url_to_be_classified>"
}

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