Rapid Eval API

Rapid Eval Service를 사용하면 사용자가 여러 측정항목에서 점 및 쌍으로 LLM 모델을 평가할 수 있습니다. 사용자는 추론 시간 입력, LLM 응답, 추가 매개변수를 제공하고 서비스는 평가 태스크와 관련된 측정항목을 반환합니다. 측정항목에는 모델 기반 측정항목(예: SummarizationQuality)과 메모리 내 계산된 측정항목(예: Rouge, Bleu, 도구/함수 호출 측정항목)이 모두 포함됩니다. 이 서비스는 모델에서 예측 결과를 직접 입력으로 가져오므로 Vertex에서 지원하는 모든 모델을 평가할 수 있습니다.

제한사항

  • 모델 기반 측정항목은 text-bison 할당량을 사용합니다. Rapid Eval Service는 text-bison을 기본 중재 모델로 활용하여 모델 기반 측정항목을 계산합니다.
  • 서비스 적용이 지연됩니다. 서비스를 처음 호출한 후 몇 분 동안 사용하지 못할 수 있습니다.

구문

  • PROJECT_ID = PROJECT_ID
  • REGION = REGION
  • MODEL_ID = MODEL_ID

curl

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://${REGION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${REGION}:evaluateInstances

Python

import json

from google import auth
from google.api_core import exceptions
from google.auth.transport import requests as google_auth_requests

creds, _ = auth.default(
    scopes=['https://www.googleapis.com/auth/cloud-platform'])

data = {
  ...
}

uri = f'https://${REGION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${REGION}:evaluateInstances'
result = google_auth_requests.AuthorizedSession(creds).post(uri, json=data)

print(json.dumps(result.json(), indent=2))

매개변수 목록

사용 가능한 측정항목의 전체 목록입니다.

매개변수

exact_match_input

선택사항: ExactMatchInput

예측이 참조와 정확하게 일치하는지 평가하기 위한 입력입니다.

bleu_input

선택사항: BleuInput

참조와 예측을 비교하여 BLEU 점수를 계산하기 위한 입력입니다.

rouge_input

선택사항: RougeInput

참조와 예측을 비교하여 ROUGE 점수를 계산하기 위한 입력입니다. rouge_type에서 다른 ROUGE 점수를 지원합니다.

fluency_input

선택사항: FluencyInput

단일 응답의 언어 숙련도를 평가하기 위한 입력입니다.

coherence_input

선택사항: CoherenceInput

일관되고 이해하기 쉬운 답장을 제공하는 단일 응답 기능을 평가하기 위한 입력입니다.

safety_input

선택사항: SafetyInput

단일 응답의 안전 수준을 평가하기 위한 입력입니다.

groundedness_input

선택사항: GroundednessInput

입력 텍스트에만 포함된 정보를 제공하거나 참조하는 단일 응답 기능을 평가하기 위한 입력입니다.

fulfillment_input

선택사항: FulfillmentInput

안내를 완전히 이행하는 단일 응답 기능을 평가하는 입력입니다.

summarization_quality_input

선택사항: SummarizationQualityInput

텍스트를 요약하는 단일 응답의 전체 기능을 평가하기 위한 입력입니다.

pairwise_summarization_quality_input

선택사항: PairwiseSummarizationQualityInput

두 응답의 전체 요약 품질을 비교하기 위한 입력입니다.

summarization_helpfulness_input

선택사항: SummarizationHelpfulnessInput

원본 텍스트를 대체하는 데 필요한 세부정보가 포함된 요약을 제공하는 단일 응답 기능을 평가하기 위한 입력입니다.

summarization_verbosity_input

선택사항: SummarizationVerbosityInput

간결한 요약을 제공하는 단일 응답 기능을 평가하기 위한 입력입니다.

question_answering_quality_input

선택사항: QuestionAnsweringQualityInput

참조할 텍스트 본문에 따라 질문에 답하는 단일 응답 전체 기능을 평가하기 위한 입력입니다.

pairwise_question_answering_quality_input

선택사항: PairwiseQuestionAnsweringQualityInput

참조할 텍스트 본문에 따라 질문에 답하는 두 응답의 전체 기능을 비교하기 위한 입력입니다.

question_answering_relevance_input

선택사항: QuestionAnsweringRelevanceInput

질문할 때 관련 정보로 응답하는 단일 응답 기능을 평가하기 위한 입력입니다.

question_answering_helpfulness_input

선택사항: QuestionAnsweringHelpfulnessInput

질문에 답할 때 주요 세부정보를 제공하는 단일 응답 기능을 평가하기 위한 입력입니다.

question_answering_correctness_input

선택사항: QuestionAnsweringCorrectnessInput

질문에 올바르게 답변하는 단일 응답 기능을 평가하기 위한 입력입니다.

tool_call_valid_input

선택사항: ToolCallValidInput

유효한 도구 호출을 예측하는 단일 응답 기능을 평가하기 위한 입력입니다.

tool_name_match_input

선택사항: ToolNameMatchInput

올바른 도구 이름으로 도구 호출을 예측하는 단일 응답 기능을 평가하기 위한 입력입니다.

tool_parameter_key_match_input

선택사항: ToolParameterKeyMatchInput

올바른 매개변수 이름으로 도구 호출을 예측하는 단일 응답 기능을 평가하기 위한 입력입니다.

tool_parameter_kv_match_input

선택사항: ToolParameterKvMatchInput

올바른 매개변수 이름과 값으로 도구 호출을 예측하는 단일 응답 기능을 평가하기 위한 입력입니다.

ExactMatchInput

{
  "exact_match_input: {
    "metric_spec": {},
    "instances": [
      {
        "prediction": string,
        "reference": string
      }
    ]
  }
}
매개변수

metric_spec

선택사항: ExactMatchSpec.

측정항목 동작을 정의하는 측정항목 사양입니다.

instances

선택사항: ExactMatchInstance[]

LLM 응답과 참조로 구성된 평가 입력입니다.

instances.prediction

선택사항: string

LLM 응답입니다.

instances.reference

선택사항: string

참조를 위한 특별한 LLM 응답입니다.

ExactMatchResults

{
  "exact_match_results: {
    "exact_match_metric_values": [
      {
        "score": float
      }
    ]
  }
}
출력

exact_match_metric_values

ExactMatchMetricValue[]

인스턴스 입력당 평가 결과입니다.

exact_match_metric_values.score

float

다음 필드 중 하나는 사용해야 합니다.

  • 0: 인스턴스가 일치검색이 아닙니다.
  • 1: 일치검색

BleuInput

{
  "bleu_input: {
    "metric_spec": {},
    "instances": [
      {
        "prediction": string,
        "reference": string
      }
    ]
  }
}
매개변수

metric_spec

선택사항: BleuSpec

측정항목 동작을 정의하는 측정항목 사양입니다.

instances

선택사항: BleuInstance[]

LLM 응답과 참조로 구성된 평가 입력입니다.

instances.prediction

선택사항: string

LLM 응답입니다.

instances.reference

선택사항: string

참조를 위한 특별한 LLM 응답입니다.

BleuResults

{
  "bleu_results: {
    "bleu_metric_values": [
      {
        "score": float
      }
    ]
  }
}
출력

bleu_metric_values

BleuMetricValue[]

인스턴스 입력당 평가 결과입니다.

bleu_metric_values.score

float: [0, 1]. 점수가 높을수록 예측이 참조와 더 비슷해집니다.

RougeInput

{
  "rouge_input: {
    "metric_spec": {
      "rouge_type": string,
      "use_stemmer": bool,
      "split_summaries": bool
    },
    "instances": [
      {
        "prediction": string,
        "reference": string
      }
    ]
  }
}
매개변수

metric_spec

선택사항: RougeSpec

측정항목 동작을 정의하는 측정항목 사양입니다.

metric_spec.rouge_type

선택사항: string

사용 가능한 값은 다음과 같습니다.

  • rougen[1-9]: 예측과 참조 간의 n-gram 중복을 기준으로 ROUGE 점수를 계산합니다.
  • rougeL: 예측과 참조 간의 최장 공통 부분 수열(LCS)을 기반으로 ROUGE 점수를 계산합니다.
  • rougeLsum: 먼저 예측과 참조를 문장으로 분할한 후 각 튜플의 LCS를 계산합니다. 최종 rougeLsum 점수는 이러한 개별 LCS 점수의 평균입니다.

metric_spec.use_stemmer

선택사항: bool

일치를 개선하기 위해 포터 스테머를 사용하여 단어 서픽스를 제거해야 하는지 여부입니다.

metric_spec.split_summaries

선택사항: bool

rougeLsum의 문장 사이에 줄바꿈을 추가할지 여부입니다.

instances

선택사항: RougeInstance[]

LLM 응답과 참조로 구성된 평가 입력입니다.

instances.prediction

선택사항: string

LLM 응답입니다.

instances.reference

선택사항: string

참조를 위한 특별한 LLM 응답입니다.

RougeResults

{
  "rouge_results: {
    "rouge_metric_values": [
      {
        "score": float
      }
    ]
  }
}
출력

rouge_metric_values

RougeValue[]

인스턴스 입력당 평가 결과입니다.

rouge_metric_values.score

float: [0, 1]. 점수가 높을수록 예측이 참조와 더 비슷해집니다.

FluencyInput

{
  "fluency_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string
    }
  }
}
매개변수

metric_spec

선택사항: FluencySpec

측정항목 동작을 정의하는 측정항목 사양입니다.

instance

선택사항: FluencyInstance

LLM 응답으로 구성된 평가 입력입니다.

instance.prediction

선택사항: string

LLM 응답입니다.

FluencyResult

{
  "fluency_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
출력

score

float: 다음 중 하나입니다.

  • 1: 일관성이 없음
  • 2: 다소 일관성이 없음
  • 3: 중립적
  • 4: 다소 일관성이 있음
  • 5: 일관성이 있음

explanation

string: 점수 할당 근거입니다.

confidence

float: [0, 1] 결과의 신뢰도 점수입니다.

CoherenceInput

{
  "coherence_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string
    }
  }
}
매개변수

metric_spec

선택사항: CoherenceSpec

측정항목 동작을 정의하는 측정항목 사양입니다.

instance

선택사항: CoherenceInstance

LLM 응답으로 구성된 평가 입력입니다.

instance.prediction

선택사항: string

LLM 응답입니다.

CoherenceResult

{
  "coherence_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
출력

score

float: 다음 중 하나입니다.

  • 1: 명확하지 않음
  • 2: 다소 명확하지 않음
  • 3: 중립적
  • 4: 다소 유창함
  • 5: 유창함

explanation

string: 점수 할당 근거입니다.

confidence

float: [0, 1] 결과의 신뢰도 점수입니다.

SafetyInput

{
  "safety_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string
    }
  }
}
매개변수

metric_spec

선택사항: SafetySpec

측정항목 동작을 정의하는 측정항목 사양입니다.

instance

선택사항: SafetyInstance

LLM 응답으로 구성된 평가 입력입니다.

instance.prediction

선택사항: string

LLM 응답입니다.

SafetyResult

{
  "safety_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
출력

score

float: 다음 중 하나입니다.

  • 0. 안전하지 않습니다.
  • 1. 안전

explanation

string: 점수 할당 근거입니다.

confidence

float: [0, 1] 결과의 신뢰도 점수입니다.

GroundednessInput

{
  "groundedness_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "context": string
    }
  }
}

매개변수

설명

metric_spec

선택사항: GroundednessSpec

측정항목 동작을 정의하는 측정항목 사양입니다.

instance

선택사항: GroundednessInstance

추론 입력과 해당 응답으로 구성된 평가 입력입니다.

instance.prediction

선택사항: string

LLM 응답입니다.

instance.context

선택사항: string

LLM 응답에 사용할 수 있는 모든 정보가 포함된 추론 시간 텍스트입니다.

GroundednessResult

{
  "groundedness_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
출력

score

float: 다음 중 하나입니다.

  • 0: 그라운딩되지 않음
  • 1: 그라운딩됨

explanation

string: 점수 할당 근거입니다.

confidence

float: [0, 1] 결과의 신뢰도 점수입니다.

FulfillmentInput

{
  "fulfillment_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "instruction": string
    }
  }
}
매개변수

metric_spec

선택사항: FulfillmentSpec

측정항목 동작을 정의하는 측정항목 사양입니다.

instance

선택사항: FulfillmentInstance

추론 입력과 해당 응답으로 구성된 평가 입력입니다.

instance.prediction

선택사항: string

LLM 응답입니다.

instance.instruction

선택사항: string

추론 시 사용되는 안내입니다.

FulfillmentResult

{
  "fulfillment_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
출력

score

float: 다음 중 하나입니다.

  • 1: fulfillment 없음
  • 2: 불량한 fulfillment
  • 3: 일부 fulfillment
  • 4: 양호한 fulfillment
  • 5: fulfillment 완료

explanation

string: 점수 할당 근거입니다.

confidence

float: [0, 1] 결과의 신뢰도 점수입니다.

SummarizationQualityInput

{
  "summarization_quality_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "instruction": string,
      "context": string,
    }
  }
}
매개변수

metric_spec

선택사항: SummarizationQualitySpec

측정항목 동작을 정의하는 측정항목 사양입니다.

instance

선택사항: SummarizationQualityInstance

추론 입력과 해당 응답으로 구성된 평가 입력입니다.

instance.prediction

선택사항: string

LLM 응답입니다.

instance.instruction

선택사항: string

추론 시 사용되는 안내입니다.

instance.context

선택사항: string

LLM 응답에 사용할 수 있는 모든 정보가 포함된 추론 시간 텍스트입니다.

SummarizationQualityResult

{
  "summarization_quality_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
출력

score

float: 다음 중 하나입니다.

  • 1: 매우 나쁨
  • 2: 나쁨
  • 3: 양호
  • 4: 우수
  • 5: 매우 우수

explanation

string: 점수 할당 근거입니다.

confidence

float: [0, 1] 결과의 신뢰도 점수입니다.

PairwiseSummarizationQualityInput

{
  "pairwise_summarization_quality_input: {
    "metric_spec": {},
    "instance": {
      "baseline_prediction": string,
      "prediction": string,
      "instruction": string,
      "context": string,
    }
  }
}
매개변수

metric_spec

선택사항: PairwiseSummarizationQualitySpec

측정항목 동작을 정의하는 측정항목 사양입니다.

instance

선택사항: PairwiseSummarizationQualityInstance

추론 입력과 해당 응답으로 구성된 평가 입력입니다.

instance.baseline_prediction

선택사항: string

기준 모델 LLM 응답입니다.

instance.prediction

선택사항: string

후보 모델 LLM 응답입니다.

instance.instruction

선택사항: string

추론 시 사용되는 안내입니다.

instance.context

선택사항: string

LLM 응답에 사용할 수 있는 모든 정보가 포함된 추론 시간 텍스트입니다.

PairwiseSummarizationQualityResult

{
  "pairwise_summarization_quality_result: {
    "pairwise_choice": PairwiseChoice,
    "explanation": string,
    "confidence": float
  }
}
출력

pairwise_choice

PairwiseChoice: 다음과 같은 양의 값이 있는 enum입니다.

  • BASELINE: 기준 예측이 더 우수함
  • CANDIDATE: 후보 예측이 더 우수함
  • TIE: 기준 예측과 후보 예측 간의 관계입니다.

explanation

string: pairwise_choice 할당 근거입니다.

confidence

float: [0, 1] 결과의 신뢰도 점수입니다.

SummarizationHelpfulnessInput

{
  "summarization_helpfulness_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "instruction": string,
      "context": string,
    }
  }
}
매개변수

metric_spec

선택사항: SummarizationHelpfulnessSpec

측정항목 동작을 정의하는 측정항목 사양입니다.

instance

선택사항: SummarizationHelpfulnessInstance

추론 입력과 해당 응답으로 구성된 평가 입력입니다.

instance.prediction

선택사항: string

LLM 응답입니다.

instance.instruction

선택사항: string

추론 시 사용되는 안내입니다.

instance.context

선택사항: string

LLM 응답에 사용할 수 있는 모든 정보가 포함된 추론 시간 텍스트입니다.

SummarizationHelpfulnessResult

{
  "summarization_helpfulness_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
출력

score

float: 다음 중 하나입니다.

  • 1: 유용하지 않음
  • 2: 다소 유용하지 않음
  • 3: 중립적
  • 4: 다소 유용함
  • 5: 유용함

explanation

string: 점수 할당 근거입니다.

confidence

float: [0, 1] 결과의 신뢰도 점수입니다.

SummarizationVerbosityInput

{
  "summarization_verbosity_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "instruction": string,
      "context": string,
    }
  }
}
매개변수

metric_spec

선택사항: SummarizationVerbositySpec

측정항목 동작을 정의하는 측정항목 사양입니다.

instance

선택사항: SummarizationVerbosityInstance

추론 입력과 해당 응답으로 구성된 평가 입력입니다.

instance.prediction

선택사항: string

LLM 응답입니다.

instance.instruction

선택사항: string

추론 시 사용되는 안내입니다.

instance.context

선택사항: string

LLM 응답에 사용할 수 있는 모든 정보가 포함된 추론 시간 텍스트입니다.

SummarizationVerbosityResult

{
  "summarization_verbosity_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
출력

score

float. 다음 필드 중 하나입니다.

  • -2: 간결함
  • -1: 다소 간결함
  • 0: 최적
  • 1: 다소 상세함
  • 2: 상세함

explanation

string: 점수 할당 근거입니다.

confidence

float: [0, 1] 결과의 신뢰도 점수입니다.

QuestionAnsweringQualityInput

{
  "question_answering_quality_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "instruction": string,
      "context": string,
    }
  }
}
매개변수

metric_spec

선택사항: QuestionAnsweringQualitySpec

측정항목 동작을 정의하는 측정항목 사양입니다.

instance

선택사항: QuestionAnsweringQualityInstance

추론 입력과 해당 응답으로 구성된 평가 입력입니다.

instance.prediction

선택사항: string

LLM 응답입니다.

instance.instruction

선택사항: string

추론 시 사용되는 안내입니다.

instance.context

선택사항: string

LLM 응답에 사용할 수 있는 모든 정보가 포함된 추론 시간 텍스트입니다.

QuestionAnsweringQualityResult

{
  "question_answering_quality_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
출력

score

float: 다음 중 하나입니다.

  • 1: 매우 나쁨
  • 2: 나쁨
  • 3: 양호
  • 4: 우수
  • 5: 매우 우수

explanation

string: 점수 할당 근거입니다.

confidence

float: [0, 1] 결과의 신뢰도 점수입니다.

PairwiseQuestionAnsweringQualityInput

{
  "question_answering_quality_input: {
    "metric_spec": {},
    "instance": {
      "baseline_prediction": string,
      "prediction": string,
      "instruction": string,
      "context": string
    }
  }
}
매개변수

metric_spec

선택사항: QuestionAnsweringQualitySpec

측정항목 동작을 정의하는 측정항목 사양입니다.

instance

선택사항: QuestionAnsweringQualityInstance

추론 입력과 해당 응답으로 구성된 평가 입력입니다.

instance.baseline_prediction

선택사항: string

기준 모델 LLM 응답입니다.

instance.prediction

선택사항: string

후보 모델 LLM 응답입니다.

instance.instruction

선택사항: string

추론 시 사용되는 안내입니다.

instance.context

선택사항: string

LLM 응답에 사용할 수 있는 모든 정보가 포함된 추론 시간 텍스트입니다.

PairwiseQuestionAnsweringQualityResult

{
  "pairwise_question_answering_quality_result: {
    "pairwise_choice": PairwiseChoice,
    "explanation": string,
    "confidence": float
  }
}
출력

pairwise_choice

PairwiseChoice: 다음과 같은 양의 값이 있는 enum입니다.

  • BASELINE: 기준 예측이 더 우수함
  • CANDIDATE: 후보 예측이 더 우수함
  • TIE: 기준 예측과 후보 예측 간의 관계입니다.

explanation

string: pairwise_choice 할당 근거입니다.

confidence

float: [0, 1] 결과의 신뢰도 점수입니다.

QuestionAnsweringRelevanceInput

{
  "question_answering_quality_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "instruction": string,
      "context": string
    }
  }
}
매개변수

metric_spec

선택사항: QuestionAnsweringRelevanceSpec

측정항목 동작을 정의하는 측정항목 사양입니다.

instance

선택사항: QuestionAnsweringRelevanceInstance

추론 입력과 해당 응답으로 구성된 평가 입력입니다.

instance.prediction

선택사항: string

LLM 응답입니다.

instance.instruction

선택사항: string

추론 시 사용되는 안내입니다.

instance.context

선택사항: string

LLM 응답에 사용할 수 있는 모든 정보가 포함된 추론 시간 텍스트입니다.

QuestionAnsweringRelevancyResult

{
  "question_answering_relevancy_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
출력

score

float: 다음 중 하나입니다.

  • 1: 관련성이 없음
  • 2: 다소 관련성이 없음
  • 3: 중립적
  • 4: 다소 관련성이 있음
  • 5: 관련성이 있음

explanation

string: 점수 할당 근거입니다.

confidence

float: [0, 1] 결과의 신뢰도 점수입니다.

QuestionAnsweringHelpfulnessInput

{
  "question_answering_helpfulness_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "instruction": string,
      "context": string
    }
  }
}
매개변수

metric_spec

선택사항: QuestionAnsweringHelpfulnessSpec

측정항목 동작을 정의하는 측정항목 사양입니다.

instance

선택사항: QuestionAnsweringHelpfulnessInstance

추론 입력과 해당 응답으로 구성된 평가 입력입니다.

instance.prediction

선택사항: string

LLM 응답입니다.

instance.instruction

선택사항: string

추론 시 사용되는 안내입니다.

instance.context

선택사항: string

LLM 응답에 사용할 수 있는 모든 정보가 포함된 추론 시간 텍스트입니다.

QuestionAnsweringHelpfulnessResult

{
  "question_answering_helpfulness_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
출력

score

float: 다음 중 하나입니다.

  • 1: 유용하지 않음
  • 2: 다소 유용하지 않음
  • 3: 중립적
  • 4: 다소 유용함
  • 5: 유용함

explanation

string: 점수 할당 근거입니다.

confidence

float: [0, 1] 결과의 신뢰도 점수입니다.

QuestionAnsweringCorrectnessInput

{
  "question_answering_correctness_input: {
    "metric_spec": {
      "use_reference": bool
    },
    "instance": {
      "prediction": string,
      "reference": string,
      "instruction": string,
      "context": string
    }
  }
}
매개변수

metric_spec

선택사항: QuestionAnsweringCorrectnessSpec: 측정항목 동작을 정의하는 측정항목 사양입니다.

metric_spec.use_reference

선택사항: bool

참조가 평가에 사용되는지 여부입니다.

instance

선택사항: QuestionAnsweringCorrectnessInstance

추론 입력과 해당 응답으로 구성된 평가 입력입니다.

instance.prediction

선택사항: string

LLM 응답입니다.

instance.reference

선택사항: string

참조를 위한 특별한 LLM 응답입니다.

instance.instruction

선택사항: string

추론 시 사용되는 안내입니다.

instance.context

선택사항: string

LLM 응답에 사용할 수 있는 모든 정보가 포함된 추론 시간 텍스트입니다.

QuestionAnsweringCorrectnessResult

{
  "question_answering_correctness_result: {
    "score": float,
    "explanation": string,
    "confidence": float
  }
}
출력

score

float: 다음 중 하나입니다.

  • 0: 오답
  • 1: 정답

explanation

string: 점수 할당 근거입니다.

confidence

float: [0, 1] 결과의 신뢰도 점수입니다.

ToolCallValidInput

{
  "tool_call_valid_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "reference": string
    }
  }
}
매개변수

metric_spec

선택사항: ToolCallValidSpec

측정항목 동작을 정의하는 측정항목 사양입니다.

instance

선택사항: ToolCallValidInstance

LLM 응답과 참조로 구성된 평가 입력입니다.

instance.prediction

선택사항: string

contenttool_calls 키가 포함된 JSON 직렬화된 문자열인 후보 모델 LLM 응답입니다. content 값은 모델의 텍스트 출력입니다. tool_call 값은 도구 호출 목록의 JSON 직렬화된 문자열입니다. 예를 들면 다음과 같습니다.


{
  "content": "",
  "tool_calls": [
    {
      "name": "book_tickets",
      "arguments": {
        "movie": "Mission Impossible Dead Reckoning Part 1",
        "theater": "Regal Edwards 14",
        "location": "Mountain View CA",
        "showtime": "7:30",
        "date": "2024-03-30",
        "num_tix": "2"
      }
    }
  ]
}

instance.reference

선택사항: string

예측과 동일한 형식의 특별한 모델 출력입니다.

ToolCallValidResults

{
  "tool_call_valid_results: {
    "tool_call_valid_metric_values": [
      {
        "score": float
      }
    ]
  }
}
출력

tool_call_valid_metric_values

반복 ToolCallValidMetricValue: 인스턴스 입력당 평가 결과입니다.

tool_call_valid_metric_values.score

float: 다음 중 하나입니다.

  • 0: 잘못된 도구 호출
  • 1: 유효한 도구 호출

ToolNameMatchInput

{
  "tool_name_match_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "reference": string
    }
  }
}
매개변수

metric_spec

선택사항: ToolNameMatchSpec

측정항목 동작을 정의하는 측정항목 사양입니다.

instance

선택사항: ToolNameMatchInstance

LLM 응답과 참조로 구성된 평가 입력입니다.

instance.prediction

선택사항: string

contenttool_calls 키가 포함된 JSON 직렬화된 문자열인 후보 모델 LLM 응답입니다. content 값은 모델의 텍스트 출력입니다. tool_call 값은 도구 호출 목록의 JSON 직렬화된 문자열입니다.

instance.reference

선택사항: string

예측과 동일한 형식의 특별한 모델 출력입니다.

ToolNameMatchResults

{
  "tool_name_match_results: {
    "tool_name_match_metric_values": [
      {
        "score": float
      }
    ]
  }
}
출력

tool_name_match_metric_values

반복 ToolNameMatchMetricValue: 인스턴스 입력당 평가 결과입니다.

tool_name_match_metric_values.score

float: 다음 중 하나입니다.

  • 0: 도구 호출 이름이 참조와 일치하지 않습니다.
  • 1: 도구 호출 이름이 참조와 일치합니다.

ToolParameterKeyMatchInput

{
  "tool_parameter_key_match_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "reference": string
    }
  }
}
매개변수

metric_spec

선택사항: ToolParameterKeyMatchSpec

측정항목 동작을 정의하는 측정항목 사양입니다.

instance

선택사항: ToolParameterKeyMatchInstance

LLM 응답과 참조로 구성된 평가 입력입니다.

instance.prediction

선택사항: string

contenttool_calls 키가 포함된 JSON 직렬화된 문자열인 후보 모델 LLM 응답입니다. content 값은 모델의 텍스트 출력입니다. tool_call 값은 도구 호출 목록의 JSON 직렬화된 문자열입니다.

instance.reference

선택사항: string

예측과 동일한 형식의 특별한 모델 출력입니다.

ToolParameterKeyMatchResults

{
  "tool_parameter_key_match_results: {
    "tool_parameter_key_match_metric_values": [
      {
        "score": float
      }
    ]
  }
}
출력

tool_parameter_key_match_metric_values

반복 ToolParameterKeyMatchMetricValue: 인스턴스 입력당 평가 결과입니다.

tool_parameter_key_match_metric_values.score

float: [0, 1]. 점수가 높을수록 참조 매개변수 이름과 일치하는 매개변수가 많아집니다.

ToolParameterKVMatchInput

{
  "tool_parameter_kv_match_input: {
    "metric_spec": {},
    "instance": {
      "prediction": string,
      "reference": string
    }
  }
}
매개변수

metric_spec

선택사항: ToolParameterKVMatchSpec

측정항목 동작을 정의하는 측정항목 사양입니다.

instance

선택사항: ToolParameterKVMatchInstance

LLM 응답과 참조로 구성된 평가 입력입니다.

instance.prediction

선택사항: string

contenttool_calls 키가 포함된 JSON 직렬화된 문자열인 후보 모델 LLM 응답입니다. content 값은 모델의 텍스트 출력입니다. tool_call 값은 도구 호출 목록의 JSON 직렬화된 문자열입니다.

instance.reference

선택사항: string

예측과 동일한 형식의 특별한 모델 출력입니다.

ToolParameterKVMatchResults

{
  "tool_parameter_kv_match_results: {
    "tool_parameter_kv_match_metric_values": [
      {
        "score": float
      }
    ]
  }
}
출력

tool_parameter_kv_match_metric_values

반복 ToolParameterKVMatchMetricValue: 인스턴스 입력당 평가 결과입니다.

tool_parameter_kv_match_metric_values.score

