以模型為基礎的指標提供各種自訂方式,可協助您根據條件和用途生成評估指標。本頁面說明如何為理想的用途設定評估模型。
如需基本評估工作流程,請參閱 Gen AI Evaluation Service 快速入門。進階評估模型自訂系列包含下列頁面:
- 評估評估模型
- 提示,要求自訂評估模型
- 設定評估模型 (目前頁面)
總覽
您可以透過下列選項設定評估模型,提升品質:
- 系統指令:評估模型可以先處理一組指令,再處理評估提示。
- 評估模型設定:
系統指示
Gemini 模型可以接收系統指令,這組指令會影響模型處理提示的方式。從模型初始化或生成內容時,您可以使用系統指令指定產品層級的行為,例如角色或人物、情境資訊,以及說明風格和語氣。評估模型通常會將系統指令的重要性權重設得比輸入提示高。
如需支援系統指令的型號清單,請參閱「支援的型號」。
以下範例使用 Vertex AI SDK,在 PointwiseMetric
的指標層級新增 system_instruction
:
system_instruction = "You are an expert evaluator."
linguistic_acceptability = PointwiseMetric(
metric="linguistic_acceptability",
metric_prompt_template=linguistic_acceptability_metric_prompt_template,
system_instruction=system_instruction,
)
eval_result = EvalTask(
dataset=EVAL_DATASET,
metrics=[linguistic_acceptability]
).evaluate()
您可以使用 PairwiseMetric
採取相同做法。
評估模型設定
您可以透過 autorater_config
進一步自訂評估模型:
回應翻轉
對於 PairwiseMetrics
,Gen AI Evaluation Service 會接收基準模型和候選模型的相關回應。評估模型會根據 metric_prompt_template
中的條件,評估哪個回覆較符合條件。不過,在特定設定中,評估模型可能會偏向基準或候選模型。
如要減少評估結果中的偏誤,可以啟用回覆翻轉功能,讓一半的評估模型呼叫使用 Vertex AI SDK 翻轉基準模型和候選模型回覆:
from vertexai.preview.evaluation import AutoraterConfig
pairwise_relevance_prompt_template = """
# Instruction
…
### Response A
{baseline_model_response}
### Response B
{candidate_model_response}
"""
my_pairwise_metric = PairwiseMetric(
metric="my_pairwise_metric",
metric_prompt_template=pairwise_relevance_prompt_template,
candidate_response_field_name = "candidate_model_response",
baseline_response_field_name = "baseline_model_response"
)
# Define an AutoraterConfig with flip_enabled
my_autorater_config = AutoraterConfig(flip_enabled=True)
# Define an EvalTask with autorater_config
flip_enabled_eval_result = EvalTask(
dataset=EVAL_DATASET,
metrics=[my_pairwise_metric],
autorater_config=my_autorater_config,
).evaluate()
多重取樣
執行評估時,評估模型的回覆可能會出現一些隨機性。額外取樣有助於抵銷評估模型固有的隨機性,進而產生更一致的結果。
不過,提高取樣率也會增加完成要求的延遲時間。您可以使用 AutoraterConfig
,將取樣計數值更新為介於 1 到 32 之間的整數。建議使用預設的 sampling_count
值 4,在隨機性和延遲這兩項因素之間取得平衡。
使用 Vertex AI SDK 時,您可以指定每個要求執行的樣本數:
from vertexai.preview.evaluation import AutoraterConfig
# Define customized sampling count in AutoraterConfig
autorater_config = AutoraterConfig(sampling_count=6)
# Run evaluation with the sampling count.
eval_result = EvalTask(
dataset=EVAL_DATASET,
metrics=[METRICS],
autorater_config=autorater_config
).evaluate()
調整後的評斷模型
如果您有適合評估用途的調整資料,可以使用 Vertex AI SDK 調整 Gemini 模型做為評估模型,並使用調整後的模型進行評估。您可以透過 AutoraterConfig
,將微調模型指定為評估模型:
from vertexai.preview.evaluation import {
AutoraterConfig,
PairwiseMetric,
tune_autorater,
evaluate_autorater,
}
# Tune a model to be the judge model. The tune_autorater helper function returns an AutoraterConfig with the judge model set as the tuned model.
autorater_config: AutoRaterConfig = tune_autorater(
base_model="gemini-2.0-flash",
train_dataset=f"{BUCKET_URI}/train/sft_train_samples.jsonl",
validation_dataset=f"{BUCKET_URI}/val/sft_val_samples.jsonl",
tuned_model_display_name=tuned_model_display_name,
)
# Alternatively, you can set up the judge model with an existing tuned model endpoint
autorater_config = AutoraterConfig(autorater_model=TUNED_MODEL)
# Use the tuned judge model
eval_result = EvalTask(
dataset=EVAL_DATASET,
metrics=[METRICS],
autorater_config=autorater_config,
).evaluate()