Share via


Introduzione al prompt flow

Questo articolo illustra il percorso utente principale relativo all'uso del prompt flow nello studio di Azure Machine Learning. Si apprenderà come abilitare il prompt flow nell'area di lavoro di Azure Machine Learning, creare e sviluppare il primo prompt flow, testarlo e valutarlo e quindi distribuirlo nell'ambiente di produzione.

Prerequisiti

  • Assicurarsi che l'archivio dati predefinito nell'area di lavoro sia di tipo BLOB.

  • Se si protegge il prompt flow con la rete virtuale, vedere Isolamento rete nel prompt flow per altre informazioni.

Imposta connessione

In primo luogo, è necessario configurare la connessione.

La connessione consente di archiviare e gestire in modo sicuro chiavi private o altre credenziali sensibili necessarie per interagire con modelli LLM (Large Language Model) e altri strumenti esterni, ad esempio Azure Content Safety.

Passare alla home page del prompt flow e selezionare la scheda Connessioni. La connessione è una risorsa condivisa per tutti i membri dell'area di lavoro. Se quindi viene già visualizzata una connessione il cui provider è AzureOpenAI, è possibile ignorare questo passaggio e passare a Avvia sessione di calcolo.

Se non si è già connessi ad AzureOpenAI, selezionare il pulsante Crea e quindi AzureOpenAI dall'elenco a discesa.

Screenshot della scheda Connessioni con l'opzione Crea evidenziata.

Verrà visualizzato un pannello a destra. In questo caso, è necessario selezionare la sottoscrizione e il nome della risorsa, specificare il nome della connessione, la chiave API, la base API, il tipo di API e la versione dell'API ( (se il tipo di autenticazione è uguale alla chiave API), prima di selezionare il pulsante Salva. Prompt flow supporta anche Microsoft Entra ID come tipo di autenticazione per l'autenticazione basata su identità per la risorsa OpenAI di Azure. Altre informazioni su come configurare il Servizio OpenAI di Azure con identità gestite.

Screenshot delle connessioni Azure OpenAI aggiunte.

Per ottenere la chiave, la base, il tipo e la versione dell'API, è possibile passare al playground della chat nel portale di Azure OpenAI e selezionare il pulsante Visualizza codice. Da qui è possibile copiare le informazioni necessarie e incollarle nel pannello di creazione della connessione.

Screenshot del playground della chat dopo aver selezionato il pulsante Visualizza codice che visualizza un popup con codice di esempio, evidenziando la chiave API.

Dopo aver immesso i dati nei campi obbligatori, selezionare Salva per creare la connessione.

Creare e sviluppare il prompt flow

Nella scheda Flussi della home page del prompt flow selezionare Crea per creare il primo prompt flow. È possibile creare un flusso clonando gli esempi disponibili nella raccolta.

Clonare dall'esempio

Gli esempi predefiniti sono visualizzati nella raccolta.

In questa guida si userà l'esempio Web Classification per esaminare il percorso utente principale. È possibile selezionare Visualizza dettagli nel riquadro Web Classification per visualizzare un'anteprima dell'esempio. Verrà quindi visualizzata una finestra di anteprima. È possibile esplorare l'introduzione dell'esempio per verificare se l'esempio è simile al proprio scenario. In alternativa, è sufficiente selezionare Clona per clonare direttamente l'esempio, quindi controllare il flusso. Testarlo, modificarlo.

Screenshot della creazione dalla classificazione Web evidenziata dalla raccolta.

Dopo aver selezionato Clona, viene creato un nuovo flusso, che viene salvato in una cartella specifica all'interno dello spazio di archiviazione della condivisione file dell'area di lavoro. Nel pannello di destra è possibile personalizzare il nome della cartella in base alle proprie preferenze.

Avviare sessione di calcolo

Si accederà quindi alla pagina di creazione del flusso. Prima di approfondire, iniziare una sessione di calcolo.

La sessione di calcolo fornisce le risorse di calcolo necessarie per l'esecuzione dell'applicazione, inclusa un'immagine Docker che contiene tutti i pacchetti di dipendenze necessari. È obbligatorio per l'esecuzione del flusso.

Screenshot dell'avvio di una sessione di avvio del calcolo.

Pagina di creazione del flusso

Mentre è in corso l’avvio della sessione di calcolo, è possibile dare un'occhiata alla pagina di creazione del flusso.

Screenshot della classificazione Web che evidenzia l'area di lavoro principale.

A sinistra della pagina di creazione è disponibile la visualizzazione bidimensionale, ovvero l'area di lavoro principale in cui è possibile creare il flusso, ad esempio aggiungere un nuovo nodo, modificare il prompt, selezionare i dati di input del flusso e così via.

Nell'angolo in alto a destra è visualizzata la struttura di cartelle del flusso. Ogni flusso include una cartella che contiene un file flow.dag.yaml, file di codice sorgente e cartelle di sistema. È possibile esportare o importare facilmente un flusso per scopi di test, distribuzione o collaborazione.

Oltre a modificare in linea il nodo nella visualizzazione bidimensionale, è anche possibile attivare l'interruttore Raw file mode (Modalità file non elaborati) e selezionare il nome del file per modificarlo nella scheda di apertura del file.

Screenshot della scheda di modifica del file in modalità file non elaborato.

Nell'angolo in basso a destra è disponibile la visualizzazione grafico. È possibile fare zoom avanti e zoom indietro, definire il layout automatico e così via.

In questa guida si userà l'esempio Web Classification per esaminare il percorso utente principale. Web Classification è un flusso che illustra la classificazione multiclasse con LLM. Dato un URL, il flusso viene classificato in una categoria Web in pochi passaggi e semplici prompt di riepilogo e classificazione. Ad esempio, dato "https://www.imdb.com/", classifica questo URL in "Movie".

Nella visualizzazione grafo è possibile vedere l'aspetto del flusso di esempio. L'input è un URL da classificare. In seguito si usa uno script Python per recuperare il contenuto di testo dall'URL, usare LLM per riassumere il contenuto di testo in meno di 100 parole, quindi classificare in base all'URL e al contenuto di testo riassunto e infine per convertire l'output di LLM in un dizionario. Il nodo prepare_examples consente di aggiungere esempi con pochi passaggi a prompt del nodo di classificazione.

Dati di input del flusso

Quando si espande la sezione Inputs (Input), è possibile creare e visualizzare gli input. Per l'esempio Web Classification, come illustrato nello screenshot seguente, l'input del flusso è un URL di tipo stringa.

Screenshot della classificazione Web che evidenzia gli input.

Lo schema di input (nome: url; tipo: stringa) e il valore vengono già impostati durante la clonazione degli esempi. È possibile cambiare valore specificandolo manualmente, ad esempio "https://www.imdb.com/"".

Configurare i nodi LLM

Per ogni nodo LLM è necessario selezionare una connessione per impostare le chiavi API per LLM.

Screenshot della classificazione Web che mostra l'elenco a discesa della connessione.

Per questo esempio assicurarsi che il tipo di API sia chat perché l'esempio di prompt fornito è per l'API di chat. Per informazioni sulla differenza di formato del prompt delle API di chat e di completamento, vedere Sviluppare un flusso.

A seconda del tipo di connessione selezionato, è quindi necessario selezionare una distribuzione o un modello. Se si usa la connessione Azure OpenAI, è necessario selezionare una distribuzione nell'elenco a discesa. Se non si ha una distribuzione, crearne una nel portale di Azure OpenAI seguendo la procedura Creare una risorsa e distribuire un modello con Azure OpenAI. Se si usa la connessione OpenAI, è necessario selezionare un modello.

Nel flusso sono presenti due nodi LLM (summarize_text_content e classify_with_llm), quindi è necessario configurarne uno per ognuno.

Eseguire un singolo nodo

Per testare un singolo nodo ed eseguirne il debug, selezionare l'icona Run (Esegui) sul nodo nella visualizzazione bidimensionale. Lo stato dell'esecuzione viene visualizzato nella parte superiore. Al termine dell'esecuzione, controllare l'output nella sezione dell'output del nodo.

Screenshot della classificazione Web che mostra prima di tutto l'esecuzione del nodo Python, quindi controllare l'output, quindi eseguire il nodo LLM e quindi controllarne l'output.

Eseguire fetch_text_content_from_url e quindi summarize_text_content, verificare se il flusso riesce a recuperare correttamente il contenuto dal Web e riassumere il contenuto Web.

Nella visualizzazione grafo viene mostrato anche lo stato del singolo nodo. È anche possibile cambiare l'URL di input del flusso per testare il comportamento del nodo con URL diversi.

Eseguire l'intero flusso

