시작하기 전에
평가 지표를 관리하기 전에 다음 사항을 확인하세요.
- 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()
콘솔에서 측정항목 관리
Google Cloud 콘솔에서 Agent Platform > 에이전트 > 평가 페이지로 이동합니다.
측정항목 탭을 클릭하여 레지스트리를 확인합니다.
측정항목 만들기: 새 측정항목을 클릭하고 맞춤 LLM 측정항목 또는 맞춤 코드 측정항목을 선택합니다.
기준표 정의: LLM 측정항목의 경우 샘플 버튼을 사용하여 요청 사항, 기준 (예: 명확성 또는 흥미), 평가 점수를 빠르게 입력합니다.
보기 및 수정: 측정항목 이름을 클릭하여 읽기 전용 모드로 정의를 보거나 옵션 더보기 more_vert 아이콘을 사용하여 리소스를 복제하거나 삭제합니다.
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
)