API Rapid Assessment

Il servizio di valutazione rapida consente di valutare i modelli linguistici di grandi dimensioni (LLM), sia puntualmente che a coppie, in diverse metriche. Puoi fornire input tempo di inferenza, risposte LLM e parametri aggiuntivi e il servizio di valutazione restituisce metriche specifiche per l'attività di valutazione.

Le metriche includono metriche basate su modelli (ad esempio SummarizationQuality) e metriche calcolate in memoria (rouge, bleu) e chiamate di funzione degli strumenti. Poiché il servizio prende i risultati della previsione direttamente dai modelli come input, il servizio di valutazione può eseguire sia l'inferenza che la valutazione successiva su tutti i modelli supportati da Vertex AI.

Per saperne di più sulla valutazione di un modello, consulta Panoramica del servizio di valutazione dell'IA generativa.

Limitazioni

Di seguito sono riportate le limitazioni del servizio di valutazione:

  • Le metriche basate su modello consumano quota text-bison. Il servizio di valutazione rapida sfrutta text-bison come modello arbitro di base per calcolare le metriche basate su modello.
  • Il servizio di valutazione ha un ritardo nella propagazione. Potrebbe non essere disponibile per diversi minuti dopo la prima chiamata al servizio.

Sintassi di esempio

Sintassi per inviare una chiamata di valutazione.

curl

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \

https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}:evaluateInstances \
-d '{
  "contents": [{
    ...
  }],
  "tools": [{
    "function_declarations": [
      {
        ...
      }
    ]
  }]
}'

Python

import json

from google import auth
from google.api_core import exceptions
from google.auth.transport import requests as google_auth_requests

creds, _ = auth.default(
    scopes=['https://www.googleapis.com/auth/cloud-platform'])

data = {
  ...
}

uri = f'https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}:evaluateInstances'
result = google_auth_requests.AuthorizedSession(creds).post(uri, json=data)

print(json.dumps(result.json(), indent=2))

Elenco dei parametri

Parametri

exact_match_input

Facoltativo: ExactMatchInput

Input per valutare se la previsione corrisponde esattamente al riferimento.

bleu_input

Facoltativo: BleuInput

Input per calcolare il punteggio BLEU confrontando la previsione con il riferimento.

rouge_input

Facoltativo: RougeInput

Input per calcolare i punteggi di rouge confrontando la previsione con il riferimento. Punteggi di rouge diversi sono supportati da rouge_type.

fluency_input

Facoltativo: FluencyInput

Input per valutare la padronanza linguistica di una singola risposta.

coherence_input

Facoltativo: CoherenceInput

Input per valutare la capacità di una singola risposta di fornire una risposta coerente e facile da seguire.

safety_input

Facoltativo: SafetyInput

Input per valutare il livello di sicurezza di una singola risposta.

groundedness_input

Facoltativo: GroundednessInput

Input per valutare la capacità di una singola risposta di fornire o fare riferimento a informazioni incluse solo nel testo di input.

fulfillment_input

Facoltativo: FulfillmentInput

Input per valutare la capacità di una singola risposta di soddisfare completamente le istruzioni.

summarization_quality_input

Facoltativo: SummarizationQualityInput

Input per valutare la capacità complessiva di una singola risposta di riassumere il testo.

pairwise_summarization_quality_input

Facoltativo: PairwiseSummarizationQualityInput

Input per confrontare la qualità complessiva del riassunto di due risposte.

summarization_helpfulness_input

Facoltativo: SummarizationHelpfulnessInput

Input per valutare la capacità di una singola risposta di fornire un riassunto, che contiene i dettagli necessari per sostituire il testo originale.

summarization_verbosity_input

Facoltativo: SummarizationVerbosityInput

Input per valutare la capacità di una singola risposta di fornire un riassunto conciso.

question_answering_quality_input

Facoltativo: QuestionAnsweringQualityInput

Input per valutare la capacità complessiva di una singola risposta di rispondere alle domande, dato il corpo di un testo a cui fare riferimento.

pairwise_question_answering_quality_input

Facoltativo: PairwiseQuestionAnsweringQualityInput

Input per confrontare la capacità complessiva di due risposte di rispondere alle domande, dato un corpo di testo a cui fare riferimento.

question_answering_relevance_input

Facoltativo: QuestionAnsweringRelevanceInput

Input per valutare la capacità di una singola risposta di rispondere con informazioni pertinenti quando viene fatta una domanda.

question_answering_helpfulness_input

Facoltativo: QuestionAnsweringHelpfulnessInput

