クイックスタート: 生成 AI 評価ワークフロー
このページでは、Vertex AI SDK を使用して Gen AI Evaluation Service でモデルベースの評価を行う方法について説明します。
始める前に
-
Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Make sure that billing is enabled for your Google Cloud project.
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Make sure that billing is enabled for your Google Cloud project.
Gen AI Evaluation Service 用の Vertex AI SDK をインストールします。
!pip install google-cloud-aiplatform[evaluation]
Vertex AI SDK を読み込むために、カーネル ランタイムの再起動が必要になる場合があります。
認証情報を設定します。このクイックスタートを Colaboratory で実行している場合は、次のコマンドを実行します。
from google.colab import auth auth.authenticate_user()
他の環境については、Vertex AI に対する認証をご覧ください。
ライブラリをインポートする
ライブラリをインポートして、プロジェクトとロケーションを設定します。
import pandas as pd
import vertexai
from vertexai.evaluation import EvalTask, PointwiseMetric, PointwiseMetricPromptTemplate
PROJECT_ID = <var>"PROJECT_ID"</var>
LOCATION = <var>"LOCATION"</var>
EXPERIMENT_NAME = <var>"EXPERIMENT_NAME"</var>
vertexai.init(
project=PROJECT_ID,
location=LOCATION,
)
条件に基づいて評価指標を設定する
次の指標の定義では、大規模言語モデルから生成されたテキストの品質を、Fluency
と Entertaining
の 2 つの基準に基づいて評価します。このコードでは、次の 2 つの条件を使用して 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 in both criteria.",
"0" : "The response does not performs well in both criteria",
},
)
custom_text_quality = PointwiseMetric(
metric="custom_text_quality",
metric_prompt_template=metric_prompt_template,
)
データセットを準備する
次のコードを追加して、データセットを準備します。
responses = [
# An example of good custom_text_quality
"Life is a rollercoaster, full of ups and downs, but it's the thrill that keeps us coming back for more!",
# An example of medium custom_text_quality
"The weather is nice today, not too hot, not too cold.",
# An example of poor custom_text_quality
"The weather is, you know, whatever.",
]
eval_dataset = pd.DataFrame({
"response" : responses,
})
データセットで評価を実行する
評価を実行します。
eval_task = EvalTask(
dataset=eval_dataset,
metrics=[custom_text_quality],
experiment=EXPERIMENT_NAME
)
pointwise_result = eval_task.evaluate()
metrics_table
で各レスポンスの評価結果を表示します。
pointwise_result.metrics_table
クリーンアップ
このページで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、次の操作を行います。
評価によって作成された ExperimentRun
を削除します。
vertexai.ExperimentRun(
run_name=pointwise_result.metadata["experiment_run"],
experiment=pointwise_result.metadata["experiment"],
).delete()