API Rapid Evaluation

Il servizio di valutazione rapida consente di valutare i modelli linguistici di grandi dimensioni (LLM), sia a livello di che a parità, su 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 modello, come SummarizationQuality, e metriche calcolate in memoria, come rouge, bleu, e metriche sulle chiamate funzione dello strumento. Poiché il servizio prende i risultati della previsione direttamente dai modelli come input, il servizio di valutazione può eseguire sia l'inferenza sia la valutazione successiva su tutti i modelli supportati da Vertex AI.

Per saperne di più sulla valutazione di un modello, consulta la 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 utilizza text-bison come modello di arbitro sottostante per calcolare le metriche basate su modelli.
  • Il servizio di valutazione ha un ritardo di propagazione. Potrebbe non essere disponibile per diversi minuti dopo la prima chiamata al servizio.

Sintassi di esempio

Sintassi per l'invio di una chiamata di valutazione.

arricciatura

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 parametri

Parametri

exact_match_input

Facoltativo: ExactMatchInput

Input per valutare se la previsione corrisponde esattamente al riferimento.

bleu_input

Facoltativo: BleuInput

Input per il calcolo del punteggio BLEU confrontando la previsione con il riferimento.

rouge_input

Facoltativo: RougeInput

Input per calcolare i punteggi rouge confrontando la previsione con il riferimento. rouge_type supporta diversi punteggi di rouge.

fluency_input

Facoltativo: FluencyInput

Input per valutare la padronanza della lingua 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 seguire completamente le istruzioni.

summarization_quality_input

Facoltativo: SummarizationQualityInput

Input per valutare la capacità complessiva di una singola risposta di riepilogare 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, contenente 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 breve riassunto.

question_answering_quality_input

Facoltativo: QuestionAnsweringQualityInput

Input per valutare la capacità complessiva di una singola risposta di rispondere alle domande, dato un insieme di 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 posta 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 a strumento valida.

tool_name_match_input

Facoltativo: ToolNameMatchInput

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

tool_parameter_key_match_input

Facoltativo: ToolParameterKeyMatchInput

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

tool_parameter_kv_match_input

Facoltativo: ToolParameterKvMatchInput

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

ExactMatchInput

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

metric_spec

Facoltativo: ExactMatchSpec.

Specifiche delle metriche, che definiscono il comportamento della metrica.

instances

Facoltativo: ExactMatchInstance[]

Input di valutazione, composto da risposta e riferimento LLM.

instances.prediction

Facoltativo: string

risposta LLM.

instances.reference

Facoltativo: string

Risposta LLM Golden per riferimento.

ExactMatchResults

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

exact_match_metric_values

ExactMatchMetricValue[]

Risultati della valutazione per input di 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

Specifiche delle metriche, che definiscono il comportamento della metrica.

instances

Facoltativo: BleuInstance[]

Input di valutazione, composto da risposta e riferimento LLM.

instances.prediction

Facoltativo: string

risposta LLM.

instances.reference

Facoltativo: string

Risposta LLM Golden per riferimento.

BleuResults

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

bleu_metric_values

BleuMetricValue[]

Risultati della valutazione per input di 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

Specifiche delle metriche, che definiscono 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 più lunga (LCS) tra la previsione e il riferimento.
  • rougeLsum: suddivide prima la previsione e il riferimento in frasi, quindi calcola il valore LCS per ogni tupla. Il punteggio finale rougeLsum è la media di questi singoli punteggi LCS.

metric_spec.use_stemmer

Facoltativo: bool

Indica se utilizzare lo stemmer di Porter per eliminare i suffissi di parole 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

risposta LLM.

instances.reference

Facoltativo: string

Risposta LLM Golden per riferimento.

RougeResults

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

rouge_metric_values

RougeValue[]

Risultati della valutazione per input di 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

Specifiche delle metriche, che definiscono il comportamento della metrica.

instance

Facoltativo: FluencyInstance

Input di valutazione, composto dalla risposta LLM.

instance.prediction

Facoltativo: string

risposta LLM.

FluencyResult

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

score

float: uno dei seguenti valori:

  • 1: non articolare
  • 2: abbastanza inarticolata
  • 3: Indifferente
  • 4: discreta
  • 5: fluente

explanation

string: giustificazione per l'assegnazione del punteggio.

confidence

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

CoherenceInput

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

metric_spec

Facoltativo: CoherenceSpec

Specifiche delle metriche, che definiscono il comportamento della metrica.

instance

Facoltativo: CoherenceInstance

Input di valutazione, composto dalla risposta LLM.

instance.prediction

Facoltativo: string

risposta LLM.

CoherenceResult

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

score

float: uno dei seguenti valori:

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

explanation

string: giustificazione per l'assegnazione del punteggio.

confidence

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

SafetyInput

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

metric_spec

Facoltativo: SafetySpec

Specifiche delle metriche, che definiscono il comportamento della metrica.

instance

Facoltativo: SafetyInstance

Input di valutazione, composto dalla risposta LLM.

instance.prediction

Facoltativo: string

risposta LLM.

