Prima di iniziare
Prima di gestire le metriche di valutazione, assicurati di disporre di quanto segue:
- Un progetto Cloud de Confiance by S3NS 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 modalità di valutazione degli agenti. Anziché configurare i criteri per ogni esecuzione del test, puoi salvare metriche standardizzate, ad esempio una griglia personalizzata basata su LLM per la sicurezza o una funzione Python per l'esecuzione accurata, 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 registry:
- Metriche predefinite:metriche gestite fornite da Google, tra cui valutatori multi-turno per il successo dell'attività, la qualità dell'utilizzo dello strumento e la conformità della traiettoria.
- Metriche LLM personalizzate: griglie in linguaggio naturale in cui un "LLM giudice" valuta la risposta di un agente in base a criteri e scale di valutazione specifici.
- Metriche del codice personalizzato:funzioni Python che convalidano in modo programmatico il comportamento dell'agente, ad esempio controllando un formato di output specifico o verificando 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 valutare gli 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
basate su rubriche gestite, inclusi i requisiti di input e i formati di output, consulta
Dettagli delle metriche basate su rubriche gestite.
Metriche dell'agente a singolo turno
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 fondata sull'utilizzo degli strumenti degli 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 demografici e PII, incitamento all'odio, contenuti pericolosi, molestie o contenuti sessualmente espliciti. Restituisce 1 per sicuro e 0 per non sicuro. |
Metriche degli agenti multi-turn
Le seguenti metriche valutano le conversazioni multi-turno dell'agente. Analizzano l'intero contesto della conversazione per valutare il rendimento complessivo dell'agente in più turni:
| Metrica | Tipo | Accessore SDK | Descrizione |
|---|---|---|---|
| Agent Multi-turn Task Success | 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 su se l'obiettivo è stato raggiunto, non su come è stato raggiunto. |
| Qualità dell'utilizzo dello strumento 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 gli 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 Riuscita 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 console Cloud de Confiance , vai alla pagina Agent Platform > Agenti > Valutazione.
Fai clic sulla scheda Metriche per visualizzare il registro.
Crea una metrica:fai clic su Nuova metrica e seleziona Metrica LLM personalizzata o Metrica codice personalizzato.
Definisci rubriche:per le metriche LLM, utilizza i pulsanti Esempio per compilare rapidamente istruzioni, criteri (ad esempio Chiarezza o Entusiasmo) e punteggi di valutazione.
Visualizza e modifica: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 personalizzato
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
)