Gen AI Evaluation Service API

Dengan Layanan Evaluasi AI Generatif, Anda dapat mengevaluasi model bahasa besar (LLM), baik pointwise maupun berpasangan, di beberapa metrik kustom, dengan kriteria Anda sendiri. Anda dapat memberikan input waktu inferensi, respons LLM, dan parameter, dan Gen AI Evaluation Service akan menampilkan metrik yang spesifik untuk tugas evaluasi.

Metrik meliputi metrik berbasis model, seperti PointwiseMetric dan PairwiseMetric, serta dalam memori metrik yang dikomputasi, seperti rouge, bleu, dan metrik panggilan fungsi alat. PointwiseMetric dan PairwiseMetric adalah metrik berbasis model generik yang yang dapat disesuaikan dengan kriteria Anda sendiri. Karena layanan itu mengambil hasil prediksi langsung dari model sebagai {i>input<i}, layanan evaluasi dapat melakukan inferensi dan evaluasi berikutnya pada semua model yang didukung oleh Vertex AI.

Untuk mengetahui informasi selengkapnya tentang cara mengevaluasi model, baca Ringkasan layanan evaluasi AI generatif.

Batasan

Berikut adalah batasan layanan evaluasi:

  • Metrik berbasis model menggunakan Kuota gemini-1.5-pro. Gen AI Evaluation Service memanfaatkan gemini-1.5-pro sebagai juri yang mendasarinya untuk menghitung metrik berbasis model.
  • Layanan evaluasi mungkin mengalami penundaan penerapan pada panggilan pertama Anda.

Contoh sintaksis

Sintaksis untuk mengirim panggilan evaluasi.

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))

Daftar parameter

Parameter

exact_match_input

Opsional: ExactMatchInput

Input untuk menilai apakah prediksi sama persis dengan referensi.

bleu_input

Opsional: BleuInput

Input untuk menghitung skor BLEU dengan membandingkan prediksi dengan referensi.

rouge_input

Opsional: RougeInput

Input untuk menghitung skor rouge dengan membandingkan prediksi dengan referensi. Skor rouge yang berbeda didukung oleh rouge_type.

fluency_input

Opsional: FluencyInput

Input untuk menilai kemahiran bahasa respons tunggal.

coherence_input

Opsional: CoherenceInput

Input untuk menilai kemampuan respons tunggal dalam memberikan balasan yang koheren dan mudah diikuti.

safety_input

Opsional: SafetyInput

Input untuk menilai tingkat keamanan respons tunggal.

groundedness_input

Opsional: GroundednessInput

Input untuk menilai kemampuan respons tunggal dalam memberikan atau mereferensikan informasi yang hanya disertakan dalam teks input.

fulfillment_input

Opsional: FulfillmentInput

Input untuk menilai kemampuan satu respons dalam memenuhi instruksi sepenuhnya.

summarization_quality_input

Opsional: SummarizationQualityInput

Input untuk menilai kemampuan keseluruhan respons tunggal untuk meringkas teks.

pairwise_summarization_quality_input

Opsional: PairwiseSummarizationQualityInput

Input untuk membandingkan dua respons kualitas ringkasan secara keseluruhan.

summarization_helpfulness_input

Opsional: SummarizationHelpfulnessInput

Input untuk menilai kemampuan respons tunggal dalam memberikan ringkasan, yang berisi detail yang diperlukan untuk menggantikan teks asli.

summarization_verbosity_input

Opsional: SummarizationVerbosityInput

Input untuk menilai kemampuan respons tunggal dalam memberikan ringkasan singkat.

question_answering_quality_input

Opsional: QuestionAnsweringQualityInput

Input untuk menilai kemampuan keseluruhan respons tunggal dalam menjawab pertanyaan, dengan diberi daftar teks sebagai referensi.

pairwise_question_answering_quality_input

Opsional: PairwiseQuestionAnsweringQualityInput

Input untuk membandingkan dua respons kemampuan keseluruhan untuk menjawab pertanyaan, dengan memberikan referensi teks.

question_answering_relevance_input

Opsional: QuestionAnsweringRelevanceInput

Input untuk menilai kemampuan respons tunggal untuk merespons dengan informasi yang relevan saat ditanyai pertanyaan.

question_answering_helpfulness_input

Opsional: QuestionAnsweringHelpfulnessInput

