평가 측정항목 관리

시작하기 전에

평가 지표를 관리하기 전에 다음 사항을 확인하세요.

  • Agent Platform API가 사용 설정된 Google Cloud 프로젝트
  • (선택사항) Agent Platform SDK를 사용하는 경우 에이전트 평가에 설명된 대로 클라이언트를 초기화합니다.

측정항목 레지스트리를 사용하면 에이전트 평가 방식에 대한 재사용 가능한 구성을 정의, 저장, 관리할 수 있습니다. 테스트 실행마다 기준을 구성하는 대신 안전을 위한 맞춤 LLM 기반 기준표나 실행 정확도를 위한 Python 함수와 같은 표준화된 측정항목을 저장하고 오프라인 평가와 지속적인 온라인 모니터에 일관되게 적용할 수 있습니다.

측정항목 유형

에이전트 플랫폼은 레지스트리에서 세 가지 유형의 측정항목을 지원합니다.

  • 사전 정의된 측정항목: 작업 성공, 도구 사용 품질, 트레이닝 준수를 위한 멀티턴 평가자를 비롯해 Google에서 제공하는 관리형 측정항목입니다.
  • 맞춤 LLM 측정항목: '심사 LLM'이 특정 기준과 평가 척도에 따라 에이전트의 대답을 평가하는 자연어 기준표입니다.
  • 맞춤 코드 측정항목: 특정 출력 형식을 확인하거나 도구 응답을 검증하는 등 에이전트 동작을 프로그래매틱 방식으로 검증하는 Python 함수입니다.

Google에서 제공하는 관리 측정항목 외에도 평가를 위해 맞춤 등록 측정항목을 사용할 수 있습니다.

사전 정의된 측정항목

Agent Platform은 에이전트를 평가하기 위한 사전 정의된 측정항목 집합을 제공합니다. 이러한 측정항목은 Google에서 관리하며 단일 턴 및 멀티턴 상담사 상호작용 모두에 대한 일반적인 평가 기준을 포함합니다.

types.RubricMetric.METRIC_NAME를 사용하여 SDK에서 사전 정의된 측정항목에 액세스할 수 있습니다. 입력 요구사항 및 출력 형식을 비롯한 모든 관리형 기준표 기반 측정항목의 자세한 내용은 관리형 기준표 기반 측정항목의 세부정보를 참고하세요.

단일 턴 에이전트 측정항목

다음 측정항목은 단일 에이전트 상호작용 (프롬프트 1개와 응답 1개, 중간 도구 호출 포함 가능)을 평가합니다.

측정항목 유형 SDK 접근자 설명
상담사 최종 대답 품질 적응형 기준표 types.RubricMetric.FINAL_RESPONSE_QUALITY 에이전트의 구성 (시스템 요청 사항 및 도구 선언)과 사용자의 프롬프트를 기반으로 평가 기준을 자동 생성하는 포괄적인 평가입니다.
에이전트 할루시네이션 정적 기준표 types.RubricMetric.HALLUCINATION 대답을 원자적 클레임으로 분할하고 각 클레임이 중간 이벤트의 도구 사용에 기반하는지 확인하여 사실성을 검사합니다.
상담사 도구 사용 품질 적응형 기준표 types.RubricMetric.TOOL_USE_QUALITY 적절한 도구 선택, 올바른 파라미터 사용, 지정된 작업 순서 준수를 평가합니다.
안전 정적 기준표 types.RubricMetric.SAFETY 대답이 PII 및 인구통계 데이터, 증오심 표현, 위험한 콘텐츠, 괴롭힘, 음란물 등 안전 정책을 위반하는지 평가합니다. 안전한 경우 1을 반환하고 안전하지 않은 경우 0을 반환합니다.

멀티턴 에이전트 측정항목

다음 측정항목은 멀티턴 에이전트 대화를 평가합니다. 전체 대화 컨텍스트를 분석하여 여러 턴에 걸쳐 전반적인 에이전트 성능을 평가합니다.

측정항목 유형 SDK 접근자 설명
상담사 멀티턴 작업 성공 적응형 기준표 types.RubricMetric.MULTI_TURN_TASK_SUCCESS 에이전트가 대화의 목표를 성공적으로 달성했는지 평가합니다. 이 참조 없는 측정항목은 목표가 달성되었는지(여부)에 중점을 두며, 목표가 달성된 방식에는 중점을 두지 않습니다.
상담사 멀티턴 도구 사용 품질 적응형 기준표 types.RubricMetric.MULTI_TURN_TOOL_USE_QUALITY 멀티턴 대화 중에 이루어진 함수 호출의 품질을 평가합니다. 에이전트가 적절한 시점에 올바른 인수를 사용하여 올바른 도구를 호출했는지 평가합니다.
상담사 멀티턴 궤적 품질 적응형 기준표 types.RubricMetric.MULTI_TURN_TRAJECTORY_QUALITY 대화의 전반적인 궤적 (경로)을 평가합니다. 작업 성공과 달리 이 측정항목은 에이전트가 목표를 달성한 방식, 즉 추론 경로가 논리적이고 효율적인지 평가합니다.

SDK에서 사전 정의된 측정항목 사용

from vertexai import evals, types

# Run an evaluation with predefined metrics
result = client.evals.evaluate(
    dataset=eval_dataset,
    metrics=[
        types.RubricMetric.FINAL_RESPONSE_QUALITY,
        types.RubricMetric.TOOL_USE_QUALITY,
        types.RubricMetric.HALLUCINATION,
        types.RubricMetric.SAFETY,
    ],
)

# Visualize results in Colab
result.show()

콘솔에서 측정항목 관리

  1. Google Cloud 콘솔에서 Agent Platform > 에이전트 > 평가 페이지로 이동합니다.

    평가로 이동

  2. 측정항목 탭을 클릭하여 레지스트리를 확인합니다.

  3. 측정항목 만들기: 새 측정항목을 클릭하고 맞춤 LLM 측정항목 또는 맞춤 코드 측정항목을 선택합니다.

  4. 기준표 정의: LLM 측정항목의 경우 샘플 버튼을 사용하여 요청 사항, 기준 (예: 명확성 또는 흥미), 평가 점수를 빠르게 입력합니다.

  5. 보기 및 수정: 측정항목 이름을 클릭하여 읽기 전용 모드로 정의를 보거나 옵션 더보기 아이콘을 사용하여 리소스를 복제하거나 삭제합니다.

SDK로 측정항목 관리

Agent Platform SDK를 사용하여 프로그래매틱 방식으로 측정항목을 등록하고 사용할 수 있습니다.

맞춤 LLM 측정항목 등록

from vertexai import evals, types

# Define a metric with a specific rubric
tone_check_metric = types.LLMMetric(
        name="tone_check",
        prompt_template="Analyze the tone of the response ...",
        result_parsing_function="""
          import json, re
          def parse_results(responses):
              response = json.loads(responses[0])
              return {"score": response.get("score", 0.0),
                      "explanation": response.get("explanation", "default explanation")}
          """
)

# Register the custom metric
tone_check_metric_path = client.evals.create_evaluation_metric(
    metric=tone_check_metric
)

맞춤 코드 측정항목 등록

from vertexai import evals, types

# Define a metric with custom python code
accuracy_metric_code = """
def evaluate(instance: dict) -> float:
    agent_data = instance.get('agent_eval_data', {})
    turns = agent_data.get('turns', [])
    for turn in turns:
        ...
"""

accuracy_metric = types.CodeExecutionMetric(
    name="multi_turn_accuracy",
    custom_function=accuracy_metric_code
)

# Register the custom metric
accuracy_metric_path = client.evals.create_evaluation_metric(
    metric=accuracy_metric
)