Dopo aver creato e valutato il modello di IA generativa, puoi utilizzarlo per creare un agente come un chatbot. Il servizio di valutazione dell'IA generativa ti consente di misurare la capacità dell'agente di completare attività e obiettivi per il tuo caso d'uso.
Panoramica
Per valutare il tuo agente, hai a disposizione le seguenti opzioni:
Valutazione della risposta finale: valuta l'output finale di un agente (indipendentemente dal fatto che abbia raggiunto o meno il suo obiettivo).
Valutazione della traiettoria: valuta il percorso (sequenza di chiamate allo strumento) seguito dall'agente per raggiungere la risposta finale.
Con il servizio di valutazione dell'IA generativa, puoi attivare l'esecuzione di un agente e ottenere metriche sia per la valutazione della traiettoria sia per la valutazione della risposta finale in una singola query dell'SDK Vertex AI.
Agenti supportati
Il servizio di valutazione dell'IA generativa supporta le seguenti categorie di agenti:
Agenti supportati | Descrizione |
---|---|
Agente creato con il modello del motore di ragionamento | Reasoning Engine (LangChain su Vertex AI) è una piattaforma Google Cloud in cui puoi eseguire il deployment e gestire gli agenti. |
Agenti LangChain creati utilizzando il modello personalizzabile del Reasoning Engine | LangChain è una piattaforma open source. |
Funzione agente personalizzata | La funzione dell'agente personalizzato è una funzione flessibile che riceve un prompt per l'agente e restituisce una risposta e una traiettoria in un dizionario. |
Definizione delle metriche per la valutazione degli agenti
Definisci le metriche per la valutazione della risposta finale o della traiettoria:
Valutazione della risposta finale
La valutazione della risposta finale segue la stessa procedura della valutazione della risposta del modello. Per ulteriori informazioni, consulta Definire le metriche di valutazione.
Valutazione della traiettoria
Le seguenti metriche ti aiutano a valutare la capacità del modello di seguire la traiettoria prevista:
Corrispondenza esatta
Se la traiettoria prevista è identica a quella di riferimento, con le stesse chiamate dello strumento nello stesso ordine, la metrica trajectory_exact_match
restituisce un punteggio pari a 1, altrimenti 0.
Parametri di input delle metriche
Parametro di input | Descrizione |
---|---|
predicted_trajectory |
L'elenco delle chiamate allo strumento utilizzate dall'agente per raggiungere la risposta finale. |
reference_trajectory |
L'utilizzo dello strumento previsto per consentire all'agente di soddisfare la query. |
Genera punteggi
Valore | Descrizione |
---|---|
0 | La traiettoria prevista non corrisponde al riferimento. |
1 | La traiettoria prevista corrisponde a quella di riferimento. |
Corrispondenza in ordine
Se la traiettoria prevista contiene tutte le chiamate allo strumento della traiettoria di riferimento nello stesso ordine e può anche avere chiamate allo strumento aggiuntive, la metrica trajectory_in_order_match
restituisce un punteggio pari a 1, altrimenti 0.
Parametri di input delle metriche
Parametro di input | Descrizione |
---|---|
predicted_trajectory |
La traiettoria prevista utilizzata dall'agente per raggiungere la risposta finale. |
reference_trajectory |
La traiettoria prevista per consentire all'agente di soddisfare la query. |
Genera punteggi
Valore | Descrizione |
---|---|
0 | Le chiamate dello strumento nella traiettoria prevista non corrispondono all'ordine nella traiettoria di riferimento. |
1 | La traiettoria prevista corrisponde a quella di riferimento. |
Corrispondenza in qualsiasi ordine
Se la traiettoria prevista contiene tutte le chiamate dello strumento della traiettoria di riferimento, ma l'ordine non è importante e possono essere presenti chiamate dello strumento aggiuntive, la metrica trajectory_any_order_match
restituisce un punteggio pari a 1, altrimenti 0.
Parametri di input delle metriche
Parametro di input | Descrizione |
---|---|
predicted_trajectory |
L'elenco delle chiamate allo strumento utilizzate dall'agente per raggiungere la risposta finale. |
reference_trajectory |
L'utilizzo dello strumento previsto per consentire all'agente di soddisfare la query. |
Genera punteggi
Valore | Descrizione |
---|---|
0 | La traiettoria prevista non contiene tutte le chiamate allo strumento nella traiettoria di riferimento. |
1 | La traiettoria prevista corrisponde a quella di riferimento. |
Precisione
La metrica trajectory_precision
misura quante chiamate allo strumento nella traiettoria prevista sono effettivamente pertinenti o corrette in base alla traiettoria di riferimento.
La precisione viene calcolata nel seguente modo: conteggia quante azioni nella traiettoria prevista compaiono anche nella traiettoria di riferimento. Dividi questo conteggio per il numero totale di azioni nella traiettoria prevista.
Parametri di input delle metriche
Parametro di input | Descrizione |
---|---|
predicted_trajectory |
L'elenco delle chiamate allo strumento utilizzate dall'agente per raggiungere la risposta finale. |
reference_trajectory |
L'utilizzo dello strumento previsto per consentire all'agente di soddisfare la query. |
Genera punteggi
Valore | Descrizione |
---|---|
Un valore float compreso nell'intervallo [0,1] | Più alto è il punteggio, più precisa è la traiettoria prevista. |
Richiamo
La metrica trajectory_recall
misura quante chiamate allo strumento essenziali della traiettoria di riferimento vengono effettivamente acquisite nella traiettoria prevista.
Il richiamo viene calcolato nel seguente modo: conteggia quante azioni nella traiettoria di riferimento appaiono anche nella traiettoria prevista. Dividi questo conteggio per il numero totale di azioni nella traiettoria di riferimento.
Parametri di input delle metriche
Parametro di input | Descrizione |
---|---|
predicted_trajectory |
L'elenco delle chiamate allo strumento utilizzate dall'agente per raggiungere la risposta finale. |
reference_trajectory |
L'utilizzo dello strumento previsto per consentire all'agente di soddisfare la query. |
Genera punteggi
Valore | Descrizione |
---|---|
Un valore float compreso nell'intervallo [0,1] | Più alto è il punteggio, maggiore è il richiamo della traiettoria prevista. |
Utilizzo di un solo strumento
La metrica trajectory_single_tool_use
verifica se nella traiettoria prevista viene utilizzato uno strumento specifico specificato nella specifica della metrica. Non controlla l'ordine delle chiamate allo strumento o quante volte viene utilizzato, ma solo se è presente o meno.
Parametri di input delle metriche
Parametro di input | Descrizione |
---|---|
predicted_trajectory |
L'elenco delle chiamate allo strumento utilizzate dall'agente per raggiungere la risposta finale. |
Genera punteggi
Valore | Descrizione |
---|---|
0 | Lo strumento non è presente |
1 | Lo strumento è presente. |
Inoltre, per impostazione predefinita ai risultati della valutazione vengono aggiunte le seguenti due metriche sul rendimento dell'agente. Non è necessario specificarli in EvalTask
.
latency
Tempo impiegato dall'agente per rispondere.
Valore | Descrizione |
---|---|
Un galleggiante | Calcolata in secondi. |
failure
Un valore booleano per descrivere se l'invocazione dell'agente ha generato un errore o è andata a buon fine.
Genera punteggi
Valore | Descrizione |
---|---|
1 | Errore |
0 | Risposta valida restituita |
Preparare il set di dati per la valutazione dell'agente
Prepara il set di dati per la valutazione finale della risposta o della traiettoria.
Lo schema di dati per la valutazione della risposta finale è simile a quello della valutazione della risposta del modello.
Per la valutazione della traiettoria basata su calcolo, il set di dati deve fornire le seguenti informazioni:
Tipo input | Contenuti del campo di immissione |
---|---|
predicted_trajectory |
L'elenco delle chiamate allo strumento utilizzate dagli agenti per raggiungere la risposta finale. |
reference_trajectory (non obbligatorio per trajectory_single_tool_use metric ) |
L'utilizzo dello strumento previsto per consentire all'agente di soddisfare la query. |
Esempi di set di dati di valutazione
Gli esempi riportati di seguito mostrano i set di dati per la valutazione della traiettoria. Tieni presente che reference_trajectory
è obbligatorio per tutte le metriche, ad eccezione di trajectory_single_tool_use
.
reference_trajectory = [
# example 1
[
{
"tool_name": "set_device_info",
"tool_input": {
"device_id": "device_2",
"updates": {
"status": "OFF"
}
}
}
],
# example 2
[
{
"tool_name": "get_user_preferences",
"tool_input": {
"user_id": "user_y"
}
},
{
"tool_name": "set_temperature",
"tool_input": {
"location": "Living Room",
"temperature": 23
}
},
]
]
predicted_trajectory = [
# example 1
[
{
"tool_name": "set_device_info",
"tool_input": {
"device_id": "device_3",
"updates": {
"status": "OFF"
}
}
}
],
# example 2
[
{
"tool_name": "get_user_preferences",
"tool_input": {
"user_id": "user_z"
}
},
{
"tool_name": "set_temperature",
"tool_input": {
"location": "Living Room",
"temperature": 23
}
},
]
]
eval_dataset = pd.DataFrame({
"predicted_trajectory": predicted_trajectory,
"reference_trajectory": reference_trajectory,
})
Importa il set di dati di valutazione
Puoi importare il set di dati nei seguenti formati:
File JSONL o CSV archiviato in Cloud Storage
Tabella BigQuery
DataFrame Pandas
Il seguente codice mostra come importare set di dati di esempio da un bucket Cloud Storage:
# dataset name to be imported
dataset = "on-device" # customer-support, content-creation
# copy the tools and dataset file
!gcloud storage cp gs://cloud-ai-demo-datasets/agent-eval-datasets/{dataset}/tools.py .
!gcloud storage cp gs://cloud-ai-demo-datasets/agent-eval-datasets/{dataset}/eval_dataset.json .
# load the dataset examples
import json
eval_dataset = json.loads(open('eval_dataset.json').read())
# run the tools file
%run -i tools.py
Esegui la valutazione dell'agente
Esegui una valutazione della traiettoria o della risposta finale:
Per la valutazione dell'agente, puoi combinare le metriche di valutazione della risposta e quelle di valutazione della traiettoria, come nel seguente codice:
single_tool_use_metric = TrajectorySingleToolUse(tool_name='tool_name')
eval_task = EvalTask(
dataset=EVAL_DATASET,
metrics=[
"rouge_l_sum",
"bleu",
custom_response_eval_metric,
"trajectory_exact_match",
"trajectory_precision",
single_tool_use_metric
pointwise_trajectory_eval_metric # llm-based metric
],
)
eval_result = eval_task.evaluate(
runnable=RUNNABLE,
)
Personalizzazione delle metriche
Puoi personalizzare una metrica basata su modelli linguistici di grandi dimensioni per la valutazione della traiettoria utilizzando un'interfaccia basata su modelli o da zero. Puoi anche definire una metrica personalizzata basata su calcoli per la valutazione della traiettoria.
Visualizzare e interpretare i risultati
Per la valutazione della traiettoria o la valutazione della risposta finale, i risultati della valutazione vengono visualizzati come segue:
I risultati della valutazione contengono le seguenti informazioni:
Metriche di risposta finale
Risultati a livello di istanza
Colonna | Descrizione |
---|---|
risposta | Risposta finale generata dall'agente. |
latency_in_seconds | Tempo impiegato per generare la risposta. |
operazione non riuscita | Indica se è stata generata o meno una risposta valida. |
punteggio | Un punteggio calcolato per la risposta specificata nella specifica della metrica. |
spiegazione | La spiegazione del punteggio specificato nella specifica della metrica. |
Risultati aggregati
Colonna | Descrizione |
---|---|
medio | Punteggio medio per tutte le istanze. |
deviazione standard | Deviazione standard per tutti i punteggi. |
Metriche sulla traiettoria
Risultati a livello di istanza
Colonna | Descrizione |
---|---|
predicted_trajectory | Sequenza di chiamate allo strumento seguite dall'agente per raggiungere la risposta finale. |
reference_trajectory | Sequenza di chiamate dello strumento previste. |
punteggio | Un punteggio calcolato per la traiettoria prevista e la traiettoria di riferimento specificata nella specifica della metrica. |
latency_in_seconds | Tempo impiegato per generare la risposta. |
operazione non riuscita | Indica se è stata generata o meno una risposta valida. |
Risultati aggregati
Colonna | Descrizione |
---|---|
medio | Punteggio medio per tutte le istanze. |
deviazione standard | Deviazione standard per tutti i punteggi. |
Passaggi successivi
Prova i seguenti notebook per la valutazione degli agenti: