G-gen の佐々木です。当記事では、Google Cloud の生成 AI 開発・運用プラットフォームである Gemini Enterprise Agent Platform に統合された評価サービス、Gen AI Evaluation Service を解説します。生成 AI の出力品質を客観的・データドリブンに評価できるサービスです。

概要
Gemini Enterprise Agent Platform とは
Gemini Enterprise Agent Platform(旧称 Vertex AI、以下 Agent Platform と記載)は、Google Cloud が提供する生成 AI / 機械学習モデルの開発・デプロイ・運用を統合的に扱うプラットフォームです。基盤モデルの呼び出し、チューニング、エージェントの構築とデプロイ、評価までを一貫して行えます。
Agent Platform 全体の概要は、以下の記事で解説しています。
Gen AI Evaluation Service とは
Gen AI Evaluation Service は、Agent Platform の機能の1つで、生成 AI のモデル・アプリケーション・エージェントの出力品質を客観的に評価するためのサービスです。
生成 AI の出力は「正解が1つに定まらない」ため、従来の機械学習のように単純な正解率では品質を測れません。Gen AI Evaluation Service は、別の大規模言語モデル(LLM)を評価者(ジャッジ)として使う手法(LLM-as-a-judge)や、参照回答との一致を測る決定論的なアルゴリズムを組み合わせ、出力品質を数値とフィードバックの形で可視化します。
主な用途は以下のとおりです。
- モデルのバージョン間で挙動の差を比較し、移行可否を判断する
- Google のモデルとサードパーティ製モデルを同じ基準で比較し、最適なモデルを選定する
- 評価結果をフィードバックループに組み込み、プロンプトを最適化する
- ファインチューニングの前後の品質を、一貫した基準で評価する
- ツールの使用やトラジェクトリ(実行の軌跡)など、エージェント固有の観点を測る
参考 : Gen AI Evaluation Service の概要
当記事で扱うインターフェース
当記事で解説するのは、Google が推奨する Agent Platform SDK の GenAI クライアントを使った評価方法です。公式で推奨されてはいるものの、2026年6月現在はプレビュー機能として提供されている点に注意してください。
一方、以前から提供されている評価モジュール(EvalTask)は GA(一般提供)ですが、当記事で扱う適応型ルーブリックには対応していません。両インターフェースの違いは、後半の「評価のインターフェース」で改めて整理します。
Gen AI Evaluation Service の評価方法
評価方法の分類
はじめに、当記事で繰り返し登場する評価関連の用語を整理します。
| 用語 | 定義 |
|---|---|
| ルーブリック(rubric) | 回答をどう評価するかの基準。「良い回答が満たすべき条件」を合否形式のチェック項目として定めたもの |
| 指標(metric) | ルーブリックなどの基準に照らして回答を測定したスコア。流暢さ・安全性・参照回答との一致など、何を測るかを表す |
| 参照回答(reference) | 入力に対して期待する正解(お手本)の出力。グラウンドトゥルースとも呼ぶ。計算ベースの指標などが、モデルの出力と突き合わせてスコアを算出する際の基準とする |
ルーブリックが評価の「ものさし」で、そのものさしで測った結果が指標のスコアにあたります。
Gen AI Evaluation Service の評価指標は、大きく以下の4つのカテゴリに分かれます。
| 指標カテゴリ | 評価方法・例 | 概要 | 参照回答 |
|---|---|---|---|
| ルーブリックベースの指標 | 適応型ルーブリック(推奨)・静的ルーブリック | LLM を評価者(ジャッジ)として、回答を合否項目で採点する | 指標による |
| 計算ベースの指標 | BLEU・ROUGE など | 決定論的なアルゴリズムで参照回答との一致度を計算する | 必要 |
| カスタム指標 | カスタム関数・リモートカスタム関数・LLMMetric | Python 関数や独自プロンプトで評価ロジックを定義する | 任意 |
| エージェント評価指標 | ツール使用・実行軌跡の評価 | ツールの呼び出しや実行軌跡など、エージェント固有の観点を評価する | 指標による |
このうち適応型ルーブリックは、参照回答なしで多様なプロンプトを評価できるため、まず試す方法として推奨されています。各カテゴリに含まれる個別の指標は、後述の「評価指標」で解説します。
適応型ルーブリックによる評価
適応型ルーブリック(adaptive rubric)は、Gen AI Evaluation Service が推奨する評価方法です。プロンプトの内容に応じて「このプロンプトに対する良い回答が満たすべき条件」を合否形式のチェック項目として自動生成し、その項目ごとに回答を検証します。
たとえば、後半の使用例で使う次の2つのプロンプトでは、それぞれ以下のような評価項目(ルーブリック)が動的に生成されます。
| プロンプト例 | 生成される評価項目 |
|---|---|
| 「Cloud Run と GKE の使い分けを、専門用語を使わずに、ちょうど2つの箇条書きで、各項目40文字以内で説明してください」 | ・日本語で書かれているか ・Cloud Run の使いどころを説明しているか ・GKE の使いどころを説明しているか ・専門用語を避けているか ・ちょうど2つの箇条書きか ・各項目が40文字以内か ・非専門家にも分かりやすいか |
| 「Infrastructure as Code の利点を、句読点を含めてちょうど50文字で述べてください」 | ・日本語で書かれているか ・IaC の利点を述べているか ・句読点を含めてちょうど50文字か |
各項目の合否でスコアが決まり、スコアはルーブリックの合格率として0〜1の範囲で表されます。
固定の採点基準を全プロンプトに適用する静的ルーブリックと異なり、適応型ルーブリックはプロンプトごとに評価観点を作り分けるため、多様なタスクを含むデータセットでも適切に評価できます。
当記事後半の使用例でも、この適応型ルーブリックに分類される GENERAL_QUALITY と INSTRUCTION_FOLLOWING を指標に選び、実際に評価を実行します。
評価指標
ルーブリックベースの指標
ルーブリックベースの指標は、Gemini などの LLM を評価者として使い、回答の品質を採点する指標です。流暢さ・指示への準拠・安全性といった、機械的には測りにくい定性的な観点の評価に向いています。
代表的なマネージド指標は以下のとおりです。SDK では types.RubricMetric 経由でアクセスします。
| 指標 | 種別 | 概要 |
|---|---|---|
GENERAL_QUALITY |
適応型 | 指示への準拠・書式・トーン・スタイルを総合評価する。デフォルトの指標 |
TEXT_QUALITY |
適応型 | 流暢さ・一貫性・文法を評価する |
INSTRUCTION_FOLLOWING |
適応型 | プロンプトの制約・指示にどれだけ適切に従っているかを評価する |
GROUNDING |
静的 | 与えたコンテキストに対する事実性・整合性を評価する。RAG 向け |
SAFETY |
静的 | ヘイトや個人情報など、安全性ポリシーへの違反を評価する |
FINAL_RESPONSE_MATCH |
静的 | 回答が参照回答(reference)と一致しているかを評価する |
評価では、指標ごとに異なる回数のジャッジ呼び出しが行われます。たとえば GENERAL_QUALITY は Gemini 2.5 Flash(2026年6月現在)を6回、SAFETY は10回呼び出します。
まずは GENERAL_QUALITY から始め、必要に応じて観点を絞った指標を追加するのが基本的な進め方です。また、GENERAL_QUALITY などの指標には独自のガイドラインを追加して、評価の観点を絞り込むこともできます。
- 参考 : 評価指標を定義する
- 参考 : マネージド ルーブリック ベースの指標の詳細
計算ベースの指標
計算ベースの指標は、参照回答との一致度を決定論的なアルゴリズムで計算する指標です。LLM を介さないため高速で、結果が安定します。要約や翻訳のように、期待する出力が明確なタスクに向いています。
| 指標 | 概要 |
|---|---|
bleu |
n-gram の一致度を測る。翻訳品質の標準的な指標 |
rouge_1 / rouge_l |
n-gram の適合率を測る。要約の評価に向く |
exact_match |
参照回答と完全に一致した割合を測る |
いずれの指標も、評価データセットに参照回答(reference)の列が必要です。出力を参照回答と突き合わせてスコアを計算するため、以下のように入力・出力・参照回答を組にしたデータを用意します。
入力(prompt) |
出力(response) |
参照回答(reference) |
|---|---|---|
| 「Good morning」を日本語に訳してください | おはよう | おはようございます |
| 次の文を要約してください : 〜(本文) | 売上は前年比10%増だった | 売上は前年同期比で10%増加した |
| 日本の首都はどこですか | 東京 | 東京 |
たとえば bleu であれば、出力「おはよう」と参照回答「おはようございます」の n-gram の重なりからスコアを算出します。SDK では types.Metric(name="bleu") のように指定します。
- 参考 : 評価指標を定義する - 計算ベースの指標
カスタム指標
マネージドな指標では測れない独自の観点を評価したい場合は、カスタム指標を定義できます。カスタム指標には以下の3種類があります。
| 種類 | 概要 |
|---|---|
カスタム関数指標(custom_function) |
Python 関数で評価ロジックを書き、各行に対して実行する |
リモートカスタム関数指標(remote_custom_function) |
ネットワーク非接続のサンドボックス環境で評価ロジックを実行する |
静的なカスタム指標(LLMMetric) |
独自のプロンプトで LLM に採点させる |
- 参考 : 評価指標を定義する - カスタム関数指標
- 参考 : 評価指標を定義する - リモートカスタム関数指標
エージェント評価指標
Gen AI Evaluation Service は、最終的な回答テキストだけでなく、エージェントがツールを呼び出して回答に至るまでの過程も評価できます。これにより、「正しいツールを正しい引数で呼べているか」「無駄な手順を踏んでいないか」といった、エージェント固有の品質を測れます。
| 指標 | 概要 |
|---|---|
FINAL_RESPONSE_QUALITY |
エージェントの最終回答の品質を評価する |
TOOL_USE_QUALITY |
ツール(関数)呼び出しの正確性を評価する |
HALLUCINATION |
回答が根拠に基づいているか(グラウンディング度)を評価する |
MULTI_TURN_TRAJECTORY_QUALITY |
マルチターン会話でのツール呼び出しの軌跡(トラジェクトリ)の質を評価する |
評価データセット
Gen AI Evaluation Service は、一般的なデータ形式を自動で判別するため、手元のデータを大きく変換せずに評価へ渡せます。必要なフィールドは評価の目的によって変わります。
| 目的 | 必須フィールド |
|---|---|
| 新しく回答を生成して評価する | prompt |
| 既存の回答を評価する | prompt、response |
| 計算ベースの指標で評価する | prompt、response、reference |
評価データセットは、pandas の DataFrame のほか、Gemini のバッチ予測形式や OpenAI Chat Completion 形式の JSONL ファイル、Cloud Storage 上のファイルとして渡せます。マルチターン会話を含む JSONL は自動的に解析され、最後のユーザー発話が prompt、それより前のやり取りが会話履歴、モデルの返答が response に振り分けられます。
たとえば、既存の回答を評価する場合の pandas DataFrame は以下のように用意します。
import pandas as pd eval_dataset = pd.DataFrame( { "prompt": [ "「Good morning」を日本語に訳してください", "日本の首都はどこですか", ], "response": [ "おはよう", "東京", ], } )
計算ベースの指標で評価する場合は、ここに参照回答(reference)の列を追加します。
eval_dataset = pd.DataFrame(
{
"prompt": [
"「Good morning」を日本語に訳してください",
"日本の首都はどこですか",
],
"response": [
"おはよう",
"東京",
],
"reference": [
"おはようございます",
"東京",
],
}
)
JSONL ファイルとして渡す場合は、1行が1件の評価対象となります。
{"prompt": "「Good morning」を日本語に訳してください", "response": "おはよう", "reference": "おはようございます"} {"prompt": "日本の首都はどこですか", "response": "東京", "reference": "東京"}
- 参考 : 評価データセットを準備する
利用にあたっての注意点
サービスエージェントの自動作成
ルーブリックベースの指標など、LLM がジャッジとして採点する評価を初めてリクエストすると、プロジェクトにサービスエージェント service-<プロジェクト番号>@gcp-sa-vertex-eval.iam.gserviceaccount.com が自動的に作成され、roles/aiplatform.rapidevalServiceAgent ロールが付与されます。

