Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica solo a:Portale di Foundry (versione classica). Questo articolo non è disponibile per il nuovo portale foundry.
Altre informazioni sul nuovo portale.
Nota
I collegamenti in questo articolo potrebbero aprire contenuto nella nuova documentazione di Microsoft Foundry anziché nella documentazione di Foundry (versione classica) visualizzata.
Avviso
Lo sviluppo delle funzionalità di Prompt Flow è terminato il 20 aprile 2026. La funzionalità verrà ritirata completamente il 20 aprile 2027. Alla data di ritiro, Prompt Flow passa alla modalità di sola lettura. I flussi esistenti continueranno a funzionare fino a tale data.
Azione consigliata: Eseguire la migrazione dei carichi di lavoro di Prompt Flow a Microsoft Agent Framework prima del 20 aprile 2027.
I flussi di valutazione sono tipi speciali di flussi che valutano il modo in cui gli output di un'esecuzione sono allineati a criteri e obiettivi specifici.
Nel prompt flow, è possibile personalizzare il flusso di valutazione adattandolo alle attività e agli obiettivi specifici, e utilizzarlo per valutare altri flussi. In questo documento si apprenderà quanto segue:
- Come sviluppare un metodo di valutazione.
- Informazioni su input, output e metriche di log per le valutazioni dei flussi di prompt.
Prerequisiti
Importante
Questo articolo fornisce il supporto legacy per i progetti basati su hub. Non funzionerà per i progetti Foundry. Vedere Come si conosce il tipo di progetto di cui si dispone?
nota di compatibilità SDK: gli esempi di codice richiedono una versione specifica Microsoft Foundry SDK. Se si verificano problemi di compatibilità, valutare la possibilità di eseguire la migrazione da un progetto basato su hub a un progetto Foundry.
- Un account Azure con una sottoscrizione attiva. Se non ne hai uno, crea un account gratuito Azure, che include una sottoscrizione di valutazione gratuita.
- Se non ne hai uno, crea un progetto basato su hub.
Avvio dello sviluppo di un metodo di valutazione
Esistono due modi per sviluppare metodi di valutazione personalizzati:
Personalizzare un flusso di valutazione predefinito: Modificare un flusso di valutazione predefinito.
- Sotto Costruisci e personalizza, selezionare Flusso di richiesta.
- Selezionare Crea per aprire la procedura guidata di creazione del flusso.
- Nella raccolta di flussi in Esplora raccolta selezionare Flusso di valutazione per filtrare in base a tale tipo. Selezionare un esempio e selezionare Clona per eseguire la personalizzazione.
Creare un nuovo flusso di valutazione da zero: Sviluppare un metodo di valutazione completamente nuovo.
- Sotto Costruisci e personalizza, selezionare Flusso di richiesta.
- Selezionare Crea per aprire la procedura guidata di creazione del flusso.
- Nella raccolta di flussi in Crea per tipo nella casella "Flusso di valutazione" selezionare Crea , quindi è possibile visualizzare un modello di flusso di valutazione.
Comprendere la valutazione nel flusso prompt
In Flusso prompt un flusso è una sequenza di nodi che elaborano un input e generano un output. I flussi di valutazione accettano anche gli input necessari e producono output corrispondenti.
Alcune funzionalità speciali dei metodi di valutazione sono:
- In genere vengono eseguiti dopo l'esecuzione da testare e ricevono output da tale esecuzione.
- Oltre agli output dell'esecuzione da testare, facoltativamente possono ricevere un altro set di dati che potrebbe contenere verità di base corrispondenti.
- Possono avere un nodo di aggregazione che calcola le prestazioni complessive del flusso testato in base ai singoli punteggi.
- Possono registrare le metriche usando la
log_metric()funzione .
Viene presentato il modo in cui gli input e gli output devono essere definiti nello sviluppo di metodi di valutazione.
Ingressi
Una valutazione viene eseguita dopo un'altra esecuzione per valutare quanto bene gli output di quella esecuzione si allineano a criteri e obiettivi specifici. Pertanto, la valutazione riceve gli output generati da tale esecuzione.
Potrebbero essere necessari anche altri input, ad esempio il "ground truth", che potrebbe provenire da un set di dati. Per impostazione predefinita, la valutazione usa lo stesso set di dati del set di dati di test fornito per l'esecuzione testata. Tuttavia, se le etichette corrispondenti o i valori di verità del terreno di destinazione si trovano in un set di dati diverso, è possibile passare facilmente a tale valore.
Pertanto, per eseguire una valutazione, è necessario indicare le origini di questi input necessari. A tale scopo, quando si invia una valutazione, viene visualizzata una sezione "mappatura degli input".
- Se l'origine dati proviene dall'output di esecuzione, l'origine viene indicata come
${run.output.[OutputName]} - Se l'origine dati proviene dal set di dati di test, l'origine viene indicata come
${data.[ColumnName]}
Nota
Se la valutazione non richiede dati dal set di dati, non è necessario fare riferimento ad alcuna colonna del set di dati nella sezione mapping di input, a indicare che la selezione del set di dati è una configurazione facoltativa. La selezione del set di dati non influisce sul risultato della valutazione.
Descrizione dell'input
Per ricordare quali input sono necessari per calcolare le metriche, è possibile aggiungere una descrizione per ogni input necessario. Le descrizioni vengono visualizzate durante la fase di mapping delle origini nel processo di invio in modalità batch.
Per aggiungere descrizioni per ogni input, selezionare Mostra descrizione nella sezione input durante lo sviluppo del metodo di valutazione. E puoi selezionare "Nascondi descrizione" per nascondere la descrizione.
Questa descrizione viene quindi visualizzata quando si usa questo metodo di valutazione nell'invio in elaborazione batch.
Output e metriche
Gli output di una valutazione sono i risultati che misurano le prestazioni del flusso sottoposto a test. L'output contiene in genere metriche, ad esempio punteggi, e può includere anche testo per motivi e suggerimenti.
Produzione di punteggi a livello di istanza
Nel flusso di richiesta, il flusso elabora ogni set di dati di esempio uno alla volta e genera un record di output. Analogamente, nella maggior parte dei casi di valutazione è presente una metrica per ogni output, che consente di controllare le prestazioni del flusso su ogni singolo dato.
Per registrare il punteggio per ogni campione di dati, calcolare il punteggio per ogni output e registrare il punteggio come output del flusso definendolo nella sezione di output. Questa esperienza di creazione è identica alla definizione di un output di flusso standard.
Questo punteggio viene calcolato nel nodo line_process, che è possibile creare e modificare da zero quando si crea in base al tipo. È anche possibile sostituire questo nodo Python con un nodo LLM per usare LLM per calcolare il punteggio.
Quando questo metodo di valutazione viene usato per valutare un altro flusso, il punteggio a livello di istanza può essere visualizzato nella schedaOutput>.
Nodo di registrazione e aggregazione delle metriche
Inoltre, è anche importante fornire un punteggio complessivo per la corsa. È possibile controllare il "set come aggregazione" di un nodo Python in un flusso di valutazione per trasformarlo in un nodo "reduce", consentendo al nodo di accettare gli input come un elenco ed elaborarli in batch.
In questo modo, è possibile calcolare ed elaborare tutti i punteggi di ogni output del flusso e calcolare un risultato complessivo per ogni variante.
È possibile registrare le metriche in un nodo di aggregazione usando Prompt flow_sdk.log_metrics(). Le metriche devono essere numeriche (float/int). La registrazione delle metriche del tipo stringa non è supportata.
Questo punteggio viene calcolato nel aggregate nodo, che è possibile creare e modificare da zero durante la creazione in base al tipo. È anche possibile sostituire questo nodo Python con un nodo LLM per usare LLM per calcolare il punteggio. Vedere l'esempio seguente per l'uso dell'API log_metric in un flusso di valutazione:
from typing import List
from promptflow import tool, log_metric
@tool
def calculate_accuracy(grades: List[str], variant_ids: List[str]):
aggregate_grades = {}
for index in range(len(grades)):
grade = grades[index]
variant_id = variant_ids[index]
if variant_id not in aggregate_grades.keys():
aggregate_grades[variant_id] = []
aggregate_grades[variant_id].append(grade)
# calculate accuracy for each variant
for name, values in aggregate_grades.items():
accuracy = round((values.count("Correct") / len(values)), 2)
log_metric("accuracy", accuracy, variant_id=name)
return aggregate_grades
Quando questa funzione è stata chiamata nel nodo Python, non è necessario assegnarla altrove ed è possibile visualizzare le metriche in un secondo momento. Quando questo metodo di valutazione viene usato in un'esecuzione batch, il punteggio a livello di istanza può essere visualizzato nella scheda Panoramica-Metriche>.