Prepara il set di dati di valutazione

Per il servizio di valutazione dell'IA generativa, 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, eventualmente, 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 input Contenuti del campo di immissione
prompt 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 (obbligatorio per le metriche a due) La risposta di inferenza LLM di riferimento 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, il servizio di valutazione dell'IA generativa può generare automaticamente response e baseline_model_response con il modello specificato.

Per altri casi d'uso della valutazione, potrebbe essere necessario 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 (obbligatorio per le metriche a due) La risposta di inferenza LLM di riferimento utilizzata per confrontare la risposta LLM nella valutazione a coppie, che si basa 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 di confronto.

Tipo input Contenuti del campo di immissione
risposta La risposta all'inferenza LLM da valutare.
riferimento I dati empirici reali con cui confrontare la risposta dell'LLM.

Metriche di traduzione

Il set di dati deve fornire una risposta dal modello. A seconda del caso d'uso, devi anche fornire un riferimento di confronto, un input nella lingua di origine o una combinazione di entrambi.

Tipo input Contenuti del campo di immissione
origine Testo di origine nella lingua originale da cui è stata tradotta la previsione.
risposta La risposta all'inferenza LLM da valutare.
riferimento I dati empirici reali con cui confrontare la risposta dell'LLM. Deve essere 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 di fatto:

Tipo 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 IA generativa nel turno corrente.
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 tue metriche. Per ulteriori 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 modelli, consulta Adattare un modello di prompt della 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 di Pandas. Tieni presente che qui vengono mostrati solo alcuni record di dati come esempio e che i set di dati di valutazione di solito contengono almeno 100 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 sintesi per dimostrare 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 = pd.DataFrame({
    "prompt": prompts,
    "response": responses,
})

Metriche basate su modelli a coppie

L'esempio seguente mostra un caso di risposta a domande con libro aperto per dimostrare un set di dati di esempio per le metriche basate su modelli a due.

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 relative all'utilizzo dello strumento (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,
})

Casi d'uso della 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 = pd.DataFrame({
      "source": source,
      "response": response,
      "reference": reference,
  })

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. Questo valore contribuisce a stabilire un livello di confidenza più elevato nei risultati della valutazione aggregata, riducendo al minimo l'influenza degli outlier e garantendo che le metriche sul rendimento riflettano le reali 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.

Passaggi successivi