SafetyResult

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

score

float: uno dei seguenti valori:

  • 0: non sicuro
  • 1: sicuro

explanation

string: giustificazione per l'assegnazione del punteggio.

confidence

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

GroundednessInput

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

Parametro

Description

metric_spec

Facoltativo: GroundednessSpec

Specifiche delle metriche, che definiscono il comportamento della metrica.

instance

Facoltativo: GroundednessInstance

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

instance.prediction

Facoltativo: string

risposta LLM.

instance.context

Facoltativo: string

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

GroundednessResult

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

score

float: uno dei seguenti valori:

  • 0: senza fondamento
  • 1: a terra

explanation

string: giustificazione per l'assegnazione del 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

Specifiche delle metriche, che definiscono il comportamento della metrica.

instance

Facoltativo: FulfillmentInstance

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

instance.prediction

Facoltativo: string

risposta LLM.

instance.instruction

Facoltativo: string

Istruzione utilizzata al momento dell'inferenza.

FulfillmentResult

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

score

float: uno dei seguenti valori:

  • 1: nessun fulfillment
  • 2: evasione ordini scarsa
  • 3: completamento parziale
  • 4: completamento soddisfacente
  • 5: completamento dell'evasione

explanation

string: giustificazione per l'assegnazione del 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

Specifiche delle metriche, che definiscono il comportamento della metrica.

instance

Facoltativo: SummarizationQualityInstance

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

instance.prediction

Facoltativo: string

risposta LLM.

instance.instruction

Facoltativo: string

Istruzione utilizzata al momento dell'inferenza.

instance.context

Facoltativo: string

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

SummarizationQualityResult

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

score

float: uno dei seguenti valori:

  • 1: pessimo
  • 2: scadente
  • 3: OK
  • 4: Buono
  • 5: Molto bene

explanation

string: giustificazione per l'assegnazione del 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

Specifiche delle metriche, che definiscono 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 del 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
  }
}
Output

pairwise_choice

PairwiseChoice: enum con valori possibili come segue:

  • BASELINE: la previsione di riferimento è migliore
  • CANDIDATE: la previsione dei candidati è migliore
  • TIE: collega le previsioni di riferimento a quelle dei candidati.

explanation

string: giustificazione del compito pairwise_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

Specifiche delle metriche, che definiscono il comportamento della metrica.

instance

Facoltativo: SummarizationHelpfulnessInstance

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

instance.prediction

Facoltativo: string

risposta LLM.

instance.instruction

Facoltativo: string

Istruzione utilizzata al momento dell'inferenza.

instance.context

Facoltativo: string

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

SummarizationHelpfulnessResult

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

score

float: uno dei seguenti valori:

  • 1: non utile
  • 2: Piuttosto inutile
  • 3: Indifferente
  • 4: Piuttosto utile
  • 5: utile

explanation

string: giustificazione per l'assegnazione del 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

Specifiche delle metriche, che definiscono il comportamento della metrica.

instance

Facoltativo: SummarizationVerbosityInstance

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

instance.prediction

Facoltativo: string

risposta LLM.

instance.instruction

Facoltativo: string

Istruzione utilizzata al momento dell'inferenza.

instance.context

Facoltativo: string

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

SummarizationVerbosityResult

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

score

float. Uno dei seguenti valori:

  • -2: Brusca
  • -1: un po' conciso
  • 0: ottimale
  • 1: abbastanza dettagliato
  • 2: livello dettagliato

explanation

string: giustificazione per l'assegnazione del 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

Specifiche delle metriche, che definiscono il comportamento della metrica.

instance

Facoltativo: QuestionAnsweringQualityInstance

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

instance.prediction

Facoltativo: string

risposta LLM.

instance.instruction

Facoltativo: string

Istruzione utilizzata al momento dell'inferenza.

instance.context

Facoltativo: string

Testo del 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
  }
}
Output

score

float: uno dei seguenti valori:

  • 1: pessimo
  • 2: scadente
  • 3: OK
  • 4: Buono
  • 5: Molto bene

explanation

string: giustificazione per l'assegnazione del 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

Specifiche delle metriche, che definiscono 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 del 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
  }
}
Output

pairwise_choice

PairwiseChoice: enum con valori possibili come segue:

  • BASELINE: la previsione di riferimento è migliore
  • CANDIDATE: la previsione dei candidati è migliore
  • TIE: collega le previsioni di riferimento a 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

Specifiche delle metriche, che definiscono il comportamento della metrica.

instance

Facoltativo: QuestionAnsweringRelevanceInstance

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

instance.prediction

Facoltativo: string

risposta LLM.

instance.instruction

Facoltativo: string

Istruzione utilizzata al momento dell'inferenza.

instance.context

Facoltativo: string

Testo del 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
  }
}
Output

score

float: uno dei seguenti valori:

  • 1: non pertinente
  • 2: Piuttosto non pertinente
  • 3: Indifferente
  • 4: Piuttosto pertinenti
  • 5: pertinente

explanation

string: giustificazione per l'assegnazione del 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