Per testare l'intero flusso ed eseguirne il debug, selezionare il pulsante Run (Esegui) in alto a destra.

Screenshot della classificazione Web che mostra un'intera esecuzione ed evidenzia il pulsante Esegui.

È quindi possibile controllare lo stato di esecuzione e l'output di ogni nodo. Nella visualizzazione grafo vengono mostrati anche gli stati dei singoli nodi. Analogamente, è possibile cambiare l'URL di input del flusso per testare il comportamento del flusso con URL diversi.

Impostare e controllare l'output del flusso

Invece di controllare gli output in ogni nodo, è anche possibile impostare l'output del flusso e controllare gli output di più nodi in un'unica posizione. L'output del flusso consente inoltre di:

  • Controllare i risultati dei test in blocco in una singola tabella
  • Definire il mapping dell'interfaccia di valutazione
  • Impostare lo schema di risposta della distribuzione

Quando si clona l'esempio, gli output del flusso (categoria ed evidenza) sono già impostati.

È possibile selezionare il pulsante Visualizza traccia nel banner per visualizzare informazioni dettagliate su input, output, esecuzione del flusso e orchestrazione. Come si può notare, il flusso prevede l'URL di input con una categoria e un'evidenza.

Screenshot della visualizzazione della traccia nella pagina di creazione.

 Screenshot del pulsante Visualizza output in due posizioni.

È possibile selezionare Visualizzare il risultato del test per controllare tutti i test cronologici in un elenco.

Screenshot della classificazione Web che mostra il pulsante Visualizza output.

Screenshot del risultato del test di flusso.

Test e valutazione

Dopo che il flusso è stato eseguito correttamente con una singola riga di dati, è consigliabile testarlo per verificare se funziona correttamente in un set di dati di grandi dimensioni. È quindi possibile eseguire un test in blocco, scegliere alcuni metodi di valutazione e quindi controllare le metriche.

Preparazione dei dati

È però prima necessario preparare i dati di test. Per il momento sono supportati solo file in formato csv, tsv e jsonl.

Passare a GitHub per scaricare "data.csv", il set di dati finale per l'esempio Web Classification.

Evaluate

Fare clic sul pulsante Evaluate (Valuta) accanto al pulsante Run (Esegui). Viene visualizzato un pannello a destra. Si tratta di una procedura guidata che consente di inviare un'esecuzione batch e di selezionare il metodo di valutazione (facoltativo).​​​​​​

È necessario impostare un nome e una descrizione per l'esecuzione batch e quindi scegliere Add new data (Aggiungi nuovi dati) per caricare i dati scaricati. Dopo aver caricato i dati o se i colleghi nell'area di lavoro hanno già creato un set di dati, è possibile scegliere il set di dati dall'elenco a discesa e visualizzare in anteprima le prime cinque righe. L'elenco a discesa di selezione del set di dati supporta la ricerca e i suggerimenti automatici.

Inoltre, il mapping dell'input supporta il mapping dell'input del flusso a una colonna di dati specifica nel set di dati, il che significa che è possibile usare come input qualsiasi colonna, anche se i nomi di colonna non corrispondono.

Screenshot dell'esecuzione e della valutazione di Batch, con l'evidenziazione del caricamento di nuovi dati.

Selezionare quindi uno o più metodi di valutazione. Anche i metodi di valutazione sono flussi che usano Python o LLM e così via per calcolare metriche come accuratezza e punteggio di pertinenza. Nella pagina sono elencati sia i flussi di valutazione predefiniti che quelli personalizzati. Poiché Web Classification è uno scenario di classificazione, è corretto selezionare Classification Accuracy Evaluation (Valutazione di accuratezza della classificazione) per valutarlo.

Screenshot della classificazione Web che mostra l'esecuzione batch e la valutazione sui metodi di valutazione.

Se si è interessati alla modalità di definizione delle metriche per i metodi di valutazione predefiniti, è possibile visualizzare in anteprima i flussi di valutazione selezionando More details (Altri dettagli).

Dopo aver selezionato Classification Accuracy Evaluation (Valutazione di accuratezza della classificazione) come metodo di valutazione, è possibile impostare il mapping dell'interfaccia per eseguire il mapping della verità di base all'input del flusso e della previsione all'output del flusso.

Screenshot della classificazione Web che mostra l'esecuzione batch e la valutazione delle impostazioni di valutazione.