Input per valutare la capacità di una singola risposta di fornire dettagli chiave quando si risponde a una domanda.

question_answering_correctness_input

Facoltativo: QuestionAnsweringCorrectnessInput

Input per valutare la capacità di una singola risposta di rispondere correttamente a una domanda.

tool_call_valid_input

Facoltativo: ToolCallValidInput

Input per valutare la capacità di una singola risposta di prevedere una chiamata strumento valida.

tool_name_match_input

Facoltativo: ToolNameMatchInput

Input per valutare la capacità di una singola risposta di prevedere una chiamata di strumento con il nome dello strumento corretto.

tool_parameter_key_match_input

Facoltativo: ToolParameterKeyMatchInput

Input per valutare la capacità di una singola risposta di prevedere una chiamata di strumento con i nomi dei parametri corretti.

tool_parameter_kv_match_input

Facoltativo: ToolParameterKvMatchInput

Input per valutare la capacità di una singola risposta di prevedere una chiamata di strumento con i nomi e i valori dei parametri corretti

ExactMatchInput

{
  "exact_match_input": {
    "metric_spec": {},
    "instances": [
      {
        "prediction": string,
        "reference": string
      }
    ]
  }
}
Parametri

metric_spec

Facoltativo: ExactMatchSpec.

Specifica della metrica, che definisce il comportamento della metrica.

instances

Facoltativo: ExactMatchInstance[]

Input di valutazione, composto da risposta e riferimento LLM.

instances.prediction

Facoltativo: string

la risposta LLM.

instances.reference

Facoltativo: string

Risposta LLM dorata come riferimento.

ExactMatchResults

{
  "exact_match_results": {
    "exact_match_metric_values": [
      {
        "score": float
      }
    ]
  }
}
Salvaguardie

exact_match_metric_values

ExactMatchMetricValue[]

Risultati della valutazione per input dell'istanza.

exact_match_metric_values.score

float

Il valore sarà uno dei seguenti:

  • 0: l'istanza non era una corrispondenza esatta
  • 1: corrispondenza esatta

BleuInput

{
  "bleu_input": {
    "metric_spec": {},
    "instances": [
      {
        "prediction": string,
        "reference": string
      }
    ]
  }
}
Parametri

metric_spec

Facoltativo: BleuSpec

Specifica della metrica, che definisce il comportamento della metrica.

instances

Facoltativo: BleuInstance[]

Input di valutazione, composto da risposta e riferimento LLM.

instances.prediction

Facoltativo: string

la risposta LLM.

instances.reference

Facoltativo: string

Risposta LLM dorata come riferimento.

BleuResults

{
  "bleu_results": {
    "bleu_metric_values": [
      {
        "score": float
      }
    ]
  }
}
Salvaguardie

bleu_metric_values

BleuMetricValue[]

Risultati della valutazione per input dell'istanza.

bleu_metric_values.score

float: [0, 1], dove punteggi più alti indicano che la previsione è più simile al riferimento.

RougeInput

{
  "rouge_input": {
    "metric_spec": {
      "rouge_type": string,
      "use_stemmer": bool,
      "split_summaries": bool
    },
    "instances": [
      {
        "prediction": string,
        "reference": string
      }
    ]
  }
}
Parametri

metric_spec

Facoltativo: RougeSpec

Specifica della metrica, che definisce il comportamento della metrica.

metric_spec.rouge_type

Facoltativo: string

Valori accettati:

  • rougen[1-9]: calcola i punteggi rouge in base alla sovrapposizione di n-grammi tra la previsione e il riferimento.
  • rougeL: calcola i punteggi rouge in base alla sottosequenza comune più lunga (LCS) tra la previsione e il riferimento.
  • rougeLsum: prima suddivide la previsione e il riferimento in frasi, quindi calcola la LCS per ogni tupla. Il punteggio finale rougeLsum è la media di questi singoli punteggi LCS.

metric_spec.use_stemmer

Facoltativo: bool

Indica se deve essere utilizzato il stemmer di Porter per rimuovere i suffissi di parola al fine di migliorare la corrispondenza.

metric_spec.split_summaries

Facoltativo: bool

Indica se aggiungere nuove righe tra le frasi per rougeLsum.

instances

Facoltativo: RougeInstance[]

Input di valutazione, composto da risposta e riferimento LLM.

instances.prediction

Facoltativo: string

la risposta LLM.

instances.reference

Facoltativo: string

Risposta LLM dorata come riferimento.

RougeResults

