生成モデルまたはアプリケーションを評価する最初のステップは、評価目標を特定して評価指標を定義することです。このページでは、ユースケースの評価指標の定義に関連するコンセプトの概要について説明します。
概要
生成 AI モデルを使用すると、ニュース記事の要約、顧客からの問い合わせへの対応、コードの記述の支援など、幅広いタスク向けのアプリケーションを作成できます。Vertex AI の Gen AI Evaluation Service を使用すると、説明可能な指標を使用して任意のモデルを評価できます。
たとえば、記事を要約するアプリケーションを開発しているとします。特定のタスクでのアプリのパフォーマンスを評価するには、測定したい基準と、スコア付けに使用する指標を検討します。
条件: 評価する単一または複数のディメンション(
conciseness
、relevance
、correctness
、appropriate choice of words
など)。指標: 基準に基づいてモデル出力を測定する単一のスコア。
Gen AI Evaluation Service では、主に 2 種類の指標が提供されます。
モデルベースの指標: モデルベースの指標では、候補モデルを判定モデルと比較して評価します。ほとんどのユースケースの判定モデルは Gemini ですが、翻訳のユースケースでは MetricX や COMET などのモデルを使用することもできます。
モデルベースの指標は、ペアワイズまたはポイントワイズで測定できます。
ポイントワイズ指標: 判定モデルを使用し、評価基準に基づいて候補モデルの出力を評価します。たとえば、スコアを 0~5 とする場合、0 はレスポンスが基準に適合していないことを意味し、5 は十分に適合していることを意味します。
ペアワイズ指標: 判定モデルを使用し、2 つのモデルのレスポンスを比較して、優れているほうを選択します。通常、このタイプの指標は候補モデルをベースライン モデルと比較する場合に使用します。ペアワイズ指標は、ジャッジモデルとして Gemini を使用する場合にのみサポートされます。
コンピューティング ベースの指標: これらの指標は、モデルの出力をグラウンド トゥルースまたは基準値と対比する数式を使用して計算されます。よく利用されている計算ベースの指標としては、ROUGE や BLEU があります。
計算ベースの指標は、単独で使用することも、モデルベースの指標と組み合わせて使用することもできます。モデルベースの指標と計算ベースの指標のどちらを使用するかを決定するには、次の表を参照してください。
評価のアプローチ | データ | 費用と処理速度 | |
---|---|---|---|
モデルベースの指標 | 判定モデルを使用し、記述的な評価基準に基づいてパフォーマンスを評価 | グラウンド トゥルースはなくてもかまわない | 費用がやや高く低速 |
計算ベースの指標 | 数式を使用してパフォーマンスを評価 | 通常、グラウンド トゥルースが必要 | 費用が低く高速 |
開始するには、データセットを準備すると評価を実行するをご覧ください。
モデルベースの指標を定義する
モデルベースの評価では、機械学習モデルを判定モデルとして使用し、候補モデルの出力を評価します。
Gemini などの Google 独自の判定モデルは、品質を保証するために人間の評価者によって調整されています。これらはマネージド ツールであり、追加設定なしですぐに使用できます。モデルベースの評価プロセスは、指定する評価指標によって異なります。
モデルベースの評価は、次のプロセスに沿って行われます。
データの準備: 評価データは入力プロンプトの形式で指定します。候補モデルはプロンプトを受け取り、対応するレスポンスを生成します。
評価: 評価指標と生成されたレスポンスがジャッジモデルに送信されます。ジャッジモデルは、各レスポンスを個別に評価し、行ベースの評価を提供します。
集計と説明: Gen AI 評価サービスは、これらの個々の評価を集計して全体的なスコアを算出します。出力には、各判定に対する思考の連鎖の説明も含まれ、選択の根拠が概説されます。
Gen AI Evaluation Service には、Vertex AI SDK を使用してモデルベースの指標を設定するための次のオプションがあります。
オプション | 説明 | 最適な用途 |
---|---|---|
既存の例を使用する | 事前構築された指標プロンプト テンプレートを使用して、すぐに使用を開始できます。 | 一般的なユースケース、時間の節約 |
テンプレート インターフェースで指標を定義する | 指標の定義をガイド付きでサポートします。テンプレート インターフェースには、構造と候補が表示されます。 | サポートによるカスタマイズ |
指標をゼロから定義する | メトリックの定義を完全に制御できます。 | 非常に具体的なユースケースに最適です。より多くの技術的専門知識と時間の投資が必要 |
たとえば、流暢で楽しい回答を返す生成 AI アプリケーションを開発できます。このアプリケーションでは、テンプレート インターフェースを使用して、評価の 2 つの条件を定義できます。
流暢さ: 文がスムーズに流れ、不自然な表現や長い文がないようにします。アイデアと文が論理的につながっており、必要に応じて効果的につなぎが使われている。
エンターテイメント: 絵文字、感嘆符、質問を組み込んだ、短くて面白いテキスト。迅速で即興的なコミュニケーションや気晴らしを伝えます。
これらの 2 つの条件を指標に変換するには、-1 ~ 1 の範囲の全体的なスコア custom_text_quality
が必要です。指標は次のように定義できます。
# Define a pointwise metric with two criteria: Fluency and Entertaining.
custom_text_quality = PointwiseMetric(
metric="custom_text_quality",
metric_prompt_template=PointwiseMetricPromptTemplate(
criteria={
"fluency": (
"Sentences flow smoothly and are easy to read, avoiding awkward"
" phrasing or run-on sentences. Ideas and sentences connect"
" logically, using transitions effectively where needed."
),
"entertaining": (
"Short, amusing text that incorporates emojis, exclamations and"
" questions to convey quick and spontaneous communication and"
" diversion."
),
},
rating_rubric={
"1": "The response performs well on both criteria.",
"0": "The response is somewhat aligned with both criteria",
"-1": "The response falls short on both criteria",
},
),
)
指標プロンプト テンプレートの一覧については、評価用の指標プロンプト テンプレートをご覧ください。
翻訳モデルを評価する
Gen AI Evaluation Service では、次の翻訳タスク評価指標が提供されます。
MetricX と COMET は、翻訳タスク用にトレーニングされたポイントベースのモデルベースの指標です。コンテンツの翻訳モデルの結果の品質と精度を評価できます。これは、NMT、TranslationLLM、Gemini モデルの出力であるかどうかに関係ありません。
また、Gemini をジャッジモデルとして使用し、MetricX、COMET、BLEU と組み合わせて、モデルの流暢性、一貫性、冗長性、テキスト品質を評価することもできます。
MetricX は Google が開発したエラーベースの指標で、翻訳の品質を表す 0 ~ 25 の浮動小数点スコアを予測します。MetricX は、参照ベースと参照フリー(QE)の両方のメソッドとして使用できます。この指標を使用する場合、スコアが低いほどエラーが少ないことを表すため、スコアが低いほど良いスコアとなります。
COMET は、参照ベースの回帰アプローチを採用しており、0 ~ 1 のスコアを提供します。1 は完全な翻訳を示します。
BLEU(Bilingual Evaluation Understudy)はコンピューティング ベースの指標です。BLEU スコアは、候補テキストと参照テキストの類似度を示します。BLEU スコア値が 1 に近いほど、翻訳が参照テキストに近いことを示します。
異なるコーパスや言語間で BLEU スコアを比較することは推奨されません。たとえば、英語からドイツ語への BLEU スコアが 50 の場合、日本語から英語への BLEU スコアが 50 の場合とは比較できません。多くの翻訳の専門家は、モデルベースの指標アプローチに移行しています。このアプローチは、人間の評価との相関が高く、エラー シナリオの特定がより詳細です。
翻訳モデルの評価を実行する方法については、翻訳モデルを評価するをご覧ください。
ポイントワイズ評価とペアワイズ評価のどちらを選択するか
ポイントワイズ評価とペアワイズ評価のどちらを使用するかを決定するには、次の表を参照してください。
定義 | 使用する状況 | サンプル ユースケース | |
---|---|---|---|
ポイントワイズ評価 | 1 つのモデルを評価し、基準に基づいてスコアを生成 |
|
|
ペアワイズ評価 | 2 つのモデルを対比し、基準に基づいて優れているほうを選択 |
|
|
計算ベースの指標
計算ベースの指標は、LLM によって生成された結果が、入力と出力のペアのグラウンド トゥルース データセットと一致しているかどうかを比較します。よく使用される指標は、次のグループに分類できます。
- レキシコンベースの指標: 数学を使用して、LLM によって生成された結果とグラウンド トゥルース(
Exact Match
やROUGE
など)の文字列の類似性を計算します。 - カウントベースの指標: 特定のグラウンド トゥルース ラベル(
F1-score
、Accuracy
、Tool Name Match
など)に一致または不一致の行の数を集計します。 - エンベディング ベースの指標: LLM によって生成された結果とグラウンド トゥルースのエンベディング空間内の距離を計算し、類似性のレベルを反映します。
一般的なテキスト生成
次の指標は、ユーザーにとって回答が有用で、安全で、効果的であることを保証するモデルの能力を評価するのに役立ちます。
完全一致
exact_match
指標は、モデルのレスポンスが参照と完全に一致するかどうかを計算します。
- トークンの上限: なし
評価基準
該当なし
指標の入力パラメータ
入力パラメータ | 説明 |
---|---|
response |
LLM レスポンス。 |
reference |
参照用のゴールデン LLM レスポンス。 |
スコアを出力する
値 | 説明 |
---|---|
0 | 不一致 |
1 | 一致 |
BLEU
bleu
(BiLingual Evaluation Understudy)指標には、ある自然言語から別の自然言語に翻訳されたレスポンスの品質を評価するアルゴリズムの結果が保持されます。レスポンスの品質は、response
パラメータとその reference
パラメータの対応関係と見なされます。
- トークンの上限: なし
評価基準
該当なし
指標の入力パラメータ
入力パラメータ | 説明 |
---|---|
response |
LLM レスポンス。 |
reference |
参照用のゴールデン LLM レスポンス。 |
スコアを出力する
値 | 説明 |
---|---|
[0,1] の範囲内の浮動小数点数 | スコアが高いほど、翻訳の品質が高いことを示します。スコア 1 は、reference と完全に一致することを表します。 |
ROUGE
ROUGE
指標は、指定された response
パラメータを reference
パラメータと比較するために使用されます。すべての rouge
指標は F1 スコアを返します。rouge-l-sum
はデフォルトで計算されますが、使用する rouge
バリアントを指定することもできます。
- トークンの上限: なし
評価基準
該当なし
指標の入力パラメータ
入力パラメータ | 説明 |
---|---|
response |
LLM レスポンス。 |
reference |
参照用のゴールデン LLM レスポンス。 |
スコアを出力する
値 | 説明 |
---|---|
[0,1] の範囲内の浮動小数点数 | スコアが 0 に近いほど、response と reference の類似性が低くなります。スコアが 1 に近いほど、response と reference の類似性が高くなります。 |
ツールの使用と関数呼び出し
次の指標は、有効なツール(関数)呼び出しを予測するモデルの能力を評価するのに役立ちます。
通話が有効
tool_call_valid
指標は、有効なツール呼び出しを予測するモデルの能力を表します。最初のツール呼び出しのみが検査されます。
- トークンの上限: なし
評価基準
評価基準 | 説明 |
---|---|
有効性 | モデルの出力に有効なツール呼び出しが含まれている。 |
書式設定 | JSON 辞書には、name フィールドと arguments フィールドが含まれています。 |
指標の入力パラメータ
入力パラメータ | 説明 |
---|---|
prediction |
候補モデルの出力。これは、content キーと tool_calls キーを含む JSON シリアル化文字列です。content の値は、モデルからのテキスト出力です。tool_calls 値は、ツール呼び出しのリストが 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"}}]} |
reference |
グラウンド トゥルースの参照予測。prediction と同じ形式です。 |
スコアを出力する
値 | 説明 |
---|---|
0 | 無効なツール呼び出し |
1 | 有効なツールの呼び出し |
名前の一致
tool_name_match
指標は、正しいツール名でツール呼び出しを予測するモデルの能力を表します。最初のツール呼び出しのみが検査されます。
- トークンの上限: なし
評価基準
評価基準 | 説明 |
---|---|
名前の一致 | モデルによって予測されたツール呼び出しが、参照ツール呼び出しの名前と一致している。 |
指標の入力パラメータ
入力パラメータ | 説明 |
---|---|
prediction |
候補モデルの出力。これは、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"}}]} |
reference |
グラウンド トゥルースの参照予測。prediction と同じ形式です。 |
スコアを出力する
値 | 説明 |
---|---|
0 | ツールの呼び出し名が参照と一致していません。 |
1 | ツールの呼び出し名が参照と一致しています。 |
パラメータキーの一致
tool_parameter_key_match
指標は、正しいパラメータ名でツール呼び出しを予測するモデルの能力を表します。
- トークンの上限: なし
評価基準
評価基準 | 説明 |
---|---|
パラメータの一致率 | 参照ツール呼び出しのパラメータ名と一致する予測パラメータの数とパラメータの合計数との比率。 |
指標の入力パラメータ
入力パラメータ | 説明 |
---|---|
prediction |
候補モデルの出力。これは、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"}}]} |
reference |
グラウンド トゥルースの参照モデル予測。prediction と同じ形式です。 |
スコアを出力する
値 | 説明 |
---|---|
[0,1] の範囲内の浮動小数点数 | 1 のスコアが高いほど、reference パラメータの名前と一致するパラメータが多くなります。 |
パラメータ KV の一致
tool_parameter_kv_match
指標は、正しいパラメータ名とキー値でツール呼び出しを予測するモデルの能力を表します。
- トークンの上限: なし
評価基準
評価基準 | 説明 |
---|---|
パラメータの一致率 | 参照ツール呼び出しのパラメータ名と値の両方に一致する予測パラメータの数とパラメータの合計数の比率。 |
指標の入力パラメータ
入力パラメータ | 説明 |
---|---|
prediction |
候補モデルの出力。これは、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"}}]} |
reference |
グラウンド トゥルースの参照予測。prediction と同じ形式です。 |
スコアを出力する
値 | 説明 |
---|---|
[0,1] の範囲内の浮動小数点数 | 1 のスコアが高いほど、reference パラメータの名前と値に一致するパラメータが多くなります。 |
生成 AI 評価サービスでは、Vertex AI SDK for Python を使用して計算ベースの指標を使用できます。
生成タスクのベースライン評価品質
生成 AI モデルの出力を評価する場合は、評価プロセスは本質的に主観的であり、評価の品質は特定のタスクと評価基準によって異なる可能性があることに注意してください。この主観性は人間の評価者にも当てはまります。生成 AI モデルの一貫した評価を実現する際の課題について詳しくは、MT-Bench と Chatbot Arena を使用した LLM-as-a-Judge の評価と人間のフィードバックから要約を学習するをご覧ください。
次のステップ
モデルベースの指標テンプレートを見つけます。
評価用のサンプル ノートブックを試す。