対応リージョン
2026年6月現在、Gen AI Evaluation Service は us-central1 などの米国リージョンの一部と、europe-west1 などの欧州リージョンの一部、および global エンドポイントで利用できます。対応リージョンの最新情報は公式ドキュメント(原文)を参照してください。
料金
Gen AI Evaluation Service の評価時にジャッジとして LLM を呼び出す場合、評価に使われるモデルの利用料金が発生します。実際の課金については、最新の公式の料金ページを確認してください。
評価の実行方法
評価のインターフェース
Gen AI Evaluation Service は、以下の3つのインターフェースから利用できます。
| インターフェース | アクセス方法 |
|---|---|
| Agent Platform SDK の GenAI クライアント(プレビュー) | from vertexai import Client |
| Agent Platform SDK の評価モジュール(GA・旧インターフェース) | from vertexai.evaluation import EvalTask |
| Google Cloud コンソール(プレビュー) | コンソール画面 |
当記事で解説する適応型ルーブリックは、新しい GenAI クライアント方式で利用できる機能です。2026年6月現在、この GenAI クライアント方式はプレビューとして提供されています。旧インターフェースである従来の評価モジュール(EvalTask)は GA ですが、適応型ルーブリックには対応しておらず、下位互換性維持のための提供となっています。
なお、Gen AI Evaluation Service の SDK は Agent Platform 配下の機能ですが、2026年6月現在、パッケージ名やインポートは引き続き Vertex AI 系(vertexai、google-cloud-aiplatform)を使います。
評価のワークフロー
GenAI クライアントを使ったモデル評価は、以下の流れで進めます。
- 評価データセットを用意する(プロンプトと、必要に応じて参照回答)
- 評価指標を選ぶ
- モデルに推論させて回答を生成する(
run_inference) - 生成した回答を評価する(
evaluate) - 評価結果を表示・解釈する(
show)
既にモデルの回答が手元にある場合は、ステップ3を省いて評価から始めることもできます。各ステップの具体的なコードは、後述の使用例で示します。
なお、大規模なデータセットを評価する場合は、評価を非同期で実行して結果を Cloud Storage に出力する batch_evaluate メソッドも利用できます。
- 参考 : 評価を実行する - 非同期の大規模な評価
使用例(適応型ルーブリック)
SDK のインストールと初期化
ここからは、Agent Platform SDK の GenAI クライアントを使ってモデルの回答を生成し、評価するまでの最小の流れを試します。Google Cloud への認証が通る Python 環境であれば実行できますが、評価結果がインタラクティブな HTML レポートとして表示されるため、Colab Enterprise や Agent Platform Workbench(旧称 Vertex AI Workbench)などのノートブック環境を推奨します。
以降のコードは、ノートブックのセルに分けて上から順に実行していく前提で進めます。各セルを実行して結果を確認しながら読み進めてください。
まず、評価用の追加コンポーネントを含めて SDK をインストールします。ノートブックでは、最初のセルに次を貼り付けて実行します。
# Agent Platform SDK のインストール
%pip install -q google-cloud-aiplatform[evaluation]
ターミナルから実行する場合は、%pip の代わりに pip を使います。
# 評価コンポーネント付きで Agent Platform SDK をインストール $ pip install -q google-cloud-aiplatform[evaluation]
なお、Colab Enterprise などのマネージドなノートブック環境では、インストール時に以下の警告が出ることがあります。この警告は Gen AI Evaluation Service の利用に影響しないため、そのまま進めて問題ありません。
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts. wandb 0.27.0 requires click>=8.2.0, but you have click 8.1.8 which is incompatible. gradio 5.50.0 requires pydantic<=2.12.3,>=2.0, but you have pydantic 2.12.5 which is incompatible.
続いて、次のセルで GenAI クライアントを初期化します。<プロジェクト ID> は実際の Google Cloud プロジェクト ID に置き換えてください。ここではリージョンに依存しない global エンドポイントを使用します。特定のリージョンに固定したい場合は、対応リージョンから選んで指定してください。
# GenAI クライアントの初期化 from vertexai import Client PROJECT_ID = "<プロジェクト ID>" LOCATION = "global" client = Client(project=PROJECT_ID, location=LOCATION)
推論と評価の実行
次のセルでは、評価したいプロンプトを pandas の DataFrame で用意し、モデルに推論させて回答を生成します。
import pandas as pd from vertexai import types # 評価したいプロンプトを pandas の DataFrame で用意する prompts_df = pd.DataFrame({ "prompt": [ "Cloud Run と GKE の使い分けを、専門用語を使わずに、ちょうど2つの箇条書きで、各項目40文字以内で説明してください。", "Infrastructure as Code の利点を、句読点を含めてちょうど50文字で述べてください。", ], }) # モデルにプロンプトを推論させて回答を生成する eval_dataset = client.evals.run_inference( model="gemini-2.5-flash", src=prompts_df, )
生成した回答に対して、次のセルで評価指標を指定して評価を実行します。ここでは総合品質(GENERAL_QUALITY)と指示への準拠(INSTRUCTION_FOLLOWING)の2つを指定します。
# 評価指標を指定して評価を実行する
eval_result = client.evals.evaluate(
dataset=eval_dataset,
metrics=[
types.RubricMetric.GENERAL_QUALITY,
types.RubricMetric.INSTRUCTION_FOLLOWING,
],
)
metrics を省略した場合は、デフォルトで GENERAL_QUALITY が使われます。
生成した回答の評価結果は、show メソッドでインタラクティブな HTML レポートとして表示できます。
# 評価結果を HTML レポートとして表示する
eval_result.show()
レポートは大きく2つのブロックで構成されます。先頭の Summary Metrics には、データセット全体での指標ごとの平均スコアと標準偏差が並び、評価全体の傾向を一目で把握できます。

