Prima di iniziare
Prima di gestire le metriche di valutazione, assicurati di avere quanto segue:
- Un Google Cloud progetto con l'API Agent Platform abilitata.
- (Facoltativo) Se utilizzi l'SDK Agent Platform, inizializza il client come descritto in Valutare gli agenti.
Il registro delle metriche ti consente di definire, archiviare e gestire configurazioni riutilizzabili per la valutazione degli agenti. Anziché configurare i criteri per ogni esecuzione di test, puoi salvare metriche standardizzate, ad esempio una griglia personalizzata basata su LLM per la sicurezza o una funzione Python per l'accuratezza dell'esecuzione, e applicarle in modo coerente sia alle valutazioni offline sia ai monitor online continui.
Tipi di metriche
Agent Platform supporta tre tipi di metriche nel registro:
- Metriche predefinite: metriche gestite fornite da Google, inclusi i valutatori multi-turno per il successo dell'attività, la qualità dell'utilizzo degli strumenti e la conformità della traiettoria.
- Metriche LLM personalizzate: griglie in linguaggio naturale in cui un "LLM di valutazione" valuta la risposta di un agente in base a criteri e scale di valutazione specifici.
- Metriche codice personalizzate: funzioni Python che convalidano a livello di programmazione il comportamento dell'agente, ad esempio verificando un formato di output specifico o una risposta dello strumento.
Oltre alle metriche gestite fornite da Google, puoi utilizzare metriche registrate personalizzate per la valutazione.
Metriche predefinite
Agent Platform fornisce un insieme di metriche predefinite per la valutazione degli agenti. Queste metriche sono gestite da Google e coprono le dimensioni di valutazione comuni per le interazioni degli agenti a turno singolo e multi-turno.
Puoi accedere alle metriche predefinite nell'SDK utilizzando types.RubricMetric.METRIC_NAME. Per i dettagli completi di tutte le metriche gestite
basate su griglie, inclusi i requisiti di input e i formati di output, consulta
Dettagli delle metriche gestite basate su griglie.
Metriche degli agenti a turno singolo
Le seguenti metriche valutano una singola interazione dell'agente (un prompt e una risposta, potenzialmente con chiamate di strumenti intermedie):
| Metrica | Tipo | Accessore SDK | Descrizione |
|---|---|---|---|
| Qualità della risposta finale dell'agente | Griglia adattiva | types.RubricMetric.FINAL_RESPONSE_QUALITY |
Valutazione completa che genera automaticamente i criteri della griglia in base alla configurazione dell'agente (istruzioni di sistema e dichiarazioni degli strumenti) e al prompt dell'utente. |
| Allucinazione dell'agente | Griglia statica | types.RubricMetric.HALLUCINATION |
Verifica l'oggettività segmentando la risposta in attestazioni atomiche e verificando che ogni attestazione sia basata sull'utilizzo degli strumenti negli eventi intermedi. |
| Qualità dell'utilizzo degli strumenti dell'agente | Griglia adattiva | types.RubricMetric.TOOL_USE_QUALITY |
Valuta la selezione degli strumenti appropriati, l'utilizzo corretto dei parametri e il rispetto della sequenza di operazioni specificata. |
| Sicurezza | Griglia statica | types.RubricMetric.SAFETY |
Valuta se la risposta viola le norme sulla sicurezza, inclusi dati PII e demografici, incitamento all'odio, contenuti pericolosi, molestie o contenuti sessualmente espliciti. Restituisce 1 per sicuro e 0 per non sicuro. |
Metriche degli agenti multi-turno
Le seguenti metriche valutano le conversazioni degli agenti multi-turno. Analizzano il contesto completo della conversazione per valutare il rendimento complessivo dell'agente in più turni:
| Metrica | Tipo | Accessore SDK | Descrizione |
|---|---|---|---|
| Successo dell'attività multi-turno dell'agente | Griglia adattiva | types.RubricMetric.MULTI_TURN_TASK_SUCCESS |
Valuta se l'agente ha raggiunto correttamente l'obiettivo o gli obiettivi della conversazione. Questa metrica senza riferimenti si concentra sul se l'obiettivo è stato raggiunto, non sul come è stato raggiunto. |
| Qualità dell'utilizzo degli strumenti multi-turno dell'agente | Griglia adattiva | types.RubricMetric.MULTI_TURN_TOOL_USE_QUALITY |
Valuta la qualità delle chiamate di funzione effettuate durante una conversazione multi-turno. Valuta se l'agente ha chiamato gli strumenti giusti con argomenti corretti al momento giusto. |
| Qualità della traiettoria multi-turno dell'agente | Griglia adattiva | types.RubricMetric.MULTI_TURN_TRAJECTORY_QUALITY |
Valuta la traiettoria (percorso) complessiva della conversazione. A differenza di Successo dell'attività, questa metrica valuta come l'agente ha raggiunto l' obiettivo, ovvero se il percorso di ragionamento è stato logico ed efficiente. |
Utilizzare le metriche predefinite nell'SDK
from vertexai import evals, types
# Run an evaluation with predefined metrics
result = client.evals.evaluate(
dataset=eval_dataset,
metrics=[
types.RubricMetric.FINAL_RESPONSE_QUALITY,
types.RubricMetric.TOOL_USE_QUALITY,
types.RubricMetric.HALLUCINATION,
types.RubricMetric.SAFETY,
],
)
# Visualize results in Colab
result.show()
Gestire le metriche nella console
Nella Google Cloud console, vai alla pagina Agent Platform > Agenti > Valutazione.
Fai clic sulla scheda Metriche per visualizzare il registro.
Creare una metrica: fai clic su Nuova metrica e seleziona Metrica LLM personalizzata o Metrica codice personalizzata.
Definire le griglie: per le metriche LLM, utilizza i pulsanti Esempio per compilare rapidamente istruzioni, criteri (ad esempio, Chiarezza o Entusiasmo) e punteggi di valutazione.
Visualizzare e modificare: fai clic sul nome di una metrica per visualizzarne la definizione in modalità di sola lettura oppure utilizza l'icona Altre opzioni more_vert per Duplicare o Eliminare la risorsa.
Gestire le metriche con l'SDK
Puoi registrare e utilizzare le metriche a livello di programmazione utilizzando l'SDK Agent Platform.
Registrare una metrica LLM personalizzata
from vertexai import evals, types
# Define a metric with a specific rubric
tone_check_metric = types.LLMMetric(
name="tone_check",
prompt_template="Analyze the tone of the response ...",
result_parsing_function="""
import json, re
def parse_results(responses):
response = json.loads(responses[0])
return {"score": response.get("score", 0.0),
"explanation": response.get("explanation", "default explanation")}
"""
)
# Register the custom metric
tone_check_metric_path = client.evals.create_evaluation_metric(
metric=tone_check_metric
)
Registrare una metrica codice personalizzata
from vertexai import evals, types
# Define a metric with custom python code
accuracy_metric_code = """
def evaluate(instance: dict) -> float:
agent_data = instance.get('agent_eval_data', {})
turns = agent_data.get('turns', [])
for turn in turns:
...
"""
accuracy_metric = types.CodeExecutionMetric(
name="multi_turn_accuracy",
custom_function=accuracy_metric_code
)
# Register the custom metric
accuracy_metric_path = client.evals.create_evaluation_metric(
metric=accuracy_metric
)