Input untuk menilai kemampuan respons tunggal dalam memberikan detail penting saat menjawab pertanyaan.

question_answering_correctness_input

Opsional: QuestionAnsweringCorrectnessInput

Input untuk menilai kemampuan respons tunggal untuk menjawab pertanyaan dengan benar.

pointwise_metric_input

Opsional: PointwiseMetricInput

Input untuk evaluasi pointwise umum.

pairwise_metric_input

Opsional: PairwiseMetricInput

Input untuk evaluasi berpasangan generik.

tool_call_valid_input

Opsional: ToolCallValidInput

Input untuk menilai kemampuan respons tunggal dalam memprediksi panggilan alat yang valid.

tool_name_match_input

Opsional: ToolNameMatchInput

Input untuk menilai kemampuan satu respons guna memprediksi panggilan alat dengan nama alat yang tepat.

tool_parameter_key_match_input

Opsional: ToolParameterKeyMatchInput

Input untuk menilai kemampuan respons tunggal dalam memprediksi panggilan alat dengan nama parameter yang benar.

tool_parameter_kv_match_input

Opsional: ToolParameterKvMatchInput

Input untuk menilai kemampuan respons tunggal dalam memprediksi panggilan alat dengan nama dan nilai parameter yang benar

ExactMatchInput

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

metric_spec

Opsional: ExactMatchSpec.

Spesifikasi metrik, yang menentukan perilaku metrik.

instances

Opsional: ExactMatchInstance[]

Input evaluasi, yang terdiri dari respons dan referensi LLM.

instances.prediction

Opsional: string

Respons LLM.

instances.reference

Opsional: string

Respons LLM emas untuk referensi.

ExactMatchResults

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

exact_match_metric_values

ExactMatchMetricValue[]

Hasil evaluasi per input instance.

exact_match_metric_values.score

float

Salah satu dari berikut ini:

  • 0: Instance tidak sama persis
  • 1: Pencocokan persis

BleuInput

{
  "bleu_input": {
    "metric_spec": {
      "use_effective_order": bool
    },
    "instances": [
      {
        "prediction": string,
        "reference": string
      }
    ]
  }
}
Parameter

metric_spec

Opsional: BleuSpec

Spesifikasi metrik, yang menentukan perilaku metrik.

metric_spec.use_effective_order

Opsional: bool

Apakah memperhitungkan pesanan n-gram tanpa kecocokan.

instances

Opsional: BleuInstance[]

Input evaluasi, yang terdiri dari respons dan referensi LLM.

instances.prediction

Opsional: string

Respons LLM.

instances.reference

Opsional: string

Respons LLM emas untuk referensi.

BleuResults

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

bleu_metric_values

BleuMetricValue[]

Hasil evaluasi per input instance.

bleu_metric_values.score

float: [0, 1], dengan skor yang lebih tinggi berarti prediksinya lebih seperti referensi.

RougeInput

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

metric_spec

Opsional: RougeSpec

Spesifikasi metrik, yang menentukan perilaku metrik.

metric_spec.rouge_type

Opsional: string

Nilai yang dapat diterima:

  • rougen[1-9]: menghitung skor rouge berdasarkan tumpang-tindih n-gram antara prediksi dan referensi.
  • rougeL: hitung skor rouge berdasarkan Suburut Umum Terpanjang (LCS) antara prediksi dan referensi.
  • rougeLsum: membagi prediksi dan referensi menjadi beberapa kalimat, lalu menghitung LCS untuk setiap tuple. Skor rougeLsum akhir adalah rata-rata skor LCS individual ini.

metric_spec.use_stemmer

Opsional: bool

Apakah Porter stemmer harus digunakan untuk menghapus akhiran kata guna meningkatkan kecocokan.

metric_spec.split_summaries

Opsional: bool

Apakah akan menambahkan baris baru di antara kalimat untuk rougeLsum.

instances

Opsional: RougeInstance[]

Input evaluasi, yang terdiri dari respons dan referensi LLM.

instances.prediction

Opsional: string

Respons LLM.

instances.reference

Opsional: string

Respons LLM emas untuk referensi.

RougeResults

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

rouge_metric_values

RougeValue[]

Hasil evaluasi per input instance.

rouge_metric_values.score

float: [0, 1], dengan skor yang lebih tinggi berarti prediksinya lebih seperti referensi.

FluencyInput

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

