평가 가이드
배포된 Agent에 대한 Gen AI 에이전트 평가 생성
Agent Engine에 배포된 에이전트를 평가하는 방법을 설명합니다. Gen AI 에이전트 평가를 통해 에이전트의 품질과 응답의 정확성을 측정할 수 있습니다.
목차
1. 평가 개요
평가 프로세스
- Run Agent Inference: 에이전트 추론을 실행하여 배포된 에이전트에서 실제 응답 및 추적을 검색
- Create Evaluation Run: 평가 실행을 생성하여 Gen AI 에이전트 평가 수행
평가 지표
| 측정항목 | 설명 |
|---|---|
| FINAL_RESPONSE_QUALITY | 최종 응답의 품질 |
| TOOL_USE_QUALITY | 도구 사용의 적절성 |
| HALLUCINATION | 환각(허위 정보) 여부 |
| SAFETY | 안전성 |
2. 환경 설정
필수 패키지 설치
pip install --upgrade --force-reinstall -q google-cloud-aiplatform[evaluation]
Google Cloud 프로젝트 설정
import vertexai
from google.cloud import storage
from google.genai import types as genai_types
from vertexai import Client
# 설정
PROJECT_ID = 'your-project-id'
LOCATION = 'us-central1'
GCS_DEST = "your-gcs-bucket"
AGENT = 'projects/your-project/locations/us-central1/reasoningEngines/your-agent-id'
# SDK 초기화
vertexai.init(project=PROJECT_ID, location=LOCATION)
client = Client(
project=PROJECT_ID,
location=LOCATION,
http_options=genai_types.HttpOptions(api_version="v1beta1"),
)
3. 에이전트 데이터셋 준비
Agent Info 정의
agent_info = types.AgentInfo(
name="bigquery_nl2sql_agent",
instruction="You are a BigQuery data analysis expert.",
tool_declarations=[
list_dataset_ids,
list_table_ids,
get_table_info,
execute_sql,
]
)
데이터셋 정의
session_inputs = types.evals.SessionInput(
user_id="eval_user",
state={},
)
agent_prompts = [
"어떤 데이터셋이 있나요?",
"요일별 택시 이용 패턴 분석 (주중 vs. 주말)",
"전월 대비 택시 이용 건수 증감률 분석",
]
agent_dataset = pd.DataFrame(
{
"prompt": agent_prompts,
"session_inputs": [session_inputs] * len(agent_prompts),
}
)
4. 에이전트 추론 실행
agent_dataset_with_inference = client.evals.run_inference(
agent=AGENT,
src=agent_dataset,
)
# 에이전트 추론 결과 표시
agent_dataset_with_inference.show()
5. Gen AI 에이전트 평가 실행
evaluation_run = client.evals.create_evaluation_run(
dataset=agent_dataset_with_inference,
agent_info=agent_info,
metrics=[
types.RubricMetric.FINAL_RESPONSE_QUALITY,
types.RubricMetric.TOOL_USE_QUALITY,
types.RubricMetric.HALLUCINATION,
types.RubricMetric.SAFETY,
],
dest=GCS_DEST,
)
# 평가 실행 상태 및 결과 표시
evaluation_run.show()
6. 평가 결과 분석
Summary Metrics
| Metric | Mean Score | Std. Dev. |
|---|---|---|
| final_response_quality_v1 | 0.6667 | 0.4714 |
| hallucination_v1 | 0.6667 | 0.4714 |
| safety_v1 | 1.0000 | 0.0000 |
| tool_use_quality_v1 | 0.2500 | 0.2041 |
품질 개선 포인트 식별
# 낮은 점수의 케이스 필터링
low_quality_cases = evaluation_results[
evaluation_results['final_response_quality_v1'] < 0.5
]
for case in low_quality_cases:
print(f"Prompt: {case['prompt']}")
print(f"Score: {case['final_response_quality_v1']}")