{
  "rouge_results": {
    "rouge_metric_values": [
      {
        "score": float
      }
    ]
  }
}
Salvaguardie

rouge_metric_values

RougeValue[]

Risultati della valutazione per input dell'istanza.

rouge_metric_values.score

float: [0, 1], dove punteggi più alti indicano che la previsione è più simile al riferimento.

FluencyInput

{
  "fluency_input": {
    "metric_spec": {},
    "instance": {
      "prediction": string
    }
  }
}
Parametri

metric_spec

Facoltativo: FluencySpec

Specifica della metrica, che definisce il comportamento della metrica.

instance

Facoltativo: FluencyInstance

Input di valutazione, composto da una risposta LLM.

instance.prediction

Facoltativo: string

la risposta LLM.

FluencyResult

{
  "fluency_result": {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
Salvaguardie

score

float: uno dei seguenti valori:

  • 1: inarticola
  • 2: Abbastanza inarticolato
  • 3: neutrale
  • 4: discretamente fluente
  • 5: fluente

explanation

string: giustificazione per l'assegnazione di un punteggio.

confidence

float: [0, 1] punteggio di affidabilità del nostro risultato.

CoherenceInput

{
  "coherence_input": {
    "metric_spec": {},
    "instance": {
      "prediction": string
    }
  }
}
Parametri

metric_spec

Facoltativo: CoherenceSpec

Specifica della metrica, che definisce il comportamento della metrica.

instance

Facoltativo: CoherenceInstance

Input di valutazione, composto da una risposta LLM.

instance.prediction

Facoltativo: string

la risposta LLM.

CoherenceResult

{
  "coherence_result": {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
Salvaguardie

score

float: uno dei seguenti valori:

  • 1: incoerente
  • 2: abbastanza incoerente
  • 3: neutrale
  • 4: abbastanza coerente
  • 5: coerente

explanation

string: giustificazione per l'assegnazione di un punteggio.

confidence

float: [0, 1] punteggio di affidabilità del nostro risultato.

SafetyInput

{
  "safety_input": {
    "metric_spec": {},
    "instance": {
      "prediction": string
    }
  }
}
Parametri

metric_spec

Facoltativo: SafetySpec

Specifica della metrica, che definisce il comportamento della metrica.

instance

Facoltativo: SafetyInstance

Input di valutazione, composto da una risposta LLM.

instance.prediction

Facoltativo: string

la risposta LLM.

SafetyResult

{
  "safety_result": {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
Salvaguardie

score

float: uno dei seguenti valori:

  • 0: non sicuro
  • 1: sicurezza

explanation

string: giustificazione per l'assegnazione di un punteggio.

confidence

float: [0, 1] punteggio di affidabilità del nostro risultato.

GroundednessInput

{
  "groundedness_input": {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "context": string
    }
  }
}

Parametro

Descrizione

metric_spec

Facoltativo: groundednessSpec

Specifica della metrica, che definisce il comportamento della metrica.

instance

Facoltativo: groundednessInstance

Input di valutazione, composto da input di inferenza e risposta corrispondente.

instance.prediction

Facoltativo: string

la risposta LLM.

instance.context

Facoltativo: string

Testo in base al tempo di inferenza contenente tutte le informazioni, che possono essere utilizzate nella risposta LLM.

GroundednessResult

{
  "groundedness_result": {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
Salvaguardie

score

float: uno dei seguenti valori:

  • 0: senza grounding
  • 1: con grounding

explanation

string: giustificazione per l'assegnazione di un punteggio.

confidence

float: [0, 1] punteggio di affidabilità del nostro risultato.

FulfillmentInput

{
  "fulfillment_input": {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "instruction": string
    }
  }
}
Parametri

metric_spec

Facoltativo: FulfillmentSpec

Specifica della metrica, che definisce il comportamento della metrica.

instance

Facoltativo: FulfillmentInstance

Input di valutazione, composto da input di inferenza e risposta corrispondente.

instance.prediction

Facoltativo: string

la risposta LLM.

instance.instruction

Facoltativo: string

Istruzione utilizzata al momento dell'inferenza.

FulfillmentResult

{
  "fulfillment_result": {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
Salvaguardie

score

float: uno dei seguenti valori:

  • 1: nessun completamento
  • 2: distribuzione scadente
  • 3: alcuni completamenti
  • 4: distribuzione soddisfacente
  • 5: completamento dell'evasione

explanation

string: giustificazione per l'assegnazione di un punteggio.

confidence

float: [0, 1] punteggio di affidabilità del nostro risultato.

SummarizationQualityInput

{
  "summarization_quality_input": {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "instruction": string,
      "context": string,
    }
  }
}
Parametri

metric_spec

Facoltativo: SummarizationQualitySpec

Specifica della metrica, che definisce il comportamento della metrica.

instance

Facoltativo: SummarizationQualityInstance

Input di valutazione, composto da input di inferenza e risposta corrispondente.

instance.prediction

Facoltativo: string

la risposta LLM.

instance.instruction

Facoltativo: string

Istruzione utilizzata al momento dell'inferenza.

instance.context

Facoltativo: string

Testo in base al tempo di inferenza contenente tutte le informazioni, che possono essere utilizzate nella risposta LLM.

SummarizationQualityResult

{
  "summarization_quality_result": {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
Salvaguardie

score

float: uno dei seguenti valori:

  • 1: molto scadente
  • 2: scadente
  • 3: Ok
  • 4: buono
  • 5: molto buona

explanation

string: giustificazione per l'assegnazione di un punteggio.

confidence

float: [0, 1] punteggio di affidabilità del nostro risultato.

PairwiseSummarizationQualityInput

{
  "pairwise_summarization_quality_input": {
    "metric_spec": {},
    "instance": {
      "baseline_prediction": string,
      "prediction": string,
      "instruction": string,
      "context": string,
    }
  }
}
Parametri

metric_spec

Facoltativo: PairwiseSummarizationQualitySpec

Specifica della metrica, che definisce il comportamento della metrica.

instance

Facoltativo: PairwiseSummarizationQualityInstance

Input di valutazione, composto da input di inferenza e risposta corrispondente.

instance.baseline_prediction

Facoltativo: string

Risposta LLM del modello di riferimento.

instance.prediction

Facoltativo: string

Risposta LLM del modello candidato.

instance.instruction

Facoltativo: string

Istruzione utilizzata al momento dell'inferenza.

instance.context

Facoltativo: string

Testo in base al tempo di inferenza contenente tutte le informazioni, che possono essere utilizzate nella risposta LLM.

PairwiseSummarizationQualityResult

{
  "pairwise_summarization_quality_result": {
    "pairwise_choice": PairwiseChoice,
    "explanation": string,
    "confidence": float
  }
}
Salvaguardie

pairwise_choice

PairwiseChoice: enum con i seguenti valori possibili:

  • BASELINE: la previsione di riferimento è migliore
  • CANDIDATE: la previsione dei candidati è migliore
  • TIE: correlazione tra le previsioni di riferimento e quelle dei candidati.

explanation

string: giustificazione per l'assegnazione coppiawise_choice.

confidence

float: [0, 1] punteggio di affidabilità del nostro risultato.

SummarizationHelpfulnessInput

{
  "summarization_helpfulness_input": {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "instruction": string,
      "context": string,
    }
  }
}
Parametri

metric_spec

Facoltativo: SummarizationHelpfulnessSpec

Specifica della metrica, che definisce il comportamento della metrica.

instance

Facoltativo: SummarizationHelpfulnessInstance

Input di valutazione, composto da input di inferenza e risposta corrispondente.

instance.prediction

Facoltativo: string

la risposta LLM.

instance.instruction

Facoltativo: string

Istruzione utilizzata al momento dell'inferenza.

instance.context

Facoltativo: string

Testo in base al tempo di inferenza contenente tutte le informazioni, che possono essere utilizzate nella risposta LLM.

SummarizationHelpfulnessResult

{
  "summarization_helpfulness_result": {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
Salvaguardie

score

float: uno dei seguenti valori:

  • 1: non utile
  • 2: abbastanza inutile
  • 3: neutrale
  • 4: Piuttosto utile
  • 5: Utile

explanation

string: giustificazione per l'assegnazione di un punteggio.

confidence

float: [0, 1] punteggio di affidabilità del nostro risultato.

SummarizationVerbosityInput

{
  "summarization_verbosity_input": {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "instruction": string,
      "context": string,
    }
  }
}
Parametri

metric_spec

Facoltativo: SummarizationVerbositySpec

Specifica della metrica, che definisce il comportamento della metrica.

instance

Facoltativo: SummarizationVerbosityInstance

Input di valutazione, composto da input di inferenza e risposta corrispondente.

instance.prediction

Facoltativo: string

la risposta LLM.

instance.instruction

Facoltativo: string

Istruzione utilizzata al momento dell'inferenza.

instance.context

Facoltativo: string

Testo in base al tempo di inferenza contenente tutte le informazioni, che possono essere utilizzate nella risposta LLM.

SummarizationVerbosityResult

{
  "summarization_verbosity_result": {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
Salvaguardie

score

float. Uno dei seguenti valori:

  • -2: Terse
  • -1: abbastanza concisa
  • 0: ottimale
  • 1: abbastanza dettagliato
  • 2: dettagliato

explanation

string: giustificazione per l'assegnazione di un punteggio.

confidence

float: [0, 1] punteggio di affidabilità del nostro risultato.

QuestionAnsweringQualityInput

{
  "question_answering_quality_input": {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "instruction": string,
      "context": string,
    }
  }
}
Parametri

metric_spec

Facoltativo: QuestionAnsweringQualitySpec

Specifica della metrica, che definisce il comportamento della metrica.

instance

Facoltativo: QuestionAnsweringQualityInstance

Input di valutazione, composto da input di inferenza e risposta corrispondente.

instance.prediction

Facoltativo: string

la risposta LLM.

instance.instruction

Facoltativo: string

Istruzione utilizzata al momento dell'inferenza.

instance.context

Facoltativo: string

Testo in base al tempo di inferenza contenente tutte le informazioni, che possono essere utilizzate nella risposta LLM.

QuestionAnsweringQualityResult

{
  "question_answering_quality_result": {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
Salvaguardie

score

float: uno dei seguenti valori:

  • 1: molto scadente
  • 2: scadente
  • 3: Ok
  • 4: buono
  • 5: molto buona

explanation

string: giustificazione per l'assegnazione di un punteggio.

confidence

float: [0, 1] punteggio di affidabilità del nostro risultato.

PairwiseQuestionAnsweringQualityInput

{
  "question_answering_quality_input": {
    "metric_spec": {},
    "instance": {
      "baseline_prediction": string,
      "prediction": string,
      "instruction": string,
      "context": string
    }
  }
}
Parametri

metric_spec

Facoltativo: QuestionAnsweringQualitySpec

Specifica della metrica, che definisce il comportamento della metrica.

instance

Facoltativo: QuestionAnsweringQualityInstance

Input di valutazione, composto da input di inferenza e risposta corrispondente.

instance.baseline_prediction

Facoltativo: string

Risposta LLM del modello di riferimento.

instance.prediction

Facoltativo: string

Risposta LLM del modello candidato.

instance.instruction

Facoltativo: string

Istruzione utilizzata al momento dell'inferenza.

instance.context

Facoltativo: string

Testo in base al tempo di inferenza contenente tutte le informazioni, che possono essere utilizzate nella risposta LLM.

PairwiseQuestionAnsweringQualityResult

{
  "pairwise_question_answering_quality_result": {
    "pairwise_choice": PairwiseChoice,
    "explanation": string,
    "confidence": float
  }
}
Salvaguardie

pairwise_choice

PairwiseChoice: enum con i seguenti valori possibili:

  • BASELINE: la previsione di riferimento è migliore
  • CANDIDATE: la previsione dei candidati è migliore
  • TIE: correlazione tra le previsioni di riferimento e quelle dei candidati.

explanation

string: giustificazione per il compito pairwise_choice.

confidence

float: [0, 1] punteggio di affidabilità del nostro risultato.

QuestionAnsweringRelevanceInput

{
  "question_answering_quality_input": {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "instruction": string,
      "context": string
    }
  }
}
Parametri

metric_spec

Facoltativo: QuestionAnsweringRelevanceSpec

Specifica della metrica, che definisce il comportamento della metrica.

instance

Facoltativo: QuestionAnsweringRelevanceInstance

Input di valutazione, composto da input di inferenza e risposta corrispondente.

instance.prediction

Facoltativo: string

la risposta LLM.

instance.instruction

Facoltativo: string

Istruzione utilizzata al momento dell'inferenza.

instance.context

Facoltativo: string

Testo in base al tempo di inferenza contenente tutte le informazioni, che possono essere utilizzate nella risposta LLM.

QuestionAnsweringRelevancyResult

{
  "question_answering_relevancy_result": {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
Salvaguardie

score

float: uno dei seguenti valori:

  • 1: non pertinente
  • 2: poco pertinente
  • 3: neutrale
  • 4: abbastanza pertinente
  • 5: pertinente

explanation

string: giustificazione per l'assegnazione di un punteggio.

confidence

float: [0, 1] punteggio di affidabilità del nostro risultato.

QuestionAnsweringHelpfulnessInput

{
  "question_answering_helpfulness_input": {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "instruction": string,
      "context": string
    }
  }
}
Parametri

metric_spec

Facoltativo: QuestionAnsweringHelpfulnessSpec

Specifica della metrica, che definisce il comportamento della metrica.

instance

Facoltativo: QuestionAnsweringHelpfulnessInstance

Input di valutazione, composto da input di inferenza e risposta corrispondente.

instance.prediction

Facoltativo: string

la risposta LLM.

instance.instruction

Facoltativo: string

Istruzione utilizzata al momento dell'inferenza.

instance.context

Facoltativo: string

Testo in base al tempo di inferenza contenente tutte le informazioni, che possono essere utilizzate nella risposta LLM.

QuestionAnsweringHelpfulnessResult

{
  "question_answering_helpfulness_result": {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
Salvaguardie

score

float: uno dei seguenti valori:

  • 1: non utile
  • 2: abbastanza inutile
  • 3: neutrale
  • 4: Piuttosto utile
  • 5: Utile

explanation

string: giustificazione per l'assegnazione di un punteggio.

confidence

float: [0, 1] punteggio di affidabilità del nostro risultato.

QuestionAnsweringCorrectnessInput

{
  "question_answering_correctness_input": {
    "metric_spec": {
      "use_reference": bool
    },
    "instance": {
      "prediction": string,
      "reference": string,
      "instruction": string,
      "context": string
    }
  }
}
Parametri

metric_spec

Facoltativo: QuestionAnsweringCorrectnessSpec

Specifica della metrica, che definisce il comportamento della metrica.

metric_spec.use_reference

Facoltativo: bool

Indica se nella valutazione viene usato o meno il riferimento.

instance

Facoltativo: QuestionAnsweringCorrectnessInstance

Input di valutazione, composto da input di inferenza e risposta corrispondente.

instance.prediction

Facoltativo: string

la risposta LLM.

instance.reference

Facoltativo: string

Risposta LLM dorata come riferimento.

instance.instruction

Facoltativo: string

Istruzione utilizzata al momento dell'inferenza.

instance.context

Facoltativo: string

Testo in base al tempo di inferenza contenente tutte le informazioni, che possono essere utilizzate nella risposta LLM.

QuestionAnsweringCorrectnessResult

{
  "question_answering_correctness_result": {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
Salvaguardie

score

float: uno dei seguenti valori:

  • 0: risposta errata
  • 1: risposta corretta

explanation

string: giustificazione per l'assegnazione di un punteggio.

confidence

float: [0, 1] punteggio di affidabilità del nostro risultato.

ToolCallValidInput

{
  "tool_call_valid_input": {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "reference": string
    }
  }
}
Parametri

metric_spec

Facoltativo: ToolCallValidSpec

Specifica della metrica, che definisce il comportamento della metrica.

instance

Facoltativo: ToolCallValidInstance

Input di valutazione, composto da risposta e riferimento LLM.

instance.prediction

Facoltativo: string

Risposta LLM del modello candidato, ovvero una stringa serializzata JSON contenente chiavi content e tool_calls. Il valore content è l'output di testo del modello. Il valore tool_call è una stringa serializzata JSON di un elenco di chiamate di strumenti. Un esempio è:

{
  "content": "",
  "tool_calls": [
    {
      "name": "book_tickets",
      "arguments": {
        "movie": "Mission Impossible Dead Reckoning Part 1",
        "theater": "Regal Edwards 14",
        "location": "Mountain View CA",
        "showtime": "7:30",
        "date": "2024-03-30",
        "num_tix": "2"
      }
    }
  ]
}

instance.reference

Facoltativo: string

Output del modello Golden nello stesso formato della previsione.

ToolCallValidResults

{
  "tool_call_valid_results": {
    "tool_call_valid_metric_values": [
      {
        "score": float
      }
    ]
  }
}
Salvaguardie

tool_call_valid_metric_values

ripetuto ToolCallValidMetricValue: risultati della valutazione per input dell'istanza.

tool_call_valid_metric_values.score

float: uno dei seguenti valori:

  • 0: chiamata strumenti non valida
  • 1: chiamata utensili valida

ToolNameMatchInput

{
  "tool_name_match_input": {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "reference": string
    }
  }
}
Parametri

metric_spec

Facoltativo: ToolNameMatchSpec

Specifica della metrica, che definisce il comportamento della metrica.

instance

Facoltativo: ToolNameMatchInstance

Input di valutazione, composto da risposta e riferimento LLM.

instance.prediction

Facoltativo: string

Risposta LLM del modello candidato, ovvero una stringa serializzata JSON contenente chiavi content e tool_calls. Il valore content è l'output di testo del modello. Il valore tool_call è una stringa serializzata JSON di un elenco di chiamate di strumenti.

instance.reference

Facoltativo: string

Output del modello Golden nello stesso formato della previsione.

ToolNameMatchResults

{
  "tool_name_match_results": {
    "tool_name_match_metric_values": [
      {
        "score": float
      }
    ]
  }
}
Salvaguardie

tool_name_match_metric_values

ripetuto ToolNameMatchMetricValue: risultati della valutazione per input dell'istanza.

tool_name_match_metric_values.score

float: uno dei seguenti valori:

  • 0: il nome della chiamata dello strumento non corrisponde al riferimento.
  • 1: il nome della chiamata dello strumento corrisponde al riferimento.

ToolParameterKeyMatchInput

{
  "tool_parameter_key_match_input": {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "reference": string
    }
  }
}
Parametri

metric_spec

Facoltativo: ToolParameterKeyMatchSpec

Specifica della metrica, che definisce il comportamento della metrica.

instance

Facoltativo: ToolParameterKeyMatchInstance

Input di valutazione, composto da risposta e riferimento LLM.

instance.prediction

Facoltativo: string

Risposta LLM del modello candidato, ovvero una stringa serializzata JSON contenente chiavi content e tool_calls. Il valore content è l'output di testo del modello. Il valore tool_call è una stringa serializzata JSON di un elenco di chiamate di strumenti.

instance.reference

Facoltativo: string

Output del modello Golden nello stesso formato della previsione.

ToolParameterKeyMatchResults

{
  "tool_parameter_key_match_results": {
    "tool_parameter_key_match_metric_values": [
      {
        "score": float
      }
    ]
  }
}
Salvaguardie

tool_parameter_key_match_metric_values

ripetuto ToolParameterKeyMatchMetricValue: risultati della valutazione per input dell'istanza.

tool_parameter_key_match_metric_values.score

float: [0, 1], dove punteggi più alti indicano che più parametri corrispondono ai nomi dei parametri di riferimento.

ToolParameterKVMatchInput

{
  "tool_parameter_kv_match_input": {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "reference": string
    }
  }
}
Parametri

metric_spec

Facoltativo: ToolParameterKVMatchSpec

Specifica della metrica, che definisce il comportamento della metrica.

instance

Facoltativo: ToolParameterKVMatchInstance

Input di valutazione, composto da risposta e riferimento LLM.

instance.prediction

Facoltativo: string

Risposta LLM del modello candidato, ovvero una stringa serializzata JSON contenente chiavi content e tool_calls. Il valore content è l'output di testo del modello. Il valore tool_call è una stringa serializzata JSON di un elenco di chiamate di strumenti.

instance.reference

Facoltativo: string

Output del modello Golden nello stesso formato della previsione.

ToolParameterKVMatchResults

{
  "tool_parameter_kv_match_results": {
    "tool_parameter_kv_match_metric_values": [
      {
        "score": float
      }
    ]
  }
}
Salvaguardie

tool_parameter_kv_match_metric_values

ripetuto ToolParameterKVMatchMetricValue: risultati della valutazione per input dell'istanza.

tool_parameter_kv_match_metric_values.score

float: [0, 1], dove punteggi più alti indicano che più parametri corrispondono ai nomi e ai valori dei parametri di riferimento.

Esempi

Valuta un output

L'esempio seguente mostra come chiamare l'API Rapid Evaluation per valutare l'output di un LLM utilizzando una serie di metriche di valutazione, tra cui:

  • summarization_quality
  • groundedness
  • fulfillment
  • summarization_helpfulnes
  • summarization_verbosity

Python

import pandas as pd

import vertexai
from vertexai.preview.evaluation import EvalTask
from vertexai.generative_models import GenerativeModel

# TODO(developer): Update and un-comment below lines
# project_id = "PROJECT_ID"

vertexai.init(project=project_id, location="us-central1")

eval_dataset = pd.DataFrame(
    {
        "instruction": [
            "Summarize the text in one sentence.",
            "Summarize the text such that a five-year-old can understand.",
        ],
        "context": [
            """As part of a comprehensive initiative to tackle urban congestion and foster
            sustainable urban living, a major city has revealed ambitious plans for an
            extensive overhaul of its public transportation system. The project aims not
            only to improve the efficiency and reliability of public transit but also to
            reduce the city\'s carbon footprint and promote eco-friendly commuting options.
            City officials anticipate that this strategic investment will enhance
            accessibility for residents and visitors alike, ushering in a new era of
            efficient, environmentally conscious urban transportation.""",
            """A team of archaeologists has unearthed ancient artifacts shedding light on a
            previously unknown civilization. The findings challenge existing historical
            narratives and provide valuable insights into human history.""",
        ],
        "response": [
            "A major city is revamping its public transportation system to fight congestion, reduce emissions, and make getting around greener and easier.",
            "Some people who dig for old things found some very special tools and objects that tell us about people who lived a long, long time ago! What they found is like a new puzzle piece that helps us understand how people used to live.",
        ],
    }
)

eval_task = EvalTask(
    dataset=eval_dataset,
    metrics=[
        "summarization_quality",
        "groundedness",
        "fulfillment",
        "summarization_helpfulness",
        "summarization_verbosity",
    ],
)

model = GenerativeModel("gemini-1.0-pro")

prompt_template = (
    "Instruction: {instruction}. Article: {context}. Summary: {response}"
)
result = eval_task.evaluate(model=model, prompt_template=prompt_template)

print("Summary Metrics:\n")

for key, value in result.summary_metrics.items():
    print(f"{key}: \t{value}")

print("\n\nMetrics Table:\n")
print(result.metrics_table)

Valuta un output: qualità di riassunto di coppia

L'esempio seguente mostra come chiamare l'API Rapid Evaluation per valutare l'output di un LLM utilizzando un confronto della qualità di riassunto a coppie.

REST

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto.
  • LOCATION: la regione in cui elaborare la richiesta.
  • PREDICTION: risposta LLM.
  • BASELINE_PREDICTION: risposta LLM del modello di riferimento.
  • INSTRUCTION: l'istruzione utilizzata al momento dell'inferenza.
  • CONTEXT: testo basato sul tempo di inferenza contenente tutte le informazioni pertinenti, che può essere utilizzato nella risposta LLM.

Metodo HTTP e URL:

POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID-/locations/LOCATION:evaluateInstances \

Corpo JSON della richiesta:

{
  "pairwise_summarization_quality_input": {
    "metric_spec": {},
    "instance": {
      "prediction": "PREDICTION",
      "baseline_prediction": "BASELINE_PREDICTION",
      "instruction": "INSTRUCTION",
      "context": "CONTEXT",
    }
  }
}

Per inviare la richiesta, scegli una delle seguenti opzioni:

curl

Salva il corpo della richiesta in un file denominato request.json ed esegui questo comando:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID-/locations/LOCATION:evaluateInstances \"

PowerShell

Salva il corpo della richiesta in un file denominato request.json ed esegui questo comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID-/locations/LOCATION:evaluateInstances \" | Select-Object -Expand Content

Ottieni il punteggio di rosso

L'esempio seguente chiama l'API Rapid Evaluation per ottenere il punteggio rosso di una previsione, generata da una serie di input. Gli input di Rouge utilizzano metric_spec, che determina il comportamento della metrica.

REST

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto.
  • LOCATION: la regione in cui elaborare la richiesta.
  • PREDICTION: risposta LLM.
  • REFERENCE: risposta LLM dorata come riferimento.
  • ROUGE_TYPE: il calcolo utilizzato per determinare il punteggio rosso. Visita la pagina metric_spec.rouge_type per conoscere i valori accettati.
  • USE_STEMMER: determina se viene utilizzato lo stemmer di Porter per rimuovere i suffissi delle parole al fine di migliorare la corrispondenza. Per i valori accettabili, vedi metric_spec.use_stemmer.
  • SPLIT_SUMMARIES: determina se vengono aggiunte nuove righe tra rougeLsum frasi. Per i valori accettabili, vedi metric_spec.split_summaries .

Metodo HTTP e URL:

POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID-/locations/REGION:evaluateInstances \

Corpo JSON della richiesta:

{
  "rouge_input": {
    "instances": {
      "prediction": "PREDICTION",
      "reference": "REFERENCE.",
    },
    "metric_spec": {
      "rouge_type": "ROUGE_TYPE",
      "use_stemmer": USE_STEMMER,
      "split_summaries": SPLIT_SUMMARIES,
    }
  }
}

Per inviare la richiesta, scegli una delle seguenti opzioni:

curl

Salva il corpo della richiesta in un file denominato request.json ed esegui questo comando:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID-/locations/REGION:evaluateInstances \"

PowerShell

Salva il corpo della richiesta in un file denominato request.json ed esegui questo comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID-/locations/REGION:evaluateInstances \" | Select-Object -Expand Content

Passaggi successivi