metric_spec

Opsional: FluencySpec

Spesifikasi metrik, yang menentukan perilaku metrik.

instance

Opsional: FluencyInstance

Input evaluasi, yang terdiri atas respons LLM.

instance.prediction

Opsional: string

Respons LLM.

FluencyResult

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

score

float: Salah satu dari hal berikut:

  • 1: Tidak jelas
  • 2: Agak Tidak Jelas
  • 3: Netral
  • 4: Agak fasih
  • 5: Fasih

explanation

string: Justifikasi untuk penetapan skor.

confidence

float: [0, 1] Skor keyakinan dari hasil kami.

CoherenceInput

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

metric_spec

Opsional: CoherenceSpec

Spesifikasi metrik, yang menentukan perilaku metrik.

instance

Opsional: CoherenceInstance

Input evaluasi, yang terdiri atas respons LLM.

instance.prediction

Opsional: string

Respons LLM.

CoherenceResult

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

score

float: Salah satu dari hal berikut:

  • 1: Tidak koheren
  • 2: Agak tidak koheren
  • 3: Netral
  • 4: Agak koheren
  • 5: Koheren

explanation

string: Justifikasi untuk penetapan skor.

confidence

float: [0, 1] Skor keyakinan dari hasil kami.

SafetyInput

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

metric_spec

Opsional: SafetySpec

Spesifikasi metrik, yang menentukan perilaku metrik.

instance

Opsional: SafetyInstance

Input evaluasi, yang terdiri atas respons LLM.

instance.prediction

Opsional: string

Respons LLM.

SafetyResult

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

score

float: Salah satu dari hal berikut:

  • 0: Tidak aman
  • 1: Aman

explanation

string: Justifikasi untuk penetapan skor.

confidence

float: [0, 1] Skor keyakinan dari hasil kami.

GroundednessInput

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

Parameter

Deskripsi

metric_spec

Opsional: GroundednessSpec

Spesifikasi metrik, yang menentukan perilaku metrik.

instance

Opsional: GroundednessInstance

Input evaluasi, yang terdiri dari input inferensi dan respons terkait.

instance.prediction

Opsional: string

Respons LLM.

instance.context

Opsional: string

Teks waktu inferensi yang berisi semua informasi, yang dapat digunakan dalam respons LLM.

GroundednessResult

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

score

float: Salah satu dari hal berikut:

  • 0: Tidak berdasar
  • 1: Didasarkan

explanation

string: Justifikasi untuk penetapan skor.

confidence

float: [0, 1] Skor keyakinan dari hasil kami.

FulfillmentInput

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

metric_spec

Opsional: FulfillmentSpec

Spesifikasi metrik, yang menentukan perilaku metrik.

instance

Opsional: FulfillmentInstance

Input evaluasi, yang terdiri dari input inferensi dan respons terkait.

instance.prediction

Opsional: string

Respons LLM.

instance.instruction

Opsional: string

Petunjuk yang digunakan pada waktu inferensi.

FulfillmentResult

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

score

float: Salah satu dari hal berikut:

  • 1: Tidak ada fulfillment
  • 2: fulfillment buruk
  • 3: Beberapa fulfillment
  • 4: Pemenuhan pesanan yang baik
  • 5: Pemenuhan pesanan selesai

explanation

string: Justifikasi untuk penetapan skor.

confidence

float: [0, 1] Skor keyakinan dari hasil kami.

SummarizationQualityInput

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

metric_spec

Opsional: SummarizationQualitySpec

Spesifikasi metrik, yang menentukan perilaku metrik.

instance

Opsional: SummarizationQualityInstance

Input evaluasi, yang terdiri dari input inferensi dan respons terkait.

instance.prediction

Opsional: string

Respons LLM.

instance.instruction

Opsional: string

Petunjuk yang digunakan pada waktu inferensi.

instance.context

Opsional: string

Teks waktu inferensi yang berisi semua informasi, yang dapat digunakan dalam respons LLM.

SummarizationQualityResult

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

score

float: Salah satu dari hal berikut:

  • 1: Sangat buruk
  • 2: Buruk
  • 3: Oke
  • 4: Baik
  • 5: Sangat baik

explanation

string: Justifikasi untuk penetapan skor.

confidence

float: [0, 1] Skor keyakinan dari hasil kami.

PairwiseSummarizationQualityInput

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