続く Detailed Results では、プロンプト1件ごとに、入力プロンプト・モデルの回答・指標ごとのスコアが展開されます。適応型ルーブリックの指標では、スコアの内訳として、そのプロンプト向けに動的生成されたチェック項目(ルーブリック)ごとの合否と、その判定理由を確認できます。
たとえば「専門用語を使わずに、2つの箇条書きで各40文字以内に説明する」という制約付きのプロンプトであれば、「専門用語を使っていないか」「箇条書きがちょうど2つか」「各項目が40文字以内か」といった項目ごとに合否が並び、どの観点を満たし、どこで失点したのかを項目単位でたどれます。


実際に今回の評価では、Cloud Run と GKE の使い分けを問うプロンプト(Case #0)は全項目を満たして1.00になった一方、Infrastructure as Code の利点を「ちょうど50文字」で求めたプロンプト(Case #1)は、回答が35文字だったため字数のルーブリックが Fail となり0.67にとどまりました。
GENERAL_QUALITY のような適応型ルーブリックは合格した項目の割合をスコアにするため、厳密な制約を1つ外すだけでもスコアが明確に下がります。
複数モデルの比較
次のセルでは、同じプロンプトに対して複数のモデルで推論を実行し、その結果をリストとして evaluate() に渡して、モデル間の比較評価を行います。
# 比較したいモデルごとに推論を実行する inference_result_1 = client.evals.run_inference( model="gemini-2.5-flash", src=prompts_df, ) inference_result_2 = client.evals.run_inference( model="gemini-3.5-flash", src=prompts_df, ) # 複数モデルの結果をリストで渡して比較評価する comparison_result = client.evals.evaluate( dataset=[inference_result_1, inference_result_2], metrics=[types.RubricMetric.GENERAL_QUALITY], )
モデルの比較は、このようにモデルごとに評価した結果を並べるポイントワイズ方式で行います。なお、2つの回答を直接比較するペアワイズ方式による評価も可能です。
比較結果の確認
比較評価の結果も、同じく show メソッドで表示できます。
# 比較評価の結果を HTML レポートとして表示する
comparison_result.show()
比較レポートの Summary Metrics には、モデルごとの平均スコアと標準偏差に加えて、Win/Tie Rates(勝率・引き分け率)が表示されます。これは指標ごとに、プロンプト単位でどちらのモデルのスコアが高かったかを集計したものです。
今回の比較では、Cloud Run と GKE の使い分けを問うプロンプトは両モデルとも全項目を満たして1.00で並び、引き分けとなりました。一方、Infrastructure as Code の利点を「ちょうど50文字」で求めたプロンプトでは、48文字で回答した gemini-2.5-flash が字数のルーブリックを外して0.67となり、ちょうど50文字で回答した gemini-3.5-flash が1.00で上回りました。
その結果、Win/Tie Rates は gemini-3.5-flash の勝率50.0%・引き分け50.0%となっています。

Detailed Comparison では、プロンプトごとに各モデルの回答が横並びで表示され、回答・スコア・ルーブリックの内訳を並べて比較できます。
総合スコアが並んだ場合でも、回答そのものを見比べれば、たとえ方や説明の構成といった定性的な違いを確認できます。スコアだけで差がつかないときは、観点を絞ったマネージド指標やカスタム指標を追加すると、モデル間の差を切り分けやすくなります。


- 参考 : 評価を実行する
- 参考 : 評価結果を表示して解釈する
実践と応用
当記事で紹介する Gen AI Evaluation Service を使っているわけではありませんが、以下の記事では、ライオン株式会社様が GitHub Copilot と SpecKit 等を用いて本格的なデータパイプライン開発を行った実例が紹介されています。記事中では、LLM による品質評価も試みられています。AI 駆動開発における参考にしてください。
なお関連して、2026年7月30日から31日に開催される Google Cloud Next Tokyo '26 では、ライオン株式会社様や株式会社 G-gen が各種セッションで登壇します。これらのセッションも参考にしてください。
| 日時 | 実施会社 | セッション種別 | タイトル |
|---|---|---|---|
| 2026年7月30日 (木) 13:00 - 13:30 | ライオン株式会社 | カスタマーセッション | 生成 AI による SAP を中心とした AI-ready なデータ基盤の実践的な構築 |
| 2026年7月30日 (木) 15:00 - 15:30 | ライオン株式会社 | ブース内セッション (G-gen 出展ブース) | ライオンのデータモデル Deep Dive |
| 2026年7月31日 (金) 15:00 - 15:30 | 株式会社G-gen | スポンサーセッション | AI エージェント時代のクラウド インフラ設計ガイドラインの重要性 |
Google Cloud Next Tokyo '26 には、以下から申し込み可能です。
- 申込URL : Google Cloud Next Tokyo '26
- 招待コード:
NxT26_pt023
佐々木 駿太 (記事一覧)
クラウドソリューション部 クラウドエンジニアリング1課
北海道在住
大学院まで社会心理学を専攻し、AI に興味を持ち IT 業界へ。2022年6月に G-gen にジョイン。Google Cloud Partner Top Engineer に選出(2024 / 2025 Fellow / 2026)。好きな Google Cloud プロダクトは Cloud Run。
趣味はコーヒー、小説(SF、ミステリ)、カラオケなど。最近は法律の勉強にも目覚め、2級知的財産管理技能士を取得。
Follow @sasashun0805