Per Gen AI Evaluation Service, il set di dati di valutazione è in genere costituito dalla risposta del modello che si vuole valutare, dai dati di input utilizzati per generare la risposta e possibilmente dalla risposta basata su dati empirici reali.
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 input | Contenuti del campo di immissione |
---|---|
richiesta | Input utente per il modello o l'applicazione di AI generativa. In alcuni casi è facoltativo. |
risposta | La risposta all'inferenza LLM da valutare. |
baseline_model_response (richiesto per le metriche accoppiate) | La risposta di inferenza LLM di base utilizzata per confrontare la risposta LLM nella valutazione a coppie |
Se utilizzi il modulo di valutazione dell'IA generativa dell'SDK Vertex AI per Python, Gen AI Evaluation Service può generare automaticamente response
e baseline_model_response
con il modello specificato.
Per altri casi d'uso relativi alla valutazione, potresti dover fornire ulteriori informazioni:
Multi-turno o chat
Tipo input | Contenuti del campo di immissione |
---|---|
cronologia | La cronologia della conversazione tra utente e modello prima del turno corrente. |
prompt | Input dell'utente per il modello o l'applicazione di IA generativa nel turno corrente. |
risposta | La risposta di inferenza LLM da valutare, basata sulla cronologia e sul prompt di svolta attuale. |
baseline_model_response (richiesto per le metriche accoppiate) | La risposta di inferenza LLM di base utilizzata per confrontare la risposta LLM nella valutazione a coppie, che si basa sulla cronologia e sul prompt di svolta attuale. |
Metriche basate sul calcolo
Il set di dati deve fornire sia la risposta del modello linguistico di grandi dimensioni (LLM) sia un riferimento da confrontare.
Tipo input | Contenuti del campo di immissione |
---|---|
risposta | La risposta di inferenza LLM da valutare. |
riferimento | I dati empirici reali con cui confrontare la risposta dell'LLM. |
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 di dati empirici reali:
Tipo input | Contenuti del campo di immissione |
---|---|
istruzione | Parte del prompt dell'utente di input. Si riferisce all'istruzione di inferenza inviata al tuo LLM. Ad esempio, "Riassumi il seguente testo" è un'istruzione. |
context | Input utente per il modello o l'applicazione di IA generativa nella fase attuale. |
riferimento | I dati empirici reali con cui confrontare la risposta dell'LLM. |
Gli input richiesti per il set di dati di valutazione devono essere coerenti con le metriche. Per maggiori dettagli sulla personalizzazione delle metriche, consulta Definire le metriche di valutazione ed Eseguire la valutazione. Per ulteriori dettagli su come includere i dati di riferimento nelle metriche basate su modello, consulta Adattare un modello di prompt di metrica ai dati di input.
Importa 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 che utilizzano il formato Dataframe Pandas. Tieni presente che qui vengono mostrati solo diversi record di dati come esempio e che i set di dati di valutazione di solito 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 monofunzionali
Di seguito è riportato un caso di riassunto per dimostrare un set di dati di esempio per metriche basate su modelli pointwise:
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 = pd.DataFrame({
"prompt": prompts,
"response": responses,
})
Metriche basate su modelli a coppie
L'esempio seguente mostra un caso di risposta alle domande in formato aperto per dimostrare un set di dati di esempio per le metriche basate su modelli Pairwise.
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 = pd.DataFrame(
{
"prompt": prompts,
"response": responses,
"baseline_model_response": baseline_model_responses,
}
)
Metriche basate su calcolo
Per le metriche basate su calcoli, spesso è richiesto reference
.
eval_dataset = 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."],
})
Metriche sull'utilizzo degli strumenti (chiamate di funzione)
L'esempio seguente mostra i dati di input per le metriche sull'utilizzo degli strumenti basate su calcoli:
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 = pd.DataFrame({
"response": json_responses,
"reference": json_references,
})
Best practice
Segui queste best practice per definire il set di dati di valutazione:
- Fornisci esempi che rappresentano i tipi di input elaborati dai tuoi modelli in produzione.
- Il set di dati deve includere almeno un esempio di valutazione. Consigliamo di utilizzare circa 100 esempi per garantire metriche aggregate di alta qualità e risultati statisticamente significativi. Queste dimensioni aiutano a stabilire un livello di confidenza più elevato nei risultati della valutazione aggregata, riducendo al minimo l'influenza degli outlier e assicurando che le metriche delle prestazioni riflettano le vere capacità del modello in diversi scenari. Il tasso di miglioramenti della qualità delle metriche aggregate tende a diminuire quando vengono forniti più di 400 esempi.