metric_spec

Opsional: PairwiseSummarizationQualitySpec

Spesifikasi metrik, yang menentukan perilaku metrik.

instance

Opsional: PairwiseSummarizationQualityInstance

Input evaluasi, yang terdiri dari input inferensi dan respons terkait.

instance.baseline_prediction

Opsional: string

Respons LLM model dasar.

instance.prediction

Opsional: string

Respons LLM model kandidat.

instance.instruction

Opsional: string

Petunjuk yang digunakan pada waktu inferensi.

instance.context

Opsional: string

Teks waktu inferensi yang berisi semua informasi, yang dapat digunakan dalam respons LLM.

PairwiseSummarizationQualityResult

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

pairwise_choice

PairwiseChoice: Enum dengan kemungkinan nilai sebagai berikut:

  • BASELINE: Prediksi dasar pengukuran lebih baik
  • CANDIDATE: Prediksi kandidat lebih baik
  • TIE: Mengaitkan antara prediksi Dasar dan Kandidat.

explanation

string: Justifikasi untuk penetapan pairwise_choice.

confidence

float: [0, 1] Skor keyakinan dari hasil kami.

SummarizationHelpfulnessInput

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

metric_spec

Opsional: SummarizationHelpfulnessSpec

Spesifikasi metrik, yang menentukan perilaku metrik.

instance

Opsional: SummarizationHelpfulnessInstance

Input evaluasi, yang terdiri dari input inferensi dan respons terkait.

instance.prediction

Opsional: string

Respons LLM.

instance.instruction

Opsional: string

Petunjuk yang digunakan pada waktu inferensi.

instance.context

Opsional: string

Teks waktu inferensi yang berisi semua informasi, yang dapat digunakan dalam respons LLM.

SummarizationHelpfulnessResult

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

score

float: Salah satu dari hal berikut:

  • 1: Tidak membantu
  • 2: Agak tidak membantu
  • 3: Netral
  • 4: Agak membantu
  • 5: Membantu

explanation

string: Justifikasi untuk penetapan skor.

confidence

float: [0, 1] Skor keyakinan dari hasil kami.

SummarizationVerbosityInput

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

metric_spec

Opsional: SummarizationVerbositySpec

Spesifikasi metrik, yang menentukan perilaku metrik.

instance

Opsional: SummarizationVerbosityInstance

Input evaluasi, yang terdiri dari input inferensi dan respons terkait.

instance.prediction

Opsional: string

Respons LLM.

instance.instruction

Opsional: string

Petunjuk yang digunakan pada waktu inferensi.

instance.context

Opsional: string

Teks waktu inferensi yang berisi semua informasi, yang dapat digunakan dalam respons LLM.

SummarizationVerbosityResult

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

score

float. Salah satu dari hal berikut:

  • -2: Terse
  • -1: Agak singkat
  • 0: Optimal
  • 1: Agak panjang
  • 2: Panjang

explanation

string: Justifikasi untuk penetapan skor.

confidence

float: [0, 1] Skor keyakinan dari hasil kami.

QuestionAnsweringQualityInput

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

metric_spec

Opsional: QuestionAnsweringQualitySpec

Spesifikasi metrik, yang menentukan perilaku metrik.

instance

Opsional: QuestionAnsweringQualityInstance

Input evaluasi, yang terdiri dari input inferensi dan respons terkait.

instance.prediction

Opsional: string

Respons LLM.

instance.instruction

Opsional: string

Petunjuk yang digunakan pada waktu inferensi.

instance.context

Opsional: string

Teks waktu inferensi yang berisi semua informasi, yang dapat digunakan dalam respons LLM.

QuestionAnsweringQualityResult

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

score

float: Salah satu dari hal berikut:

  • 1: Sangat buruk
  • 2: Buruk
  • 3: Oke
  • 4: Baik
  • 5: Sangat baik

explanation

string: Justifikasi untuk penetapan skor.

confidence

float: [0, 1] Skor keyakinan dari hasil kami.

PairwiseQuestionAnsweringQualityInput

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

metric_spec

Opsional: QuestionAnsweringQualitySpec

Spesifikasi metrik, yang menentukan perilaku metrik.

instance

Opsional: QuestionAnsweringQualityInstance

Input evaluasi, yang terdiri dari input inferensi dan respons terkait.

instance.baseline_prediction

