Rapid evaluation API

迅速評価サービスを使用すると、ユーザーは LLM モデルをポイントごととペアごとに、複数の指標で評価できます。ユーザーが推論時の入力、LLM レスポンス、その他のパラメータを指定すると、サービスは評価タスクに固有の指標を返します。指標には、モデルベースの指標(SummarizationQuality など)とメモリ内で計算される指標(Rouge、Bleu、Tool / Function Call の指標など)の両方が含まれます。サービスは、モデルから予測結果を直接入力として取得するため、Vertex でサポートされているすべてのモデルを評価できます。

制限

  • モデルベースの指標は、text-bison 割り当てを消費します。ラピッド評価サービスは、基盤となるアービター モデルとして text-bison を活用して、モデルベースの指標を計算します。
  • サービスには伝播遅延が発生します。最初に呼び出してから数分間はサービスを使用できない場合があります。

構文

  • PROJECT_ID = PROJECT_ID
  • REGION = REGION
  • MODEL_ID = MODEL_ID

curl

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://${REGION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${REGION}:evaluateInstances

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://${REGION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${REGION}:evaluateInstances'
result = google_auth_requests.AuthorizedSession(creds).post(uri, json=data)

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

パラメータ リスト

利用可能な指標の全一覧。

パラメータ

exact_match_input

省略可: ExactMatchInput

予測が参照と完全に一致しているかどうかを評価するための入力。

bleu_input

省略可: BleuInput

予測と参照を比較して BLEU スコアを計算するための入力。

rouge_input

省略可: RougeInput

予測と参照を比較して ROUGE スコアを計算するための入力。rouge_type はさまざまな ROUGE スコアをサポートしています。

fluency_input

省略可: FluencyInput

単一レスポンスの回答の言語習熟度を評価するための入力。

coherence_input

省略可: CoherenceInput

単一のレスポンスが、一貫性があり、わかりやすい内容の返信を行うことができるかどうかを評価するための入力。

safety_input

省略可: SafetyInput

単一レスポンスの安全性レベルを評価するための入力。

groundedness_input

省略可: GroundednessInput

単一のレスポンスが、入力テキストにのみ含まれる情報を提供または参照できるかどうかを評価するための入力。

fulfillment_input

省略可: FulfillmentInput

単一のレスポンスが指示内容の要件を完全に満たすことができるかどうかを評価するための入力。

summarization_quality_input

省略可: SummarizationQualityInput

全般的に見て単一レスポンスがどの程度適切にテキストを要約できるかを評価するための入力。

pairwise_summarization_quality_input

省略可: PairwiseSummarizationQualityInput

2 つのレスポンスの全般的な要約の品質を比較するための入力。

summarization_helpfulness_input

省略可: SummarizationHelpfulnessInput

単一レスポンスが、元のテキストを置き換えるために必要な詳細情報を含む要約を提供できるかどうかを評価するための入力。

summarization_verbosity_input

省略可: SummarizationVerbosityInput

単一のレスポンスが簡潔な要約を提示できるかどうかを評価するための入力。

question_answering_quality_input

省略可: QuestionAnsweringQualityInput

全般的に見て、参照するテキスト本文が与えられたときに、単一のレスポンスがどの程度質問に回答できるかを評価するための入力。

pairwise_question_answering_quality_input

省略可: PairwiseQuestionAnsweringQualityInput

全般的に見て、参照するテキスト本文が与えられたときに、2 つのレスポンスがどの程度質問に回答できるかを比較するための入力。

question_answering_relevance_input

省略可: QuestionAnsweringRelevanceInput

質問に対して単一のレスポンスが関連する情報で応答できるかどうかを評価するための入力。

question_answering_helpfulness_input

省略可: QuestionAnsweringHelpfulnessInput

質問に答える際に単一のレスポンスが重要な詳細情報を提供できるかどうかを評価するための入力。

question_answering_correctness_input

省略可: QuestionAnsweringCorrectnessInput

単一のレスポンスが質問に正しく答えられるかどうかを評価するための入力。

tool_call_valid_input

省略可: ToolCallValidInput

単一のレスポンスが有効なツール呼び出しを予測できるかどうかを評価するための入力。

tool_name_match_input

省略可: ToolNameMatchInput

単一のレスポンスがツール呼び出しを正しいツール名で予測できるかどうかを評価するための入力。

tool_parameter_key_match_input

省略可: ToolParameterKeyMatchInput

単一のレスポンスが、正しいパラメータ名でツール呼び出しを予測できるかどうかを評価するための入力。

tool_parameter_kv_match_input

省略可: ToolParameterKvMatchInput

単一のレスポンスが、正しいパラメータ名と値でツール呼び出しを予測できるかどうかを評価するための入力

ExactMatchInput

{
  "exact_match_input: {
    "metric_spec": {},
    "instances": [
      {
        "prediction": string,
        "reference": string
      }
    ]
  }
}
パラメータ

metric_spec

省略可: ExactMatchSpec

指標の動作を定義する指標の仕様。

instances

省略可: ExactMatchInstance[]

評価の入力。LLM のレスポンスと参照で構成されます。

instances.prediction

省略可: string

LLM レスポンス。

instances.reference

省略可: string

参照用のゴールデン LLM レスポンス。

ExactMatchResults

{
  "exact_match_results: {
    "exact_match_metric_values": [
      {
        "score": float
      }
    ]
  }
}
出力

exact_match_metric_values

ExactMatchMetricValue[]

インスタンス入力ごとの評価結果。

exact_match_metric_values.score

float

次のいずれかになります。

  • 0: インスタンスが完全一致ではなかった
  • 1: 完全一致

BleuInput

{
  "bleu_input: {
    "metric_spec": {},
    "instances": [
      {
        "prediction": string,
        "reference": string
      }
    ]
  }
}
パラメータ

metric_spec

省略可: BleuSpec

指標の動作を定義する指標の仕様。

instances

省略可: BleuInstance[]

評価の入力。LLM のレスポンスと参照で構成されます。

instances.prediction

省略可: string

LLM レスポンス。

instances.reference

省略可: string

参照用のゴールデン LLM レスポンス。

BleuResults

{
  "bleu_results: {
    "bleu_metric_values": [
      {
        "score": float
      }
    ]
  }
}
出力

bleu_metric_values

BleuMetricValue[]

インスタンス入力ごとの評価結果。

bleu_metric_values.score

float: [0, 1]。スコアが高いほど、予測が参照に近いことを表します。

RougeInput

{
  "rouge_input: {
    "metric_spec": {
      "rouge_type": string,
      "use_stemmer": bool,
      "split_summaries": bool
    },
    "instances": [
      {
        "prediction": string,
        "reference": string
      }
    ]
  }
}
パラメータ

metric_spec

省略可: RougeSpec

指標の動作を定義する指標の仕様。

metric_spec.rouge_type

省略可: string

使用できる値:

  • rougen[1-9]: 予測とリファレンス間の N-gram の重複に基づいて ROUGE スコアを計算します。
  • rougeL: 予測とリファレンス間の最長共通部分列(LCS)に基づいて ROUGE スコアを計算します。
  • rougeLsum: まず予測と参照を文に分割し、各タプルの LCS を計算します。最終的な rougeLsum スコアは、これらの個別の LCS スコアの平均です。

metric_spec.use_stemmer

省略可: bool

一致を改善するために Porter ステムを使用して単語の接尾辞を削除するかどうか。

metric_spec.split_summaries

省略可: bool

rougeLsum の文の間に改行を追加するかどうか。

instances

省略可: RougeInstance[]

評価の入力。LLM のレスポンスと参照で構成されます。

instances.prediction

省略可: string

LLM レスポンス。

instances.reference

省略可: string

参照用のゴールデン LLM レスポンス。

RougeResults

{
  "rouge_results: {
    "rouge_metric_values": [
      {
        "score": float
      }
    ]
  }
}
出力

rouge_metric_values

RougeValue[]

インスタンス入力ごとの評価結果。

rouge_metric_values.score

float: [0, 1]。スコアが高いほど、予測が参照に近いことを表します。

FluencyInput

{
  "fluency_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string
    }
  }
}
パラメータ

metric_spec

省略可: FluencySpec

指標の動作を定義する指標の仕様。

instance

省略可: FluencyInstance

評価の入力(LLM レスポンスで構成)。

instance.prediction

省略可: string

LLM レスポンス。

FluencyResult

{
  "fluency_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
出力

score

float: 次のいずれかです。

  • 1: 不整合
  • 2: やや不整合
  • 3: どちらともいえない
  • 4: やや一貫性がある
  • 5: 一貫性がある

explanation

string: スコア割り当ての根拠。

confidence

float: 結果の信頼スコア([0, 1])。

CoherenceInput

{
  "coherence_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string
    }
  }
}
パラメータ

metric_spec

省略可: CoherenceSpec

指標の動作を定義する指標の仕様。

instance

省略可: CoherenceInstance

評価の入力(LLM レスポンスで構成)。

instance.prediction

省略可: string

LLM レスポンス。

CoherenceResult

{
  "coherence_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
出力

score

float: 次のいずれかです。

  • 1: 不明瞭
  • 2: やや不明瞭
  • 3: どちらともいえない
  • 4: ある程度堪能
  • 5: 堪能

explanation

string: スコア割り当ての根拠。

confidence

float: 結果の信頼スコア([0, 1])。

SafetyInput

{
  "safety_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string
    }
  }
}
パラメータ

metric_spec

省略可: SafetySpec

指標の動作を定義する指標の仕様。

instance

省略可: SafetyInstance

評価の入力(LLM レスポンスで構成)。

instance.prediction

省略可: string

LLM レスポンス。

SafetyResult

{
  "safety_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
出力

score

float: 次のいずれかです。

  • 0. 安全でない
  • 1. 安全

explanation

string: スコア割り当ての根拠。

confidence

float: 結果の信頼スコア([0, 1])。

GroundednessInput

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

パラメータ

説明

metric_spec

省略可: GroundednessSpec

指標の動作を定義する指標の仕様。

instance

省略可: GroundednessInstance

評価入力。推論入力と対応するレスポンスで構成されます。

instance.prediction

省略可: string

LLM レスポンス。

instance.context

省略可: string

推論時のテキスト。LLM レスポンスで使用できるすべての情報が含まれています。

GroundednessResult

{
  "groundedness_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
出力

score

float: 次のいずれかです。

  • 0: 根拠なし
  • 1: 根拠あり

explanation

string: スコア割り当ての根拠。

confidence

float: 結果の信頼スコア([0, 1])。

FulfillmentInput

{
  "fulfillment_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "instruction": string
    }
  }
}
パラメータ

metric_spec

省略可: FulfillmentSpec

指標の動作を定義する指標の仕様。

instance

省略可: FulfillmentInstance

評価入力。推論入力と対応するレスポンスで構成されます。

instance.prediction

省略可: string

LLM レスポンス。

instance.instruction

省略可: string

推論時に使用される命令。

FulfillmentResult

{
  "fulfillment_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
出力

score

float: 次のいずれかです。

  • 1: フルフィルメントなし
  • 2: 不十分なフルフィルメント
  • 3: 一部のフルフィルメントあり
  • 4: 適切なフルフィルメント
  • 5: 詳細なフルフィルメント

explanation

string: スコア割り当ての根拠。

confidence

float: 結果の信頼スコア([0, 1])。

SummarizationQualityInput

{
  "summarization_quality_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "instruction": string,
      "context": string,
    }
  }
}
パラメータ

metric_spec

省略可: SummarizationQualitySpec

指標の動作を定義する指標の仕様。

instance

省略可: SummarizationQualityInstance

評価入力。推論入力と対応するレスポンスで構成されます。

instance.prediction

省略可: string

LLM レスポンス。

instance.instruction

省略可: string

推論時に使用される命令。

instance.context

省略可: string

推論時のテキスト。LLM レスポンスで使用できるすべての情報が含まれています。

SummarizationQualityResult

{
  "summarization_quality_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
出力

score

float: 次のいずれかです。

  • 1: 非常に不適格
  • 2: 不適格
  • 3: OK
  • 4: 良好
  • 5: 非常に良好

explanation

string: スコア割り当ての根拠。

confidence

float: 結果の信頼スコア([0, 1])。

PairwiseSummarizationQualityInput

{
  "pairwise_summarization_quality_input: {
    "metric_spec": {},
    "instance": {
      "baseline_prediction": string,
      "prediction": string,
      "instruction": string,
      "context": string,
    }
  }
}
パラメータ

metric_spec

省略可: PairwiseSummarizationQualitySpec

指標の動作を定義する指標の仕様。

instance

省略可: PairwiseSummarizationQualityInstance

評価入力。推論入力と対応するレスポンスで構成されます。

instance.baseline_prediction

省略可: string

ベースライン モデルの LLM レスポンス。

instance.prediction

省略可: string

候補モデルの LLM レスポンス。

instance.instruction

省略可: string

推論時に使用される命令。

instance.context

省略可: string

推論時のテキスト。LLM レスポンスで使用できるすべての情報が含まれています。

PairwiseSummarizationQualityResult

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

pairwise_choice

PairwiseChoice: 次の値を持つ列挙型。

  • BASELINE: ベースラインの予測が優れています。
  • CANDIDATE: 候補の予測が優れています
  • TIE: ベースラインと候補の予測が密接に関係しています。

explanation

string: pairwise_choice の割り当ての根拠。

confidence

float: 結果の信頼スコア([0, 1])。

SummarizationHelpfulnessInput

{
  "summarization_helpfulness_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "instruction": string,
      "context": string,
    }
  }
}
パラメータ

metric_spec

省略可: SummarizationHelpfulnessSpec

指標の動作を定義する指標の仕様。

instance

省略可: SummarizationHelpfulnessInstance

評価入力。推論入力と対応するレスポンスで構成されます。

instance.prediction

省略可: string

LLM レスポンス。

instance.instruction

省略可: string

推論時に使用される命令。

instance.context

省略可: string

推論時のテキスト。LLM レスポンスで使用できるすべての情報が含まれています。

SummarizationHelpfulnessResult

{
  "summarization_helpfulness_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
出力

score

float: 次のいずれかです。

  • 1: 役に立たなかった
  • 2: あまり役に立たなかった
  • 3: どちらともいえない
  • 4: ある程度は役に立った
  • 5: 役に立った

explanation

string: スコア割り当ての根拠。

confidence

float: 結果の信頼スコア([0, 1])。

SummarizationVerbosityInput

{
  "summarization_verbosity_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "instruction": string,
      "context": string,
    }
  }
}
パラメータ

metric_spec

省略可: SummarizationVerbositySpec

指標の動作を定義する指標の仕様。

instance

省略可: SummarizationVerbosityInstance

評価入力。推論入力と対応するレスポンスで構成されます。

instance.prediction

省略可: string

LLM レスポンス。

instance.instruction

省略可: string

推論時に使用される命令。

instance.context

省略可: string

推論時のテキスト。LLM レスポンスで使用できるすべての情報が含まれています。

SummarizationVerbosityResult

{
  "summarization_verbosity_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
出力

score

float: 次のいずれかです。

  • -2: 簡潔
  • -1: やや簡潔
  • 0: 最適
  • 1: やや詳細
  • 2: 詳細

explanation

string: スコア割り当ての根拠。

confidence

float: 結果の信頼スコア([0, 1])。

QuestionAnsweringQualityInput

{
  "question_answering_quality_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "instruction": string,
      "context": string,
    }
  }
}
パラメータ

metric_spec

省略可: QuestionAnsweringQualitySpec

指標の動作を定義する指標の仕様。

instance

省略可: QuestionAnsweringQualityInstance

評価入力。推論入力と対応するレスポンスで構成されます。

instance.prediction

省略可: string

LLM レスポンス。

instance.instruction

省略可: string

推論時に使用される命令。

instance.context

省略可: string

推論時のテキスト。LLM レスポンスで使用できるすべての情報が含まれています。

QuestionAnsweringQualityResult

{
  "question_answering_quality_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
出力

score

float: 次のいずれかです。

  • 1: 非常に不適格
  • 2: 不適格
  • 3: OK
  • 4: 良好
  • 5: 非常に良好

explanation

string: スコア割り当ての根拠。

confidence

float: 結果の信頼スコア([0, 1])。

PairwiseQuestionAnsweringQualityInput

{
  "question_answering_quality_input: {
    "metric_spec": {},
    "instance": {
      "baseline_prediction": string,
      "prediction": string,
      "instruction": string,
      "context": string
    }
  }
}
パラメータ

metric_spec

省略可: QuestionAnsweringQualitySpec

指標の動作を定義する指標の仕様。

instance

省略可: QuestionAnsweringQualityInstance

評価入力。推論入力と対応するレスポンスで構成されます。

instance.baseline_prediction

省略可: string

ベースライン モデルの LLM レスポンス。

instance.prediction

省略可: string

候補モデルの LLM レスポンス。

instance.instruction

省略可: string

推論時に使用される命令。

instance.context

省略可: string

推論時のテキスト。LLM レスポンスで使用できるすべての情報が含まれています。

PairwiseQuestionAnsweringQualityResult

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

pairwise_choice

PairwiseChoice: 次の値を持つ列挙型。

  • BASELINE: ベースラインの予測が優れています。
  • CANDIDATE: 候補の予測が優れています
  • TIE: ベースラインと候補の予測が密接に関係しています。

explanation

string: pairwise_choice の割り当ての根拠。

confidence

float: 結果の信頼スコア([0, 1])。

QuestionAnsweringRelevanceInput

{
  "question_answering_quality_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "instruction": string,
      "context": string
    }
  }
}
パラメータ

metric_spec

省略可: QuestionAnsweringRelevanceSpec

指標の動作を定義する指標の仕様。

instance

省略可: QuestionAnsweringRelevanceInstance

評価入力。推論入力と対応するレスポンスで構成されます。

instance.prediction

省略可: string

LLM レスポンス。

instance.instruction

省略可: string

推論時に使用される命令。

instance.context

省略可: string

推論時のテキスト。LLM レスポンスで使用できるすべての情報が含まれています。

QuestionAnsweringRelevancyResult

{
  "question_answering_relevancy_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
出力

score

float: 次のいずれかです。

  • 1: 関連性が低い
  • 2: やや関連性が低い
  • 3: どちらともいえない
  • 4: 一部関連性がある
  • 5: 関連性がある

explanation

string: スコア割り当ての根拠。

confidence

float: 結果の信頼スコア([0, 1])。

QuestionAnsweringHelpfulnessInput

{
  "question_answering_helpfulness_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "instruction": string,
      "context": string
    }
  }
}
パラメータ

metric_spec

省略可: QuestionAnsweringHelpfulnessSpec

指標の動作を定義する指標の仕様。

instance

省略可: QuestionAnsweringHelpfulnessInstance

評価入力。推論入力と対応するレスポンスで構成されます。

instance.prediction

省略可: string

LLM レスポンス。

instance.instruction

省略可: string

推論時に使用される命令。

instance.context

省略可: string

推論時のテキスト。LLM レスポンスで使用できるすべての情報が含まれています。

QuestionAnsweringHelpfulnessResult

{
  "question_answering_helpfulness_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
出力

score

float: 次のいずれかです。

  • 1: 役に立たなかった
  • 2: あまり役に立たなかった
  • 3: どちらともいえない
  • 4: ある程度は役に立った
  • 5: 役に立った

explanation

string: スコア割り当ての根拠。

confidence

float: 結果の信頼スコア([0, 1])。

QuestionAnsweringCorrectnessInput

{
  "question_answering_correctness_input: {
    "metric_spec": {
      "use_reference": bool
    },
    "instance": {
      "prediction": string,
      "reference": string,
      "instruction": string,
      "context": string
    }
  }
}
パラメータ

metric_spec

省略可: QuestionAnsweringCorrectnessSpec。指標の動作を定義する指標の仕様。

metric_spec.use_reference

省略可: bool

評価で参照が使用されるかどうか。

instance

省略可: QuestionAnsweringCorrectnessInstance

評価入力。推論入力と対応するレスポンスで構成されます。

instance.prediction

省略可: string

LLM レスポンス。

instance.reference

省略可: string

参照用のゴールデン LLM レスポンス。

instance.instruction

省略可: string

推論時に使用される命令。

instance.context

省略可: string

推論時のテキスト。LLM レスポンスで使用できるすべての情報が含まれています。

QuestionAnsweringCorrectnessResult

{
  "question_answering_correctness_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
出力

score

float: 次のいずれかです。

  • 0: 不正解
  • 1: 正解

explanation

string: スコア割り当ての根拠。

confidence

float: 結果の信頼スコア([0, 1])。

ToolCallValidInput

{
  "tool_call_valid_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "reference": string
    }
  }
}
パラメータ

metric_spec

省略可: ToolCallValidSpec

指標の動作を定義する指標の仕様。

instance

省略可: ToolCallValidInstance

評価の入力。LLM のレスポンスと参照で構成されます。

instance.prediction

省略可: string

候補モデルの LLM レスポンス。これは、content キーと tool_calls キーを含む JSON シリアル化文字列です。content の値は、モデルからのテキスト出力です。tool_call 値は、ツール呼び出しのリストが JSON シリアル化された文字列です。次に例を示します。


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

省略可: string

予測と同じ形式のゴールデン モデル出力。

ToolCallValidResults

{
  "tool_call_valid_results: {
    "tool_call_valid_metric_values": [
      {
        "score": float
      }
    ]
  }
}
出力

tool_call_valid_metric_values

繰り返し ToolCallValidMetricValue: インスタンス入力ごとの評価結果。

tool_call_valid_metric_values.score

float: 次のいずれかです。

  • 0: 無効なツールの呼び出し
  • 1: 有効なツールの呼び出し

ToolNameMatchInput

{
  "tool_name_match_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "reference": string
    }
  }
}
パラメータ

metric_spec

省略可: ToolNameMatchSpec

指標の動作を定義する指標の仕様。

instance

省略可: ToolNameMatchInstance

評価の入力。LLM のレスポンスと参照で構成されます。

instance.prediction

省略可: string

候補モデルの LLM レスポンス。これは、content キーと tool_calls キーを含む JSON シリアル化文字列です。content の値は、モデルからのテキスト出力です。tool_call 値は、ツール呼び出しのリストが JSON シリアル化された文字列です。

instance.reference

省略可: string

予測と同じ形式のゴールデン モデル出力。

ToolNameMatchResults

{
  "tool_name_match_results: {
    "tool_name_match_metric_values": [
      {
        "score": float
      }
    ]
  }
}
出力

tool_name_match_metric_values

繰り返し ToolNameMatchMetricValue: インスタンス入力ごとの評価結果。

tool_name_match_metric_values.score

float: 次のいずれかです。

  • 0: ツールの呼び出し名が参照と一致していません。
  • 1: ツールの呼び出し名が参照と一致しています。

ToolParameterKeyMatchInput

{
  "tool_parameter_key_match_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "reference": string
    }
  }
}
パラメータ

metric_spec

省略可: ToolParameterKeyMatchSpec

指標の動作を定義する指標の仕様。

instance

省略可: ToolParameterKeyMatchInstance

評価の入力。LLM のレスポンスと参照で構成されます。

instance.prediction

省略可: string

候補モデルの LLM レスポンス。これは、content キーと tool_calls キーを含む JSON シリアル化文字列です。content の値は、モデルからのテキスト出力です。tool_call 値は、ツール呼び出しのリストが JSON シリアル化された文字列です。

instance.reference

省略可: string

予測と同じ形式のゴールデン モデル出力。

ToolParameterKeyMatchResults

{
  "tool_parameter_key_match_results: {
    "tool_parameter_key_match_metric_values": [
      {
        "score": float
      }
    ]
  }
}
出力

tool_parameter_key_match_metric_values

繰り返し ToolParameterKeyMatchMetricValue: インスタンス入力ごとの評価結果。

tool_parameter_key_match_metric_values.score

float: [0, 1]。スコアが高いほど、参照パラメータの名前と一致するパラメータが多く存在することを表します。

ToolParameterKVMatchInput

{
  "tool_parameter_kv_match_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "reference": string
    }
  }
}
パラメータ

metric_spec

省略可: ToolParameterKVMatchSpec

指標の動作を定義する指標の仕様。

instance

省略可: ToolParameterKVMatchInstance

評価の入力。LLM のレスポンスと参照で構成されます。

instance.prediction

省略可: string

候補モデルの LLM レスポンス。これは、content キーと tool_calls キーを含む JSON シリアル化文字列です。content の値は、モデルからのテキスト出力です。tool_call 値は、ツール呼び出しのリストが JSON シリアル化された文字列です。

instance.reference

省略可: string

予測と同じ形式のゴールデン モデル出力。

ToolParameterKVMatchResults

{
  "tool_parameter_kv_match_results: {
    "tool_parameter_kv_match_metric_values": [
      {
        "score": float
      }
    ]
  }
}
出力

tool_parameter_kv_match_metric_values

繰り返し ToolParameterKVMatchMetricValue: インスタンス入力ごとの評価結果。

tool_parameter_kv_match_metric_values.score

float: [0, 1]。スコアが高いほど、参照パラメータの名前と値に一致するパラメータが多く存在することを表します。

  • PROJECT_ID = PROJECT_ID
  • REGION = REGION

ペアワイズ要約の品質

ここでは、Rapid evaluation API を呼び出して LLM の出力を評価する方法を示します。このケースでは、ペアワイズ要約の品質を比較します。

curl

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://${REGION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${REGION}:evaluateInstances \
  -d '{
    "pairwise_summarization_quality_input": {
      "metric_spec": {},
      "instance": {
        "prediction": "France is a country located in Western Europe.",
        "baseline_prediction": "France is a country.",
        "instruction": "Summarize the context.",
        "context": "France is a country located in Western Europe. It'\''s bordered by Belgium, Luxembourg, Germany, Switzerland, Italy, Monaco, Spain, and Andorra.  France'\''s coastline stretches along the English Channel, the North Sea, the Atlantic Ocean, and the Mediterranean Sea.  Known for its rich history, iconic landmarks like the Eiffel Tower, and delicious cuisine, France is a major cultural and economic power in Europe and throughout the world.",
      }
    }
  }'

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 = {
  "pairwise_summarization_quality_input": {
    "metric_spec": {},
    "instance": {
      "prediction": "France is a country located in Western Europe.",
      "baseline_prediction": "France is a country.",
      "instruction": "Summarize the context.",
      "context": (
          "France is a country located in Western Europe. It's bordered by "
          "Belgium, Luxembourg, Germany, Switzerland, Italy, Monaco, Spain, "
          "and Andorra.  France's coastline stretches along the English "
          "Channel, the North Sea, the Atlantic Ocean, and the Mediterranean "
          "Sea.  Known for its rich history, iconic landmarks like the Eiffel "
          "Tower, and delicious cuisine, France is a major cultural and "
          "economic power in Europe and throughout the world."
      ),
    }
  }
}

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

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

ROUGE

次に、API を呼び出して、特定の参照に対する予測の ROUGE スコアを取得します。

curl

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://${REGION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${REGION}:evaluateInstances \
  -d '{
    "rouge_input": {
      "instances": {
        "prediction": "A fast brown fox leaps over a lazy dog.",
        "reference": "The quick brown fox jumps over the lazy dog.",
      },
      "instances": {
        "prediction": "A quick brown fox jumps over the lazy canine.",
        "reference": "The quick brown fox jumps over the lazy dog.",
      },
      "instances": {
        "prediction": "The speedy brown fox jumps over the lazy dog.",
        "reference": "The quick brown fox jumps over the lazy dog.",
      },
      "metric_spec": {
        "rouge_type": "rougeLsum",
        "use_stemmer": true,
        "split_summaries": true
      }
    }
  }'

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 = {
  "rouge_input": {
    "metric_spec": {
        "rouge_type": "rougeLsum",
        "use_stemmer": True,
        "split_summaries": True
    },
    "instances": [
        {
          "prediction": "A fast brown fox leaps over a lazy dog.",
          "reference": "The quick brown fox jumps over the lazy dog.",
        }, {
          "prediction": "A quick brown fox jumps over the lazy canine.",
          "reference": "The quick brown fox jumps over the lazy dog.",
        }, {
          "prediction": "The speedy brown fox jumps over the lazy dog.",
          "reference": "The quick brown fox jumps over the lazy dog.",
        }
    ]
  }
}

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

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