평가 모델 평가

모델 기반 측정항목의 경우 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 |

점수를 2개 이상(예: 1~5) 반환하는 PointwiseMetric 및 선호도 유형이 2개 이상(모델 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.preview.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]
)

다음 단계