Opsional: string

Respons LLM model dasar.

instance.prediction

Opsional: string

Respons LLM model kandidat.

instance.instruction

Opsional: string

Petunjuk yang digunakan pada waktu inferensi.

instance.context

Opsional: string

Teks waktu inferensi yang berisi semua informasi, yang dapat digunakan dalam respons LLM.

PairwiseQuestionAnsweringQualityResult

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

pairwise_choice

PairwiseChoice: Enum dengan kemungkinan nilai sebagai berikut:

  • BASELINE: Prediksi dasar pengukuran lebih baik
  • CANDIDATE: Prediksi kandidat lebih baik
  • TIE: Mengaitkan antara prediksi Dasar dan Kandidat.

explanation

string: Justifikasi untuk penetapan pairwise_choice.

confidence

float: [0, 1] Skor keyakinan dari hasil kami.

QuestionAnsweringRelevanceInput

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

metric_spec

Opsional: QuestionAnsweringRelevanceSpec

Spesifikasi metrik, yang menentukan perilaku metrik.

instance

Opsional: QuestionAnsweringRelevanceInstance

Input evaluasi, yang terdiri dari input inferensi dan respons terkait.

instance.prediction

Opsional: string

Respons LLM.

instance.instruction

Opsional: string

Petunjuk yang digunakan pada waktu inferensi.

instance.context

Opsional: string

Teks waktu inferensi yang berisi semua informasi, yang dapat digunakan dalam respons LLM.

QuestionAnsweringRelevancyResult

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

score

float: Salah satu dari hal berikut:

  • 1: Tidak relevan
  • 2: Agak tidak relevan
  • 3: Netral
  • 4: Agak relevan
  • 5: Relevan

explanation

string: Justifikasi untuk penetapan skor.

confidence

float: [0, 1] Skor keyakinan dari hasil kami.

QuestionAnsweringHelpfulnessInput

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

metric_spec

Opsional: QuestionAnsweringHelpfulnessSpec

Spesifikasi metrik, yang menentukan perilaku metrik.

instance

Opsional: QuestionAnsweringHelpfulnessInstance

Input evaluasi, yang terdiri dari input inferensi dan respons terkait.

instance.prediction

Opsional: string

Respons LLM.

instance.instruction

Opsional: string

Petunjuk yang digunakan pada waktu inferensi.

instance.context

Opsional: string

Teks waktu inferensi yang berisi semua informasi, yang dapat digunakan dalam respons LLM.

QuestionAnsweringHelpfulnessResult

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

score

float: Salah satu dari hal berikut:

  • 1: Tidak membantu
  • 2: Agak tidak membantu
  • 3: Netral
  • 4: Agak membantu
  • 5: Membantu

explanation

string: Justifikasi untuk penetapan skor.

confidence

float: [0, 1] Skor keyakinan dari hasil kami.

QuestionAnsweringCorrectnessInput

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

metric_spec

Opsional: QuestionAnsweringCorrectnessSpec

Spesifikasi metrik, yang menentukan perilaku metrik.

metric_spec.use_reference

Opsional: bool

Apakah referensi digunakan atau tidak dalam evaluasi.

instance

Opsional: QuestionAnsweringCorrectnessInstance

Input evaluasi, yang terdiri dari input inferensi dan respons terkait.

instance.prediction

Opsional: string

Respons LLM.

instance.reference

Opsional: string

Respons LLM emas untuk referensi.

instance.instruction

Opsional: string

Petunjuk yang digunakan pada waktu inferensi.

instance.context

Opsional: string

Teks waktu inferensi yang berisi semua informasi, yang dapat digunakan dalam respons LLM.

QuestionAnsweringCorrectnessResult

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

score

float: Salah satu dari hal berikut:

  • 0: Salah
  • 1: Benar

explanation

string: Justifikasi untuk penetapan skor.

confidence

float: [0, 1] Skor keyakinan dari hasil kami.

PointwiseMetricInput

{
  "pointwise_metric_input": {
    "metric_spec": {
      "metric_prompt_template": string
    },
    "instance": {
      "json_instance": string,
    }
  }
}
Parameter

metric_spec

Wajib: PointwiseMetricSpec

Spesifikasi metrik, yang menentukan perilaku metrik.

metric_spec.metric_prompt_template

Wajib: string

