Per Gen AI evaluation service, il set di dati di valutazione in genere è costituito dalla risposta del modello che vuoi valutare, dai dati di input utilizzati per generare la risposta e, possibilmente, dalla risposta basata su dati di fatto.
Schema del set di dati di valutazione
Per i casi d'uso tipici delle metriche basate su modelli, il set di dati deve fornire le seguenti informazioni:
| Tipo di input | Contenuti del campo di immissione |
|---|---|
| prompt | Input dell'utente per il modello o l'applicazione di AI generativa. In alcuni casi è facoltativo. |
| risposta | La risposta di inferenza dell'LLM da valutare. |
| baseline_model_response (richiesto dalle metriche basate su coppie) | La risposta di inferenza dell'LLM di base da confrontare con response nella valutazione basata su coppie. |
Se utilizzi il modulo Gen AI Evaluation dell'SDK Vertex AI Python, Gen AI evaluation service può generare automaticamente response
e baseline_model_response con il modello che hai specificato.
Per altri casi d'uso di valutazione, potresti dover fornire ulteriori informazioni:
Multi-turno o chat
| Tipo di input | Contenuti del campo di immissione |
|---|---|
| cronologia | La cronologia della conversazione tra l'utente e il modello prima del turno corrente. |
| prompt | Input dell'utente per il modello o l'applicazione di AI generativa nel turno corrente. |
| risposta | La risposta di inferenza dell'LLM da valutare, basata sulla cronologia e sul prompt del turno corrente. |
| baseline_model_response (richiesto dalle metriche basate su coppie) | La risposta di inferenza dell'LLM di base da confrontare con response nella valutazione basata su coppie, basata sulla cronologia e sul prompt del turno corrente. |
Metriche basate su calcolo
Il set di dati deve fornire una risposta del modello linguistico di grandi dimensioni e un riferimento da confrontare.
| Tipo di input | Contenuti del campo di immissione |
|---|---|
| risposta | La risposta di inferenza dell'LLM da valutare. |
| riferimento | La risposta basata su dati di fatto a cui confrontare la risposta dell'LLM. |
Metriche di traduzione
Il set di dati deve fornire una risposta del modello. A seconda del caso d'uso, devi anche fornire un riferimento da confrontare, un input nella lingua di origine o una combinazione di entrambi.
| Tipo di input | Contenuti del campo di immissione |
|---|---|
| origine | Testo di origine nella lingua originale da cui è stata tradotta la previsione. |
| risposta | La risposta di inferenza dell'LLM da valutare. |
| riferimento | La risposta basata su dati di fatto a cui confrontare la risposta dell'LLM. È nella stessa lingua della risposta. |
A seconda dei casi d'uso, puoi anche suddividere il prompt dell'utente di input in parti granulari, come instruction e context, e assemblarle per l'inferenza fornendo un modello di prompt. Se necessario, puoi anche fornire le informazioni di riferimento o basate su dati di fatto:
| Tipo di input | Contenuti del campo di immissione |
|---|---|
| istruzione | Parte del prompt dell'utente di input. Si riferisce all'istruzione di inferenza inviata all'LLM. Ad esempio, "Riassumi il seguente testo" è un'istruzione. |
| context | Input dell'utente per il modello o l'applicazione di AI generativa nel turno corrente. |
| riferimento | La risposta basata su dati di fatto a cui confrontare la risposta dell'LLM. |
Gli input richiesti per il set di dati di valutazione devono essere coerenti con le metriche. Per ulteriori dettagli sulla personalizzazione delle metriche, consulta Definire le metriche di valutazione e Eseguire la valutazione. Per ulteriori dettagli su come includere i dati di riferimento nelle metriche basate su modelli, consulta Adattare un modello di prompt di metrica ai dati di input.
Importare il set di dati di valutazione
Puoi importare il set di dati nei seguenti formati:
File JSONL o CSV archiviato in Cloud Storage
Tabella BigQuery
DataFrame Pandas
Esempi di set di dati di valutazione
Questa sezione mostra esempi di set di dati utilizzando il formato DataFrame Pandas. Tieni presente che qui vengono mostrati solo alcuni record di dati a titolo di esempio e che i set di dati di valutazione in genere hanno 100 o più punti dati. Per le best practice per la preparazione di un set di dati, consulta la sezione Best practice.
Metriche basate su modelli puntuali
Di seguito è riportato un caso di riepilogo per mostrare un set di dati di esempio per le metriche basate su modelli puntuali:
prompts = [
# Example 1
(
"Summarize the text in one sentence: As part of a comprehensive"
" initiative to tackle urban congestion and foster sustainable urban"
" living, a major city has revealed ambitious plans for an extensive"
" overhaul of its public transportation system. The project aims not"
" only to improve the efficiency and reliability of public transit but"
" also to reduce the city's carbon footprint and promote eco-friendly"
" commuting options. City officials anticipate that this strategic"
" investment will enhance accessibility for residents and visitors"
" alike, ushering in a new era of efficient, environmentally conscious"
" urban transportation."
),
# Example 2
(
"Summarize the text such that a five-year-old can understand: A team of"
" archaeologists has unearthed ancient artifacts shedding light on a"
" previously unknown civilization. The findings challenge existing"
" historical narratives and provide valuable insights into human"
" history."
),
]
responses = [
# Example 1
(
"A major city is revamping its public transportation system to fight"
" congestion, reduce emissions, and make getting around greener and"
" easier."
),
# Example 2
(
"Some people who dig for old things found some very special tools and"
" objects that tell us about people who lived a long, long time ago!"
" What they found is like a new puzzle piece that helps us understand"
" how people used to live."
),
]
eval_dataset_df = pd.DataFrame({
"prompt": prompts,
"response": responses,
})
# Define the eval dataset
eval_dataset = types.common.EvaluationDataset()
# Reference the pandas dataframe
eval_dataset.eval_dataset_df=eval_dataset_df
Metriche basate su modelli a coppie
L'esempio seguente mostra un caso di question answering a libro aperto per mostrare un set di dati di esempio per le metriche basate su modelli a coppie.
prompts = [
# Example 1
(
"Based on the context provided, what is the hardest material? Context:"
" Some might think that steel is the hardest material, or even"
" titanium. However, diamond is actually the hardest material."
),
# Example 2
(
"Based on the context provided, who directed The Godfather? Context:"
" Mario Puzo and Francis Ford Coppola co-wrote the screenplay for The"
" Godfather, and the latter directed it as well."
),
]
responses = [
# Example 1
"Diamond is the hardest material. It is harder than steel or titanium.",
# Example 2
"Francis Ford Coppola directed The Godfather.",
]
baseline_model_responses = [
# Example 1
"Steel is the hardest material.",
# Example 2
"John Smith.",
]
eval_dataset_df = pd.DataFrame(
{
"prompt": prompts,
"response": responses,
"baseline_model_response": baseline_model_responses,
}
)
# Define the eval dataset
eval_dataset = types.common.EvaluationDataset()
# Reference the pandas dataframe
eval_dataset.eval_dataset_df=eval_dataset_df
Metriche basate su calcolo
Per le metriche basate su calcolo, spesso è necessario il reference.
eval_dataset_df = pd.DataFrame({
"response": ["The Roman Senate was filled with exuberance due to Pompey's defeat in Asia."],
"reference": ["The Roman Senate was filled with exuberance due to successes against Catiline."],
})
# Define the eval dataset
eval_dataset = types.common.EvaluationDataset()
# Reference the pandas dataframe
eval_dataset.eval_dataset_df=eval_dataset_df
Metriche di utilizzo degli strumenti (chiamata di funzioni)
L'esempio seguente mostra i dati di input per le metriche di utilizzo degli strumenti basate su calcolo:
json_responses = ["""{
"content": "",
"tool_calls":[{
"name":"get_movie_info",
"arguments": {"movie":"Mission Impossible", "time": "today 7:30PM"}
}]
}"""]
json_references = ["""{
"content": "",
"tool_calls":[{
"name":"book_tickets",
"arguments":{"movie":"Mission Impossible", "time": "today 7:30PM"}
}]
}"""]
eval_dataset_df = pd.DataFrame({
"response": json_responses,
"reference": json_references,
})
# Define the eval dataset
eval_dataset = types.common.EvaluationDataset()
# Reference the pandas dataframe
eval_dataset.eval_dataset_df=eval_dataset_df
Casi d'uso di traduzione
L'esempio seguente mostra i dati di input per le metriche di traduzione:
source = [
"Dem Feuer konnte Einhalt geboten werden",
"Schulen und Kindergärten wurden eröffnet.",
]
response = [
"The fire could be stopped",
"Schools and kindergartens were open",
]
reference = [
"They were able to control the fire.",
"Schools and kindergartens opened",
]
eval_dataset_df = pd.DataFrame({
"source": source,
"response": response,
"reference": reference,
})
# Define the eval dataset
eval_dataset = types.common.EvaluationDataset()
# Reference the pandas dataframe
eval_dataset.eval_dataset_df=eval_dataset_df
Best practice
Segui queste best practice quando definisci il set di dati di valutazione:
- Fornisci esempi che rappresentano i tipi di input elaborati dai modelli in produzione.
- Il set di dati deve includere almeno un esempio di valutazione. Ti consigliamo di utilizzare circa 100 esempi per garantire metriche aggregate di alta qualità e risultati statisticamente significativi. Questa dimensione contribuisce a stabilire un livello di confidenza più elevato nei risultati di valutazione aggregati, riducendo al minimo l'influenza dei valori anomali e garantendo che le metriche di prestazioni riflettano le reali capacità del modello in diversi scenari. La velocità di miglioramento della qualità delle metriche aggregate tende a diminuire quando vengono forniti più di 400 esempi.