自分のAIはどれだけ優秀?Vertex Gen AI Eval SDKで簡単に品質評価する方法(Python対応)
この内容は、Google Cloud の Vertex AI Gen AI Eval SDK に関するチュートリアル(使い方ガイド)で、生成AI(Generative AI)の出力をさまざまな基準で評価する方法を説明しています。
✅ 要約(意味)
🎯 目的
生成AIのモデルやプロンプト、エージェントの出力を評価するためのSDK(開発者向けツール)
このSDKを使うことで、次のようなことができます:
📌 主な機能
| 機能 | 内容 |
|---|---|
| モデルやプロンプトの評価 | 単体でも複数でも評価できる(比較も可能) |
| 既存の指標で評価 | 例:TEXT_QUALITY(文章品質)、SAFETY(安全性)、INSTRUCTION_FOLLOWING(指示の理解度)など |
| カスタム評価指標を定義 | 例:5歳児でも読めるか?といった独自基準を自作可能 |
| 大規模データのバッチ評価 | 非同期で大量のデータを効率的に処理 |
| OpenAIなどの外部モデルも評価 | GPT-4などの出力にも対応 |
| 結果の可視化 | .show()でHTML形式で表示できる |
🧪 「実験的機能」について(冒頭の注意書き)
- **まだ試験段階(Experimental)**なので、本番運用(production)には推奨されない
- SLA(稼働保証)やサポートの対象外
- 仕様変更の可能性あり(後方互換性なし)
📘 使用方法の流れ(2ステップ)
① run_inference()
→ モデルにプロンプトを渡して出力を生成
② evaluate()
→ 生成された出力に対して、品質・正確性・指示遵守などの観点からスコアを算出
🧪 評価に使えるメトリクス(指標)
| 種類 | 内容 |
|---|---|
| Prebuilt Metric(標準) | TEXT_QUALITY, FLUENCY, SAFETY などが最初から用意されている |
| LLMベースの独自評価 | 例:「5歳児にわかるか?」など、判断基準・スコア・説明を自由に作成可能 |
| 計算ベースの評価 | BLEUやROUGEなどの機械翻訳向け指標で、出力と正解を数値で比較 |
| カスタム関数による評価 | Python関数で独自ルールを作って評価(例:特定のキーワードを含むか) |
🧳 対応データフォーマット
- PandasのDataFrame(プロンプトとリファレンス列があると便利)
- Cloud StorageのJSONLファイル(バッチ予測結果)
- OpenAI Chat Completion形式(GPTの形式)
🧠 結論としての意味
このSDKは、生成AIを評価するために開発者・研究者が
- 高精度な評価
- 他モデルとの比較
- 大規模なテスト
をコードで効率的に実行できる強力なツールです。
補足
とてもよい質問です。以下のように整理してご説明します:
✅ これは自分で評価するもの?
はい、自分で評価するツールです。
- Google が提供する SDK(ツール)を使って、あなた自身が生成AIの出力を評価します。
- 評価するのは:
- あなたが使っている AIモデルの応答(例:Gemini、GPTなど)
- あなたが書いた プロンプト に対して、AIがどれだけうまく返答しているか
- もしくは あなた自身が構築したAIアプリやエージェント
✅ 評価とは「自分のAIを作る」ということ?
必ずしもAIを“自分で開発”する必要はありません。
評価の対象は次のどれでもOKです:
| 評価する対象の例 | 説明 |
|---|---|
| Googleのモデル(Gemini) | プロンプトへの応答が適切かをチェック |
| OpenAIのGPTモデル | Vertex SDK経由で評価可能 |
| 自分のAIエージェント | LangChainや独自構成の対話AIなど |
| 自分のプロンプト | どのプロンプトが一番良い応答を引き出すかを比較 |
つまり、**「モデルを作る」ではなく「使った結果を評価する」**のが中心です。
✅ Pythonでもできるの?
はい、Pythonでできます。
Vertex Gen AI Eval SDK は Pythonライブラリ(Google Cloud SDK) なので、以下のように Python スクリプトで扱います:
pip install --upgrade google-cloud-aiplatform[evaluation]
from vertexai import Client, types
client = Client(project="your-project-id", location="us-central1")
prompts_df = pd.DataFrame({"prompt": ["Explain AI to a 5-year-old."]})
eval_dataset = client.evals.run_inference(model="gemini-2.5-flash", src=prompts_df)
eval_result = client.evals.evaluate(
dataset=eval_dataset,
metrics=[types.PrebuiltMetric.TEXT_QUALITY]
)
eval_result.show()
Colab・Jupyter Notebook・Vertex Workbenchなどでもそのまま使えます。
🔍 まとめ
| 質問 | 回答 |
|---|---|
| 自分で評価するもの? | ✅ はい、AIの出力を自分で評価します |
| AIを自分で作る必要ある? | ❌ 必要なし(でも自作AIも評価可能) |
| Pythonで使える? | ✅ 公式SDKはPython対応です |
以下に、Google Colab 上でそのまま使える「Vertex Gen AI Eval SDK」の評価サンプルノートブック形式のコードをお渡しします。
🧪 Vertex Gen AI Eval SDK 入門ノートブック(Colab対応)
# ⬇️ 1. 必要なライブラリをインストール(初回のみ)
!pip install --upgrade google-cloud-aiplatform[evaluation]
# ⬇️ 2. 必要なライブラリをインポート
import pandas as pd
from vertexai import Client, types
# ⬇️ 3. GCPプロジェクト情報を指定(自分のプロジェクトIDとリージョンに置き換えてください)
client = Client(
project="your-project-id", # ←あなたのGCPプロジェクトID
location="us-central1" # リージョン(例:東京の場合 asia-northeast1)
)
# ⬇️ 4. 評価用プロンプトを作成(1つだけ例として)
prompts_df = pd.DataFrame({
"prompt": ["Explain AI to a 5-year-old child."]
})
# ⬇️ 5. モデルにプロンプトを送って応答を取得(run_inference)
eval_dataset = client.evals.run_inference(
model="gemini-2.5-flash", # 評価対象のモデル名(他にも gpt-4o なども可)
src=prompts_df
)
# ⬇️ 6. 応答の品質を評価(TEXT_QUALITY メトリクスを使用)
eval_result = client.evals.evaluate(
dataset=eval_dataset,
metrics=[
types.PrebuiltMetric.TEXT_QUALITY
]
)
# ⬇️ 7. 結果を可視化(Colab上でHTML表示されます)
eval_result.show()
🔑 使う前に必要な準備
- Google Cloud プロジェクト を持っていること
- Vertex AI API を有効にする(Google Cloud Consoleで)
- サービスアカウント認証(
gcloud auth loginなど) ができている環境で使うこと - モデルを利用するには 課金アカウント が必要(無料枠での使用も可能な場合あり)
✅ 応用したい人向け(追加可能)
types.PrebuiltMetric.INSTRUCTION_FOLLOWINGtypes.Metric(name="rouge_1")- 独自カスタム評価メトリクスの作成(例:5歳児でもわかるか評価)