Template perintah yang menentukan metrik. Nilai ini dirender oleh pasangan nilai kunci di instance.json_instance

instance

Wajib: PointwiseMetricInstance

Input evaluasi, terdiri dari json_instance.

instance.json_instance

Opsional: string

Pasangan nilai kunci dalam format Json. Misalnya, {"key_1": "value_1", "key_2": "value_2"}. Ini digunakan untuk merender metric_spec.metric_prompt_template.

PointwiseMetricResult

{
  "pointwise_metric_result": {
    "score": float,
    "explanation": string,
  }
}
Output

score

float: Skor untuk hasil evaluasi metrik secara poin.

explanation

string: Justifikasi untuk penetapan skor.

PairwiseMetricInput

{
  "pairwise_metric_input": {
    "metric_spec": {
      "metric_prompt_template": string
    },
    "instance": {
      "json_instance": string,
    }
  }
}
Parameter

metric_spec

Wajib: PairwiseMetricSpec

Spesifikasi metrik, yang menentukan perilaku metrik.

metric_spec.metric_prompt_template

Wajib: string

Template perintah yang menentukan metrik. Nilai ini dirender oleh pasangan nilai kunci di instance.json_instance

instance

Wajib: PairwiseMetricInstance

Input evaluasi, terdiri dari json_instance.

instance.json_instance

Opsional: string

Pasangan nilai kunci dalam format JSON. Misalnya, {"key_1": "value_1", "key_2": "value_2"}. Ini digunakan untuk merender metric_spec.metric_prompt_template.

PairwiseMetricResult

{
  "pairwise_metric_result": {
    "score": float,
    "explanation": string,
  }
}
Output

score

float: Skor untuk hasil evaluasi metrik berpasangan.

explanation

string: Justifikasi untuk penetapan skor.

ToolCallValidInput

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

metric_spec

Opsional: ToolCallValidSpec

Spesifikasi metrik, yang menentukan perilaku metrik.

instance

Opsional: ToolCallValidInstance

Input evaluasi, yang terdiri dari respons dan referensi LLM.

instance.prediction

Opsional: string

Respons LLM model kandidat, yang merupakan string serial JSON yang berisi kunci content dan tool_calls. Nilai content adalah output teks dari model. Nilai tool_call adalah string serial JSON dari daftar panggilan alat. Contohnya adalah:

{
  "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

Opsional: string

Output model emas dalam format yang sama dengan prediksi.

ToolCallValidResults

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

tool_call_valid_metric_values

ToolCallValidMetricValue berulang: Hasil evaluasi per input instance.

tool_call_valid_metric_values.score

float: Salah satu dari hal berikut:

  • 0: Panggilan alat tidak valid
  • 1: Panggilan alat yang valid

ToolNameMatchInput

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

metric_spec

Opsional: ToolNameMatchSpec

Spesifikasi metrik, yang menentukan perilaku metrik.

instance

Opsional: ToolNameMatchInstance

Input evaluasi, yang terdiri dari respons dan referensi LLM.

instance.prediction

Opsional: string

Respons LLM model kandidat, yang merupakan string serial JSON yang berisi kunci content dan tool_calls. Nilai content adalah output teks dari model. Nilai tool_call adalah string serial JSON dari daftar panggilan alat.

instance.reference

Opsional: string

Output model emas dalam format yang sama dengan prediksi.

ToolNameMatchResults

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

tool_name_match_metric_values

ToolNameMatchMetricValue berulang: Hasil evaluasi per input instance.

tool_name_match_metric_values.score

float: Salah satu dari hal berikut:

  • 0: Nama panggilan alat tidak cocok dengan referensi.
  • 1: Nama panggilan alat cocok dengan referensi.

ToolParameterKeyMatchInput

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

metric_spec

Opsional: ToolParameterKeyMatchSpec

Spesifikasi metrik, yang menentukan perilaku metrik.

instance

Opsional: ToolParameterKeyMatchInstance

Input evaluasi, yang terdiri dari respons dan referensi LLM.

instance.prediction

Opsional: string

Respons LLM model kandidat, yang merupakan string serial JSON yang berisi kunci content dan tool_calls. Nilai content adalah output teks dari model. Nilai tool_call adalah string serial JSON dari daftar panggilan alat.

instance.reference

Opsional: string

Output model emas dalam format yang sama dengan prediksi.

ToolParameterKeyMatchResults

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

tool_parameter_key_match_metric_values

ToolParameterKeyMatchMetricValue berulang: Hasil evaluasi per input instance.

tool_parameter_key_match_metric_values.score

float: [0, 1], dengan skor yang lebih tinggi berarti lebih banyak parameter yang cocok dengan parameter referensi nama.

ToolParameterKVMatchInput

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

metric_spec

Opsional: ToolParameterKVMatchSpec

Spesifikasi metrik, yang menentukan perilaku metrik.

instance

Opsional: ToolParameterKVMatchInstance

Input evaluasi, yang terdiri dari respons dan referensi LLM.

instance.prediction

Opsional: string

Respons LLM model kandidat, yang merupakan string serial JSON yang berisi kunci content dan tool_calls. Nilai content adalah output teks dari model. Nilai tool_call adalah string serial JSON dari daftar panggilan alat.

instance.reference

Opsional: string

Output model emas dalam format yang sama dengan prediksi.

ToolParameterKVMatchResults

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

tool_parameter_kv_match_metric_values

ToolParameterKVMatchMetricValue berulang: Hasil evaluasi per input instance.

tool_parameter_kv_match_metric_values.score

float: [0, 1], dengan skor yang lebih tinggi berarti lebih banyak parameter yang cocok dengan parameter referensi nama dan nilai.

Contoh

Mengevaluasi output

Contoh berikut menunjukkan cara memanggil Gen AI Evaluation API untuk mengevaluasi output LLM menggunakan berbagai metrik evaluasi, termasuk yang berikut:

  • summarization_quality
  • groundedness
  • fulfillment
  • summarization_helpfulness
  • summarization_verbosity

Python

import pandas as pd

import vertexai
from vertexai.preview.evaluation import EvalTask, MetricPromptTemplateExamples

# TODO(developer): Update project_id and location
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=[
        MetricPromptTemplateExamples.Pointwise.SUMMARIZATION_QUALITY,
        MetricPromptTemplateExamples.Pointwise.GROUNDEDNESS,
        MetricPromptTemplateExamples.Pointwise.VERBOSITY,
        MetricPromptTemplateExamples.Pointwise.INSTRUCTION_FOLLOWING
    ],
)

prompt_template = (
    "Instruction: {instruction}. Article: {context}. Summary: {response}"
)
result = eval_task.evaluate(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)

Mengevaluasi output: kualitas ringkasan berpasangan

Contoh berikut menunjukkan cara memanggil Gen AI Evaluation Service API untuk mengevaluasi {i>output<i} dari LLM menggunakan perbandingan kualitas perangkuman berpasangan.

REST

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Project ID Anda.
  • LOCATION: Region untuk memproses permintaan.
  • PREDICTION: Respons LLM.
  • BASELINE_PREDICTION: Respons LLM model dasar.
  • INSTRUCTION: Petunjuk yang digunakan pada waktu inferensi.
  • CONTEXT: Teks waktu inferensi yang berisi semua informasi relevan, yang dapat digunakan dalam respons LLM.

Metode HTTP dan URL:

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

Isi JSON permintaan:

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

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

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

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$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

Dapatkan skor rouge

Contoh berikut memanggil Gen AI Evaluation Service API untuk mendapatkan skor Rouge prediksi, yang dihasilkan oleh sejumlah input. {i>Input<i} Rouge menggunakan metric_spec, yang menentukan perilaku metrik.

REST

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Project ID Anda.
  • LOCATION: Region untuk memproses permintaan.
  • PREDICTION: Respons LLM.
  • REFERENCE: Respons LLM emas untuk referensi.
  • ROUGE_TYPE: Penghitungan yang digunakan untuk menentukan skor rouge. Lihat metric_spec.rouge_type untuk mengetahui nilai yang dapat diterima.
  • USE_STEMMER: Menentukan apakah stemmer Porter digunakan untuk menghapus akhiran kata guna meningkatkan kecocokan. Untuk mengetahui nilai yang dapat diterima, lihat metric_spec.use_stemmer.
  • SPLIT_SUMMARIES: Menentukan apakah baris baru ditambahkan di antara rougeLsum kalimat. Untuk mengetahui nilai yang dapat diterima, lihat metric_spec.split_summaries .

Metode HTTP dan URL:

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

Isi JSON permintaan:

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

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

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

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$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

Langkah selanjutnya