评估评判模型

对于基于模型的指标,Gen AI Evaluation Service 会使用已配置为评判模型的基础模型(例如 Gemini)评估您的模型。如果您想详细了解评判模型,请参阅高级评判模型自定义系列文章,其中介绍了您可以用来评估和配置评判模型的其他工具。

如需了解基本评估工作流,请参阅 Gen AI Evaluation Service 快速入门高级评判模型自定义系列包括以下页面:

  1. 评估评判模型(当前页面)
  2. 提示自定义评判模型
  3. 配置评判模型

概览

使用人工评判员评估大语言模型 (LLM) 可能既昂贵又耗时。使用评判模型是一种更可扩展的 LLM 评估方法。Gen AI Evaluation Service 默认使用已配置的 Gemini 2.0 Flash 模型作为评判模型,并提供可自定义的提示,以便针对各种应用场景评估您的模型。

以下部分介绍了如何针对理想用例评估自定义评判模型。

准备数据集

如需评估基于模型的指标,请准备一个评估数据集,并将人工评分作为标准答案。目的是将基于模型的指标得分与人工评分进行比较,看看基于模型的指标是否适合您的应用场景。

  • 对于 PointwiseMetric,请准备数据集中的 {metric_name}/human_rating 列,作为基于模型的指标生成的 {metric_name}/score 结果的标准答案。

  • 对于 PairwiseMetric,请准备数据集中的 {metric_name}/human_pairwise_choice 列,作为基于模型的指标生成的 {metric_name}/pairwise_choice 结果的标准答案。

使用以下数据集架构:

基于模型的指标 人工评分列
PointwiseMetric {metric_name}/human_rating
PairwiseMetric {metric_name}/human_pairwise_choice

可用指标

对于仅返回 2 个得分(例如 0 和 1)的 PointwiseMetric,以及仅具有 2 种偏好类型(模型 A 或模型 B)的 PairwiseMetric,可使用以下指标:

指标 计算
2 类平衡准确率 \( (1/2)*(True Positive Rate + True Negative Rate) \)
2 类平衡 F1 得分 \( ∑_{i=0,1} (cnt_i/sum) * f1(class_i) \)
混淆矩阵 使用 confusion_matrixconfusion_matrix_labels 字段计算真正例率 (TPR)、真负例率 (TNR)、假正例率 (FPR) 和假负例率 (FNR) 等指标。

例如,以下结果:
confusion_matrix = [[20, 31, 15],
    [10, 11,  3],
   [ 3,  2,  2]]
confusion_matrix_labels = ['BASELINE', 'CANDIDATE', 'TIE']
可转换为以下混淆矩阵:
             BASELINE |  CANDIDATE | TIE
   BASELINE.    20         31        15
   CANDIDATE.   10         11         3
   TIE.         3           2         2 |

对于返回多个分数(例如 1 到 5)的 PointwiseMetric,以及具有多个偏好类型(模型 A、模型 B 或平局)的 PairwiseMetric,可使用以下指标:

指标 计算
多类平衡准确率 \( (1/n) *∑_{i=1...n}(recall(class_i)) \)
多类平衡 F1 得分 \( ∑_{i=1...n} (cnt_i/sum) * f1(class_i) \)

其中:

  • \( f1 = 2 * precision * recall / (precision + recall) \)

    • \( precision = True Positives / (True Positives + False Positives) \)

    • \( recall = True Positives / (True Positives + False Negatives) \)

  • \( n \) :课程数量

  • \( cnt_i \) :标准答案数据中的 \( class_i \) 数量

  • \( sum \):地面真相数据中的元素数

如需计算其他指标,您可以使用开源库。

评估基于模型的指标

以下示例使用自定义的流畅度定义更新基于模型的指标,然后评估该指标的质量。

from vertexai.evaluation import {
   AutoraterConfig,
   PairwiseMetric,
}
from vertexai.preview.evaluation.autorater_utils import evaluate_autorater


# Step 1: Prepare the evaluation dataset with the human rating data column.
human_rated_dataset = pd.DataFrame({
  "prompt": [PROMPT_1, PROMPT_2],
    "response": [RESPONSE_1, RESPONSE_2],
  "baseline_model_response": [BASELINE_MODEL_RESPONSE_1, BASELINE_MODEL_RESPONSE_2],
    "pairwise_fluency/human_pairwise_choice": ["model_A", "model_B"]
})

# Step 2: Get the results from model-based metric
pairwise_fluency = PairwiseMetric(
    metric="pairwise_fluency",
    metric_prompt_template="please evaluate pairwise fluency..."
)

eval_result = EvalTask(
    dataset=human_rated_dataset,
    metrics=[pairwise_fluency],
).evaluate()

# Step 3: Calibrate model-based metric result and human preferences.
# eval_result contains human evaluation result from human_rated_dataset.
evaluate_autorater_result = evaluate_autorater(
  evaluate_autorater_input=eval_result.metrics_table,
  eval_metrics=[pairwise_fluency]
)

后续步骤