이 페이지에서는 Gen AI Evaluation Service를 사용하여 생성형 언어 모델과 애플리케이션의 평가를 실행하는 방법을 보여줍니다.
시작하기 전에
Vertex AI SDK를 설치합니다.
Vertex AI SDK for Python에서 Gen AI Evaluation 모듈을 설치하려면 다음 명령어를 실행합니다.
!pip install -q google-cloud-aiplatform[evaluation]
자세한 내용은 Python용 Vertex AI SDK 설치를 참조하세요.
Vertex AI SDK 인증
Vertex AI SDK for Python을 설치한 후 인증을 수행해야 합니다. 다음 주제에서는 로컬에서 작업하는 경우와 Colaboratory에서 작업하는 경우 Vertex AI SDK로 인증하는 방법을 설명합니다.
로컬에서 개발하는 경우 로컬 환경에서 애플리케이션 기본 사용자 인증 정보(ADC)를 설정합니다.
Google Cloud CLI를 설치한 후 다음 명령어를 실행하여 초기화합니다.
gcloud init
Google 계정의 로컬 인증 사용자 인증 정보를 만듭니다.
gcloud auth application-default login
로그인 화면이 표시됩니다. 로그인한 후에 사용자 인증 정보는 ADC에서 사용하는 로컬 사용자 인증 정보 파일에 저장됩니다. 자세한 내용은 로컬 개발 환경의 ADC 설정을 참조하세요.
Colaboratory에서 작업하는 경우 Colab 셀에서 다음 명령어를 실행하여 인증합니다.
from google.colab import auth auth.authenticate_user()
이 명령어를 실행하면 인증을 완료할 수 있는 창이 열립니다.
서비스 계정 이해
서비스 계정은 Gen AI Evaluation Service에서 모델 기반 평가 측정항목을 위해 Vertex AI의 Gemini API에서 예측을 가져오는 데 사용됩니다. 이 서비스 계정은 Gen AI Evaluation Service에 대한 첫 번째 요청이 발생하면 자동으로 프로비저닝됩니다.
이름 | 설명 | 이메일 주소 | 역할 |
---|---|---|---|
Vertex AI Rapid Eval 서비스 에이전트 | 모델 기반 평가를 예측하는 데 사용되는 서비스 계정 | service-PROJECT_NUMBER@gcp-sa-vertex-eval.iam.gserviceaccount.com |
roles/aiplatform.rapidevalServiceAgent |
Rapid Eval 서비스 에이전트와 관련된 권한은 다음과 같습니다.
역할 | 권한 |
---|---|
Vertex AI Rapid Eval 서비스 에이전트(roles/aiplatform.rapidevalServiceAgent) | aiplatform.endpoints.predict |
평가 실행
Gen AI Evaluation Service는 평가를 실행하기 위해 다음과 같은 클라이언트 기반 프로세스를 사용합니다.
run_inference()
: 지정된 프롬프트 세트에 대해 모델에서 응답을 생성합니다.evaluate()
: 생성된 응답에 대한 측정항목을 계산합니다.
eval_dataset = client.evals.run_inference(
model="gemini-2.5-flash",
src="gs://vertex-evaluation-llm-dataset-us-central1/genai_eval_sdk/test_prompts.jsonl",
)
eval_dataset.show()
eval_result = client.evals.evaluate(
dataset=eval_dataset,
metrics=[
types.RubricMetric.TEXT_QUALITY,
types.RubricMetric.QUESTION_ANSWERING_QUALITY,
types.Metric(name='bleu'),
types.Metric(name='rouge_1'),
]
)
eval_result.show()
단일 평가에서 여러 AI 모델 또는 시스템의 성능을 분석하려면 각 후보의 응답을 생성하고 목록에서 evaluate()
메서드로 전달합니다.
inference_result_1 = client.evals.run_inference(
model="gemini-2.0-flash",
src=prompts_df,
)
inference_result_2 = client.evals.run_inference(
model="gemini-2.5-flash",
src=prompts_df,
)
# Compare the responses against each other
comparison_result = client.evals.evaluate(
dataset=[inference_result_1, inference_result_2],
metrics=[
types.RubricMetric.TEXT_QUALITY,
types.RubricMetric.INSTRUCTION_FOLLOWING,
]
)
comparison_result.show()
생성된 기준표를 검토하거나 평가에 재사용하기
평가 전에 적응형 기준표를 사전 생성하여 검토하거나 이전에 생성된 기준표를 재사용하려면 다음 코드를 사용하세요.
# Step 1. Generate rubrics
# Rubrics would be saved in a group named "general_quality_rubrics".
data_with_rubrics = client.evals.generate_rubrics(
src=prompts_df,
rubric_group_name="general_quality_rubrics",
predefined_spec_name=types.RubricMetric.GENERAL_QUALITY,
)
# Step 2. Run Inference
eval_dataset = client.evals.run_inference(
model=inference_model,
src=data_with_rubrics,
)
# Step 3. Evaluate with provided rubrics
# The group of rubric named "general_quality_rubrics" will be used for evaluation.
eval_result = client.evals.evaluate(
dataset=eval_dataset,
metrics=[types.RubricMetric.GENERAL_QUALITY(
rubric_group_name="general_quality_rubrics",
)],
)
generate_rubrics()
: 측정항목과 페어링된 사전 정의된 워크플로를 사용하여 기준표를 생성합니다.run_inference()
: 지정된 프롬프트 세트에 대해 모델에서 응답을 생성합니다.evaluate()
: 제공된 기준표를 기반으로 응답을 검증합니다.
비동기 대규모 평가
대규모 데이터 세트의 경우 Gen AI Evaluation Service는 비동기 장기 실행 일괄 평가 메서드를 제공합니다. 이는 즉각적인 결과가 필요하지 않고 계산을 오프로드하려는 시나리오에 적합합니다.
batch_evaluate()
메서드는 진행 상황을 추적하기 위해 폴링할 수 있는 작업 객체를 반환합니다. 이 파라미터는 evaluate()
메서드와 호환됩니다.
GCS_DEST_BUCKET = "gs://your-gcs-bucket/batch_eval_results/"
inference_result_saved = client.evals.run_inference(
model="gemini-2.5-flash",
src=prompts_df,
config={'dest': GCS_DEST_BUCKET}
)
print(f"Eval dataset uploaded to: {inference_result_saved.gcs_source}")
batch_eval_job = client.evals.batch_evaluate(
dataset = inference_result_saved,
metrics = [
types.RubricMetric.FLUENCY,
types.RubricMetric.COHERENCE,
types.Metric(name='rouge_1'),
types.Metric(name='bleu'),
],
dest=GCS_DEST_BUCKET
)
서드 파티 모델 평가
모델 이름 문자열을 run_inference
메서드에 전달하여 Gen AI Evaluation Service를 사용하여 OpenAI와 같은 제공업체의 모델을 평가하고 비교할 수 있습니다. Gen AI Evaluation Service는 litellm
라이브러리를 사용하여 모델 API를 호출합니다.
필수 API 키를 환경 변수(예: OPENAI_API_KEY
)로 설정해야 합니다.
import os
# Set your third-party model API key
os.environ['OPENAI_API_KEY'] = 'YOUR_OPENAI_API_KEY'
# Run inference on an OpenAI model
gpt_response = client.evals.run_inference(
model='gpt-4o',
src=prompt_df
)
# You can now evaluate the responses
eval_result = client.evals.evaluate(
dataset=gpt_response,
metrics=[types.RubricMetric.TEXT_QUALITY]
)
eval_result.show()