Selezionare quindi Rivedi e invia per inviare un'esecuzione batch e la valutazione selezionata.

Controllare i risultati

Quando l'esecuzione è stata inviata correttamente, selezionare Visualizza l'elenco delle esecuzioni per passare all'elenco delle esecuzione batch di questo flusso.

Il completamento dell'esecuzione batch potrebbe richiedere alcuni minuti. È possibile aggiornare la pagina per caricare lo stato più recente.

Al termine dell'esecuzione batch, selezionare l'esecuzione, quindi Visualize outputs (Visualizza output) per visualizzare il risultato dell'esecuzione batch. Selezionare Visualize outputs (Visualizza output) (icona a forma di occhio) per aggiungere i risultati della valutazione alla tabella dei risultati dell'esecuzione batch. È possibile visualizzare il numero totale di token e l'accuratezza complessiva. Nella tabella verranno quindi visualizzati i risultati per ogni riga di dati: input, output del flusso e risultati della valutazione (quali casi vengono previsti correttamente e quali no).

Screenshot della pagina dei dettagli dell'esecuzione batch della classificazione Web per visualizzare gli output.

È possibile regolare la larghezza delle colonne, nascondere/visualizzare colonne e modificare l'ordine delle colonne. È anche possibile selezionare Export (Esporta) per scaricare la tabella di output per ulteriori analisi. Sono disponibili due opzioni:

  • Download current page (Scarica la pagina corrente): file CSV degli output dell'esecuzione batch nella pagina corrente.
  • Download all data (Scarica tutti i dati): viene scaricato un file di notebook Jupyter da eseguire per scaricare gli output in formato jsonl o csv.

Come forse è noto, l'accuratezza non è l'unica metrica che consente di valutare un'attività di classificazione. Ad esempio, è anche possibile usare il richiamo per eseguire una valutazione. In questo caso, è possibile selezionare Evaluate (Valuta) accanto al pulsante "Visualize outputs" (Visualizza output) e scegliere altri metodi di valutazione per procedere.

Distribuzione

Dopo aver creato un flusso e averlo testato correttamente, è possibile distribuirlo come endpoint in modo da poter richiamare l'endpoint per l'inferenza in tempo reale.

Configurare l'endpoint

Selezionare il collegamento dell'esecuzione batch. Si verrà indirizzati alla pagina dei dettagli dell'esecuzione batch in cui selezionare Distribuisci. Viene visualizzata una procedura guidata che consente di configurare l'endpoint. Specificare un endpoint e un nome di distribuzione, selezionare una macchina virtuale, impostare le connessioni, eseguire alcune impostazioni (è possibile usare le impostazioni predefinite) e quindi selezionare Rivedi e crea per avviare la distribuzione.

Testare l'endpoint

È possibile passare alla pagina dei dettagli dell'endpoint dalla notifica oppure passando a Endpoint nel riquadro di spostamento a sinistra di Studio e quindi selezionare l'endpoint nella scheda Endpoint in tempo reale. La distribuzione dell'endpoint richiede alcuni minuti. Dopo aver distribuito correttamente l'endpoint, è possibile testarlo nella scheda Test.

Inserire l'URL da testare nella casella di input e selezionare Test. Verrà visualizzato il risultato previsto dall'endpoint.

Pulire le risorse

Se si intende passare ora alle guide pratiche e si vogliono usare le risorse create in questo articolo, scegliere Passaggi successivi.

Arrestare l'istanza di ambiente di calcolo

Se non si prevede di usare subito l'istanza di ambiente di calcolo, arrestarla:

  1. Nell'area di spostamento a sinistra nello studio selezionare Ambiente di calcolo.
  2. Nelle schede in alto selezionare Istanze di ambiente di calcolo
  3. Selezionare l'istanza di ambiente di calcolo nell'elenco.
  4. Sulla barra degli strumenti in alto selezionare Arresta.

Eliminare tutte le risorse

Se le risorse create non servono più, eliminarle per evitare addebiti:

  1. Nel portale di Azure fare clic su Gruppi di risorse all'estrema sinistra.
  2. Nell'elenco selezionare il gruppo di risorse creato.
  3. Selezionare Elimina gruppo di risorse.

Passaggi successivi

Ora che si ha un'idea delle operazioni associate al processo di sviluppo, test, valutazione e distribuzione del flusso, è possibile eseguire queste esercitazioni per altre informazioni sul processo: