迅速評価サービスを使用すると、ユーザーは 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))
パラメータ リスト
利用可能な指標の全一覧。
パラメータ | |
---|---|
|
省略可: 予測が参照と完全に一致しているかどうかを評価するための入力。 |
|
省略可: 予測と参照を比較して BLEU スコアを計算するための入力。 |
|
省略可: 予測と参照を比較して |
|
省略可: 単一レスポンスの回答の言語習熟度を評価するための入力。 |
|
省略可: 単一のレスポンスが、一貫性があり、わかりやすい内容の返信を行うことができるかどうかを評価するための入力。 |
|
省略可: 単一レスポンスの安全性レベルを評価するための入力。 |
|
省略可: 単一のレスポンスが、入力テキストにのみ含まれる情報を提供または参照できるかどうかを評価するための入力。 |
|
省略可: 単一のレスポンスが指示内容の要件を完全に満たすことができるかどうかを評価するための入力。 |
|
省略可: 全般的に見て単一レスポンスがどの程度適切にテキストを要約できるかを評価するための入力。 |
|
省略可: 2 つのレスポンスの全般的な要約の品質を比較するための入力。 |
|
省略可: 単一レスポンスが、元のテキストを置き換えるために必要な詳細情報を含む要約を提供できるかどうかを評価するための入力。 |
|
省略可: 単一のレスポンスが簡潔な要約を提示できるかどうかを評価するための入力。 |
|
省略可: 全般的に見て、参照するテキスト本文が与えられたときに、単一のレスポンスがどの程度質問に回答できるかを評価するための入力。 |
|
省略可: 全般的に見て、参照するテキスト本文が与えられたときに、2 つのレスポンスがどの程度質問に回答できるかを比較するための入力。 |
|
省略可: 質問に対して単一のレスポンスが関連する情報で応答できるかどうかを評価するための入力。 |
|
省略可: 質問に答える際に単一のレスポンスが重要な詳細情報を提供できるかどうかを評価するための入力。 |
|
省略可: 単一のレスポンスが質問に正しく答えられるかどうかを評価するための入力。 |
|
省略可: 単一のレスポンスが有効なツール呼び出しを予測できるかどうかを評価するための入力。 |
|
省略可: 単一のレスポンスがツール呼び出しを正しいツール名で予測できるかどうかを評価するための入力。 |
|
省略可: 単一のレスポンスが、正しいパラメータ名でツール呼び出しを予測できるかどうかを評価するための入力。 |
|
省略可: 単一のレスポンスが、正しいパラメータ名と値でツール呼び出しを予測できるかどうかを評価するための入力 |
ExactMatchInput
{ "exact_match_input: { "metric_spec": {}, "instances": [ { "prediction": string, "reference": string } ] } }
パラメータ | |
---|---|
|
省略可: 指標の動作を定義する指標の仕様。 |
|
省略可: 評価の入力。LLM のレスポンスと参照で構成されます。 |
|
省略可: LLM レスポンス。 |
|
省略可: 参照用のゴールデン LLM レスポンス。 |
ExactMatchResults
{ "exact_match_results: { "exact_match_metric_values": [ { "score": float } ] } }
出力 | |
---|---|
|
インスタンス入力ごとの評価結果。 |
|
次のいずれかになります。
|
BleuInput
{ "bleu_input: { "metric_spec": {}, "instances": [ { "prediction": string, "reference": string } ] } }
パラメータ | |
---|---|
|
省略可: 指標の動作を定義する指標の仕様。 |
|
省略可: 評価の入力。LLM のレスポンスと参照で構成されます。 |
|
省略可: LLM レスポンス。 |
|
省略可: 参照用のゴールデン LLM レスポンス。 |
BleuResults
{ "bleu_results: { "bleu_metric_values": [ { "score": float } ] } }
出力 | |
---|---|
|
インスタンス入力ごとの評価結果。 |
|
|
RougeInput
{ "rouge_input: { "metric_spec": { "rouge_type": string, "use_stemmer": bool, "split_summaries": bool }, "instances": [ { "prediction": string, "reference": string } ] } }
パラメータ | |
---|---|
|
省略可: 指標の動作を定義する指標の仕様。 |
|
省略可: 使用できる値:
|
|
省略可: 一致を改善するために Porter ステムを使用して単語の接尾辞を削除するかどうか。 |
|
省略可: rougeLsum の文の間に改行を追加するかどうか。 |
|
省略可: 評価の入力。LLM のレスポンスと参照で構成されます。 |
|
省略可: LLM レスポンス。 |
|
省略可: 参照用のゴールデン LLM レスポンス。 |
RougeResults
{ "rouge_results: { "rouge_metric_values": [ { "score": float } ] } }
出力 | |
---|---|
|
インスタンス入力ごとの評価結果。 |
|
|
FluencyInput
{ "fluency_input: { "metric_spec": {}, "instance": { "prediction": string } } }
パラメータ | |
---|---|
|
省略可: 指標の動作を定義する指標の仕様。 |
|
省略可: 評価の入力(LLM レスポンスで構成)。 |
|
省略可: LLM レスポンス。 |
FluencyResult
{ "fluency_result: { "score": float, "explanation": string, "confidence": float } }
出力 | |
---|---|
|
|
|
|
|
|
CoherenceInput
{ "coherence_input: { "metric_spec": {}, "instance": { "prediction": string } } }
パラメータ | |
---|---|
|
省略可: 指標の動作を定義する指標の仕様。 |
|
省略可: 評価の入力(LLM レスポンスで構成)。 |
|
省略可: LLM レスポンス。 |
CoherenceResult
{ "coherence_result: { "score": float, "explanation": string, "confidence": float } }
出力 | |
---|---|
|
|
|
|
|
|
SafetyInput
{ "safety_input: { "metric_spec": {}, "instance": { "prediction": string } } }
パラメータ | |
---|---|
|
省略可: 指標の動作を定義する指標の仕様。 |
|
省略可: 評価の入力(LLM レスポンスで構成)。 |
|
省略可: LLM レスポンス。 |
SafetyResult
{ "safety_result: { "score": float, "explanation": string, "confidence": float } }
出力 | |
---|---|
|
|
|
|
|
|
GroundednessInput
{ "groundedness_input: { "metric_spec": {}, "instance": { "prediction": string, "context": string } } }
パラメータ |
説明 |
|
省略可: GroundednessSpec 指標の動作を定義する指標の仕様。 |
|
省略可: GroundednessInstance 評価入力。推論入力と対応するレスポンスで構成されます。 |
|
省略可: LLM レスポンス。 |
|
省略可: 推論時のテキスト。LLM レスポンスで使用できるすべての情報が含まれています。 |
GroundednessResult
{ "groundedness_result: { "score": float, "explanation": string, "confidence": float } }
出力 | |
---|---|
|
|
|
|
|
|
FulfillmentInput
{ "fulfillment_input: { "metric_spec": {}, "instance": { "prediction": string, "instruction": string } } }
パラメータ | |
---|---|
|
省略可: 指標の動作を定義する指標の仕様。 |
|
省略可: 評価入力。推論入力と対応するレスポンスで構成されます。 |
|
省略可: LLM レスポンス。 |
|
省略可: 推論時に使用される命令。 |
FulfillmentResult
{ "fulfillment_result: { "score": float, "explanation": string, "confidence": float } }
出力 | |
---|---|
|
|
|
|
|
|
SummarizationQualityInput
{ "summarization_quality_input: { "metric_spec": {}, "instance": { "prediction": string, "instruction": string, "context": string, } } }
パラメータ | |
---|---|
|
省略可: 指標の動作を定義する指標の仕様。 |
|
省略可: 評価入力。推論入力と対応するレスポンスで構成されます。 |
|
省略可: LLM レスポンス。 |
|
省略可: 推論時に使用される命令。 |
|
省略可: 推論時のテキスト。LLM レスポンスで使用できるすべての情報が含まれています。 |
SummarizationQualityResult
{ "summarization_quality_result: { "score": float, "explanation": string, "confidence": float } }
出力 | |
---|---|
|
|
|
|
|
|
PairwiseSummarizationQualityInput
{ "pairwise_summarization_quality_input: { "metric_spec": {}, "instance": { "baseline_prediction": string, "prediction": string, "instruction": string, "context": string, } } }
パラメータ | |
---|---|
|
省略可: 指標の動作を定義する指標の仕様。 |
|
省略可: 評価入力。推論入力と対応するレスポンスで構成されます。 |
|
省略可: ベースライン モデルの LLM レスポンス。 |
|
省略可: 候補モデルの LLM レスポンス。 |
|
省略可: 推論時に使用される命令。 |
|
省略可: 推論時のテキスト。LLM レスポンスで使用できるすべての情報が含まれています。 |
PairwiseSummarizationQualityResult
{ "pairwise_summarization_quality_result: { "pairwise_choice": PairwiseChoice, "explanation": string, "confidence": float } }
出力 | |
---|---|
|
|
|
|
|
|
SummarizationHelpfulnessInput
{ "summarization_helpfulness_input: { "metric_spec": {}, "instance": { "prediction": string, "instruction": string, "context": string, } } }
パラメータ | |
---|---|
|
省略可: 指標の動作を定義する指標の仕様。 |
|
省略可: 評価入力。推論入力と対応するレスポンスで構成されます。 |
|
省略可: LLM レスポンス。 |
|
省略可: 推論時に使用される命令。 |
|
省略可: 推論時のテキスト。LLM レスポンスで使用できるすべての情報が含まれています。 |
SummarizationHelpfulnessResult
{ "summarization_helpfulness_result: { "score": float, "explanation": string, "confidence": float } }
出力 | |
---|---|
|
|
|
|
|
|
SummarizationVerbosityInput
{ "summarization_verbosity_input: { "metric_spec": {}, "instance": { "prediction": string, "instruction": string, "context": string, } } }
パラメータ | |
---|---|
|
省略可: 指標の動作を定義する指標の仕様。 |
|
省略可: 評価入力。推論入力と対応するレスポンスで構成されます。 |
|
省略可: LLM レスポンス。 |
|
省略可: 推論時に使用される命令。 |
|
省略可: 推論時のテキスト。LLM レスポンスで使用できるすべての情報が含まれています。 |
SummarizationVerbosityResult
{ "summarization_verbosity_result: { "score": float, "explanation": string, "confidence": float } }
出力 | |
---|---|
|
|
|
|
|
|
QuestionAnsweringQualityInput
{ "question_answering_quality_input: { "metric_spec": {}, "instance": { "prediction": string, "instruction": string, "context": string, } } }
パラメータ | |
---|---|
|
省略可: 指標の動作を定義する指標の仕様。 |
|
省略可: 評価入力。推論入力と対応するレスポンスで構成されます。 |
|
省略可: LLM レスポンス。 |
|
省略可: 推論時に使用される命令。 |
|
省略可: 推論時のテキスト。LLM レスポンスで使用できるすべての情報が含まれています。 |
QuestionAnsweringQualityResult
{ "question_answering_quality_result: { "score": float, "explanation": string, "confidence": float } }
出力 | |
---|---|
|
|
|
|
|
|
PairwiseQuestionAnsweringQualityInput
{ "question_answering_quality_input: { "metric_spec": {}, "instance": { "baseline_prediction": string, "prediction": string, "instruction": string, "context": string } } }
パラメータ | |
---|---|
|
省略可: 指標の動作を定義する指標の仕様。 |
|
省略可: 評価入力。推論入力と対応するレスポンスで構成されます。 |
|
省略可: ベースライン モデルの LLM レスポンス。 |
|
省略可: 候補モデルの LLM レスポンス。 |
|
省略可: 推論時に使用される命令。 |
|
省略可: 推論時のテキスト。LLM レスポンスで使用できるすべての情報が含まれています。 |
PairwiseQuestionAnsweringQualityResult
{ "pairwise_question_answering_quality_result: { "pairwise_choice": PairwiseChoice, "explanation": string, "confidence": float } }
出力 | |
---|---|
|
|
|
|
|
|
QuestionAnsweringRelevanceInput
{ "question_answering_quality_input: { "metric_spec": {}, "instance": { "prediction": string, "instruction": string, "context": string } } }
パラメータ | |
---|---|
|
省略可: 指標の動作を定義する指標の仕様。 |
|
省略可: 評価入力。推論入力と対応するレスポンスで構成されます。 |
|
省略可: LLM レスポンス。 |
|
省略可: 推論時に使用される命令。 |
|
省略可: 推論時のテキスト。LLM レスポンスで使用できるすべての情報が含まれています。 |
QuestionAnsweringRelevancyResult
{ "question_answering_relevancy_result: { "score": float, "explanation": string, "confidence": float } }
出力 | |
---|---|
|
|
|
|
|
|
QuestionAnsweringHelpfulnessInput
{ "question_answering_helpfulness_input: { "metric_spec": {}, "instance": { "prediction": string, "instruction": string, "context": string } } }
パラメータ | |
---|---|
|
省略可: 指標の動作を定義する指標の仕様。 |
|
省略可: 評価入力。推論入力と対応するレスポンスで構成されます。 |
|
省略可: LLM レスポンス。 |
|
省略可: 推論時に使用される命令。 |
|
省略可: 推論時のテキスト。LLM レスポンスで使用できるすべての情報が含まれています。 |
QuestionAnsweringHelpfulnessResult
{ "question_answering_helpfulness_result: { "score": float, "explanation": string, "confidence": float } }
出力 | |
---|---|
|
|
|
|
|
|
QuestionAnsweringCorrectnessInput
{ "question_answering_correctness_input: { "metric_spec": { "use_reference": bool }, "instance": { "prediction": string, "reference": string, "instruction": string, "context": string } } }
パラメータ | |
---|---|
|
省略可: |
|
省略可: 評価で参照が使用されるかどうか。 |
|
省略可: 評価入力。推論入力と対応するレスポンスで構成されます。 |
|
省略可: LLM レスポンス。 |
|
省略可: 参照用のゴールデン LLM レスポンス。 |
|
省略可: 推論時に使用される命令。 |
|
省略可: 推論時のテキスト。LLM レスポンスで使用できるすべての情報が含まれています。 |
QuestionAnsweringCorrectnessResult
{ "question_answering_correctness_result: { "score": float, "explanation": string, "confidence": float } }
出力 | |
---|---|
|
|
|
|
|
|
ToolCallValidInput
{ "tool_call_valid_input: { "metric_spec": {}, "instance": { "prediction": string, "reference": string } } }
パラメータ | |
---|---|
|
省略可: 指標の動作を定義する指標の仕様。 |
|
省略可: 評価の入力。LLM のレスポンスと参照で構成されます。 |
|
省略可: 候補モデルの LLM レスポンス。これは、 { "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" } } ] } |
|
省略可: 予測と同じ形式のゴールデン モデル出力。 |
ToolCallValidResults
{ "tool_call_valid_results: { "tool_call_valid_metric_values": [ { "score": float } ] } }
出力 | |
---|---|
|
繰り返し |
|
|
ToolNameMatchInput
{ "tool_name_match_input: { "metric_spec": {}, "instance": { "prediction": string, "reference": string } } }
パラメータ | |
---|---|
|
省略可: 指標の動作を定義する指標の仕様。 |
|
省略可: 評価の入力。LLM のレスポンスと参照で構成されます。 |
|
省略可: 候補モデルの LLM レスポンス。これは、 |
|
省略可: 予測と同じ形式のゴールデン モデル出力。 |
ToolNameMatchResults
{ "tool_name_match_results: { "tool_name_match_metric_values": [ { "score": float } ] } }
出力 | |
---|---|
|
繰り返し |
|
|
ToolParameterKeyMatchInput
{ "tool_parameter_key_match_input: { "metric_spec": {}, "instance": { "prediction": string, "reference": string } } }
パラメータ | |
---|---|
|
省略可: 指標の動作を定義する指標の仕様。 |
|
省略可: 評価の入力。LLM のレスポンスと参照で構成されます。 |
|
省略可: 候補モデルの LLM レスポンス。これは、 |
|
省略可: 予測と同じ形式のゴールデン モデル出力。 |
ToolParameterKeyMatchResults
{ "tool_parameter_key_match_results: { "tool_parameter_key_match_metric_values": [ { "score": float } ] } }
出力 | |
---|---|
|
繰り返し |
|
|
ToolParameterKVMatchInput
{ "tool_parameter_kv_match_input: { "metric_spec": {}, "instance": { "prediction": string, "reference": string } } }
パラメータ | |
---|---|
|
省略可: 指標の動作を定義する指標の仕様。 |
|
省略可: 評価の入力。LLM のレスポンスと参照で構成されます。 |
|
省略可: 候補モデルの LLM レスポンス。これは、 |
|
省略可: 予測と同じ形式のゴールデン モデル出力。 |
ToolParameterKVMatchResults
{ "tool_parameter_kv_match_results: { "tool_parameter_kv_match_metric_values": [ { "score": float } ] } }
出力 | |
---|---|
|
繰り返し |
|
|
例
- 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))