Specifiche delle metriche, che definiscono il comportamento della metrica.

instance

Facoltativo: QuestionAnsweringHelpfulnessInstance

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

instance.prediction

Facoltativo: string

risposta LLM.

instance.instruction

Facoltativo: string

Istruzione utilizzata al momento dell'inferenza.

instance.context

Facoltativo: string

Testo del 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
  }
}
Output

score

float: uno dei seguenti valori:

  • 1: non utile
  • 2: Piuttosto inutile
  • 3: Indifferente
  • 4: Piuttosto utile
  • 5: utile

explanation

string: giustificazione per l'assegnazione del 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

Specifiche delle metriche, che definiscono il comportamento della metrica.

metric_spec.use_reference

Facoltativo: bool

Se il riferimento viene utilizzato o meno nella valutazione.

instance

Facoltativo: QuestionAnsweringCorrectnessInstance

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

instance.prediction

Facoltativo: string

risposta LLM.

instance.reference

Facoltativo: string

Risposta LLM Golden per riferimento.

instance.instruction

Facoltativo: string

Istruzione utilizzata al momento dell'inferenza.

instance.context

Facoltativo: string

Testo del 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
  }
}
Output

score

float: uno dei seguenti valori:

  • 0: risposta errata
  • 1: risposta corretta

explanation

string: giustificazione per l'assegnazione del 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

Specifiche delle metriche, che definiscono il comportamento della metrica.

instance

Facoltativo: ToolCallValidInstance

Input di valutazione, composto da risposta e riferimento LLM.

instance.prediction

Facoltativo: string

La risposta LLM del modello candidato, ovvero una stringa serializzata JSON contenente le chiavi content e tool_calls. Il valore content è l'output di testo dal 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
      }
    ]
  }
}
Output

tool_call_valid_metric_values

ripetuto ToolCallValidMetricValue: risultati della valutazione per input di istanza.

tool_call_valid_metric_values.score

float: uno dei seguenti valori:

  • 0: chiamata allo strumento non valida
  • 1: chiamata a uno strumento valida

ToolNameMatchInput

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

metric_spec

Facoltativo: ToolNameMatchSpec

Specifiche delle metriche, che definiscono il comportamento della metrica.

instance

Facoltativo: ToolNameMatchInstance

Input di valutazione, composto da risposta e riferimento LLM.

instance.prediction

Facoltativo: string

La risposta LLM del modello candidato, ovvero una stringa serializzata JSON contenente le chiavi content e tool_calls. Il valore content è l'output di testo dal 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
      }
    ]
  }
}
Output

tool_name_match_metric_values

ripetuto ToolNameMatchMetricValue: risultati della valutazione per input di istanza.

tool_name_match_metric_values.score

float: uno dei seguenti valori:

  • 0: il nome della chiamata allo 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

Specifiche delle metriche, che definiscono il comportamento della metrica.

instance

Facoltativo: ToolParameterKeyMatchInstance

Input di valutazione, composto da risposta e riferimento LLM.

instance.prediction

Facoltativo: string

La risposta LLM del modello candidato, ovvero una stringa serializzata JSON contenente le chiavi content e tool_calls. Il valore content è l'output di testo dal 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
      }
    ]
  }
}
Output

tool_parameter_key_match_metric_values

ripetuto ToolParameterKeyMatchMetricValue: risultati della valutazione per input di istanza.

tool_parameter_key_match_metric_values.score

float: [0, 1], dove punteggi più alti significano 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

Specifiche delle metriche, che definiscono il comportamento della metrica.

instance

Facoltativo: ToolParameterKVMatchInstance

Input di valutazione, composto da risposta e riferimento LLM.

instance.prediction

Facoltativo: string

La risposta LLM del modello candidato, ovvero una stringa serializzata JSON contenente le chiavi content e tool_calls. Il valore content è l'output di testo dal 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
      }
    ]
  }
}
Output

tool_parameter_kv_match_metric_values

ripetuto ToolParameterKVMatchMetricValue: risultati della valutazione per input di 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 a coppie

L'esempio seguente mostra come chiamare l'API Rapid Evaluation per valutare l'output di un LLM utilizzando un confronto della qualità del riassunto delle 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 di inferenza.
  • CONTEXT: testo del momento di inferenza contenente tutte le informazioni pertinenti, che possono essere utilizzati 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:

arricciatura

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

Trova punteggio rouge

L'esempio seguente chiama l'API Rapid Evaluation per ottenere il punteggio Rouge di una previsione, generato da una serie di input. Gli input 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 Golden come riferimento.
  • ROUGE_TYPE: il calcolo utilizzato per determinare il punteggio del rouge. Consulta la pagina metric_spec.rouge_type per i valori accettati.
  • USE_STEMMER: determina se lo stemmer di Porter viene utilizzato per eliminare i suffissi di parole al fine di migliorare la corrispondenza. Per i valori accettati, consulta metric_spec.use_stemmer.
  • SPLIT_SUMMARIES: determina se vengono aggiunte nuove righe tra rougeLsum frasi. Per i valori accettati, 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:

arricciatura

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