Questa pagina mostra come eseguire le valutazioni per i modelli e le applicazioni di linguaggio generativo con Gen AI evaluation service.
Prima di iniziare
Installa l'SDK Vertex AI
Per installare il modulo Gen AI Evaluation dall'SDK Vertex AI per Python, esegui il comando seguente:
!pip install -q google-cloud-aiplatform[evaluation]
Per saperne di più, consulta Installare l'SDK Vertex AI Python.
Autentica l'SDK Vertex AI
Dopo aver installato l'SDK Vertex AI per Python, devi eseguire l'autenticazione. I seguenti argomenti spiegano come eseguire l'autenticazione con l'SDK Vertex AI se lavori localmente e se lavori in Colaboratory:
Se sviluppi localmente, configura le Credenziali predefinite dell'applicazione (ADC) nel tuo ambiente locale:
Installa Google Cloud CLI, quindi inizializzalo eseguendo il comando seguente:
gcloud initCrea credenziali di autenticazione locali per il tuo Account Google:
gcloud auth application-default loginViene visualizzata una schermata di accesso. Dopo aver eseguito l'accesso, le tue credenziali vengono archiviate nel file delle credenziali locali utilizzato da ADC. Per saperne di più, consulta Configura ADC per un ambiente di sviluppo locale.
Se lavori in Colaboratory, esegui il comando seguente in una cella Colab per eseguire l'autenticazione:
from google.colab import auth auth.authenticate_user()Questo comando apre una finestra in cui puoi completare l'autenticazione.
Informazioni sugli account di servizio
Il service account viene utilizzato da Gen AI evaluation service per ottenere previsioni dall'API Gemini in Vertex AI per le metriche di valutazione basate su modelli. Questo account di servizio viene sottoposto a provisioning automatico alla prima richiesta a Gen AI evaluation service.
| Nome | Descrizione | Indirizzo email | Ruolo |
|---|---|---|---|
| Vertex AI Rapid Eval Service Agent | Il account di servizio utilizzato per ottenere previsioni per la valutazione basata su modelli. | service-PROJECT_NUMBER@gcp-sa-vertex-eval.iam.gserviceaccount.com |
roles/aiplatform.rapidevalServiceAgent |
Le autorizzazioni associate al service agent del servizio di valutazione rapida sono:
| Ruolo | Autorizzazioni |
|---|---|
| Vertex AI Rapid Eval Service Agent (roles/aiplatform.rapidevalServiceAgent) | aiplatform.endpoints.predict |
Esegui la valutazione
Gen AI evaluation service utilizza il seguente processo basato sul client per eseguire le valutazioni:
run_inference(): genera risposte dal modello per un determinato insieme di prompt.evaluate(): calcola le metriche sulle risposte generate.
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()
Per analizzare le prestazioni di più modelli o sistemi di AI in un'unica valutazione, genera una risposta per ogni candidato e passala in un elenco al metodo 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()
Esamina o riutilizza le griglie generate per la valutazione
Per pregenerare le griglie adattive ed esaminarle prima della valutazione o riutilizzare le griglie generate in precedenza, utilizza il seguente codice:
# 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(): genera griglie con un flusso di lavoro predefinito abbinato alla metrica.run_inference(): genera risposte dal modello per un determinato insieme di prompt.evaluate(): convalida le risposte in base alle griglie fornite.
Valutazione asincrona e su larga scala
Per i set di dati di grandi dimensioni, Gen AI evaluation service fornisce un metodo di valutazione batch asincrono a lunga esecuzione. È ideale per gli scenari in cui non hai bisogno di risultati immediati e vuoi trasferire il calcolo.
Il metodo batch_evaluate() restituisce un oggetto operazione che puoi eseguire il polling per monitorarne l'avanzamento. I parametri sono compatibili con il metodo 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
)
Valutazione di modelli di terze parti
Puoi utilizzare Gen AI evaluation service per valutare e confrontare i modelli di fornitori come OpenAI passando la stringa del nome del modello al metodo run_inference. Gen AI evaluation service utilizza la libreria litellm per chiamare l'API del modello.
Assicurati di impostare la chiave API richiesta come variabile di ambiente (ad esempio 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()