設定評分模型

以模型為基礎的指標提供各種自訂方式,可協助您根據條件和用途生成評估指標。本頁面說明如何為理想的用途設定評估模型。

如需基本評估工作流程,請參閱 Gen AI Evaluation Service 快速入門進階評估模型自訂系列包含下列頁面:

  1. 評估評估模型
  2. 提示,要求自訂評估模型
  3. 設定評估模型 (目前頁面)

總覽

您可以透過下列選項設定評估模型,提升品質:

  • 系統指令:評估模型可以先處理一組指令,再處理評估提示。
  • 評估模型設定
    • 回覆翻轉:翻轉基準模型和候選模型的回覆,以減少評估期間的評估模型偏誤。
    • 多重取樣:調整呼叫評估模型的分數次數,以提高一致性。
    • 微調後的評估模型:使用微調後的 LLM 做為評估模型。

系統指示

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 進一步自訂評估模型:

  • 回覆翻轉:翻轉基準模型和候選模型的回覆,以減少評估期間的評估模型偏誤。

  • 多重取樣:調整呼叫評估模型的分數次數,以提高一致性。

  • 微調後的評估模型:使用微調後的 LLM 做為評估模型。

回應翻轉

對於 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()

後續步驟