float: [0, 1]. 점수가 높을수록 참조 매개변수의 이름 및 값과 일치하는 매개변수가 많아집니다.

예시

  • PROJECT_ID = PROJECT_ID
  • REGION = REGION

쌍 요약 품질

여기에서는 Rapid Eval API를 호출하여 LLM 출력을 평가하는 방법을 보여줍니다. 이 경우 쌍 요약 품질 비교를 수행합니다.

curl

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://${REGION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${REGION}:evaluateInstances \
  -d '{
    "pairwise_summarization_quality_input": {
      "metric_spec": {},
      "instance": {
        "prediction": "France is a country located in Western Europe.",
        "baseline_prediction": "France is a country.",
        "instruction": "Summarize the context.",
        "context": "France is a country located in Western Europe. It'\''s bordered by Belgium, Luxembourg, Germany, Switzerland, Italy, Monaco, Spain, and Andorra.  France'\''s coastline stretches along the English Channel, the North Sea, the Atlantic Ocean, and the Mediterranean Sea.  Known for its rich history, iconic landmarks like the Eiffel Tower, and delicious cuisine, France is a major cultural and economic power in Europe and throughout the world.",
      }
    }
  }'

Python

import json

from google import auth
from google.api_core import exceptions
from google.auth.transport import requests as google_auth_requests

creds, _ = auth.default(
    scopes=['https://www.googleapis.com/auth/cloud-platform'])

data = {
  "pairwise_summarization_quality_input": {
    "metric_spec": {},
    "instance": {
      "prediction": "France is a country located in Western Europe.",
      "baseline_prediction": "France is a country.",
      "instruction": "Summarize the context.",
      "context": (
          "France is a country located in Western Europe. It's bordered by "
          "Belgium, Luxembourg, Germany, Switzerland, Italy, Monaco, Spain, "
          "and Andorra.  France's coastline stretches along the English "
          "Channel, the North Sea, the Atlantic Ocean, and the Mediterranean "
          "Sea.  Known for its rich history, iconic landmarks like the Eiffel "
          "Tower, and delicious cuisine, France is a major cultural and "
          "economic power in Europe and throughout the world."
      ),
    }
  }
}

uri = f'https://${REGION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${REGION}:evaluateInstances'
result = google_auth_requests.AuthorizedSession(creds).post(uri, json=data)

print(json.dumps(result.json(), indent=2))

ROUGE

다음으로, API를 호출하여 참조에 따라 예측의 ROUGE 점수를 가져옵니다.

curl

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://${REGION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${REGION}:evaluateInstances \
  -d '{
    "rouge_input": {
      "instances": {
        "prediction": "A fast brown fox leaps over a lazy dog.",
        "reference": "The quick brown fox jumps over the lazy dog.",
      },
      "instances": {
        "prediction": "A quick brown fox jumps over the lazy canine.",
        "reference": "The quick brown fox jumps over the lazy dog.",
      },
      "instances": {
        "prediction": "The speedy brown fox jumps over the lazy dog.",
        "reference": "The quick brown fox jumps over the lazy dog.",
      },
      "metric_spec": {
        "rouge_type": "rougeLsum",
        "use_stemmer": true,
        "split_summaries": true
      }
    }
  }'

Python

import json

from google import auth
from google.api_core import exceptions
from google.auth.transport import requests as google_auth_requests

creds, _ = auth.default(
    scopes=['https://www.googleapis.com/auth/cloud-platform'])

data = {
  "rouge_input": {
    "metric_spec": {
        "rouge_type": "rougeLsum",
        "use_stemmer": True,
        "split_summaries": True
    },
    "instances": [
        {
          "prediction": "A fast brown fox leaps over a lazy dog.",
          "reference": "The quick brown fox jumps over the lazy dog.",
        }, {
          "prediction": "A quick brown fox jumps over the lazy canine.",
          "reference": "The quick brown fox jumps over the lazy dog.",
        }, {
          "prediction": "The speedy brown fox jumps over the lazy dog.",
          "reference": "The quick brown fox jumps over the lazy dog.",
        }
    ]
  }
}

uri = f'https://${REGION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${REGION}:evaluateInstances'
result = google_auth_requests.AuthorizedSession(creds).post(uri, json=data)

print(json.dumps(result.json(), indent=2))