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.
- 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.
Preparare un prompt flow per la distribuzione. Se non è disponibile, vedere come creare un prompt flow.
Facoltativo: selezionare Chat per verificare se il flusso funziona correttamente. È consigliabile testare il flusso prima della distribuzione.
Selezionare Distribuire nell'editor del flusso.
Specificare le informazioni richieste nella pagina Impostazioni di base della procedura guidata di distribuzione.
Selezionare Rivedere + creare per rivedere le impostazione e creare la distribuzione. In caso contrario, è possibile selezionare Avanti per passare alle pagine delle impostazioni avanzate.
Selezionare Crea per distribuire il prompt flow.
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.
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.
È possibile usare direttamente l'endpoint REST o iniziare con uno degli esempi illustrati di seguito.
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
.
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. |
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.
Nel flusso di lavoro delle impostazioni avanzate è anche possibile specificare i tag di distribuzione e selezionare un ambiente personalizzato.
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 dell'hub di Studio AI 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 di Studio AI della piattaforma Azure e monta il modello utente e gli artefatti di codice nel contenitore utente dall'account di archiviazione delle risorse dell'hub di Studio AI della piattaforma Azure.
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 di Studio AI | 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 di Studio AI | Pull ACR | Eseguire il pull dell'immagine del contenitore |
Archiviazione predefinita del progetto di Studio AI | Lettore dei dati del BLOB di archiviazione | Caricare il modello dall'archiviazione |
Progetto di Studio AI | 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.
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.
Passare alla pagina di panoramica del progetto di Studio AI della piattaforma Azure nel portale di Azure.
Selezionare Controllo di accesso e quindi Aggiungi assegnazione di ruolo.
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.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à.
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.
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.
(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.
È 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
- Altre informazioni su ciò che è possibile fare in Studio AI della piattaforma Azure
- Risposte alle domande frequenti nell'articolo Domande frequenti su Azure per intelligenza artificiale
- [Abilitare la traccia e raccolta di suggerimenti per la distribuzione] (./develop/trace-production-sdk.md)