Esegui AutoSxS per eseguire la valutazione basata su modelli a coppie

Questa pagina introduce come eseguire la valutazione basata su modelli a coppie usando AutoSxS, uno strumento eseguito tramite il servizio della pipeline di valutazione. Spieghiamo come puoi utilizzare AutoSxS tramite l'API Vertex AI, l'SDK Vertex AI per Python o la console Google Cloud.

AutoSxS

Automatic side-by-side (AutoSxS) è uno strumento di valutazione basato su modelli a coppie, che viene eseguito tramite il servizio di pipeline di valutazione. AutoSxS può essere utilizzato per valutare le prestazioni dei modelli di IA generativa in Vertex AI Model Registry o delle previsioni pregenerate, che consentono di supportare i modelli di base di Vertex AI, i modelli di IA generativa ottimizzati e i modelli linguistici di terze parti. AutoSxS utilizza un automatico per decidere quale modello fornisce la risposta migliore a un prompt. È disponibile on demand e valuta modelli linguistici con prestazioni paragonabili a quelle dei classificatori umani.

Il responsabile della valutazione automatica

A livello generale, il diagramma mostra come AutoSxS confronta le previsioni dei modelli A e B con un terzo modello, il responsabile della valutazione automatica.

Panoramica del funzionamento di AutoSxS

I modelli A e B ricevono prompt di input e ogni modello genera risposte che vengono inviate al responsabile della valutazione automatica. Analogamente a un classificatore umano, un classificatore automatico è un modello linguistico che valuta la qualità delle risposte del modello in base a una richiesta di inferenza originale. Con AutoSxS, il responsabile della valutazione automatica confronta la qualità di due risposte del modello in base alle istruzioni di inferenza utilizzando un insieme di criteri. I criteri vengono utilizzati per determinare quale modello ha ottenuto il rendimento migliore confrontando i risultati del Modello A con quelli del Modello B. L'autore della valutazione genera le preferenze di risposta come metriche aggregate e restituisce spiegazioni sulle preferenze e punteggi di confidenza per ogni esempio. Per ulteriori informazioni, consulta la tabella di giudizio.

Modelli supportati

AutoSxS supporta la valutazione di qualsiasi modello quando vengono fornite previsioni pregenerate. AutoSxS supporta inoltre la generazione automatica delle risposte per qualsiasi modello in Vertex AI Model Registry che supporti la previsione batch su Vertex AI.

Se il tuo modello di testo non è supportato da Vertex AI Model Registry, AutoSxS accetta anche previsioni pregenerate archiviate come JSONL in Cloud Storage o in una tabella BigQuery. Per i prezzi, consulta Generazione del testo.

Attività e criteri supportati

AutoSxS supporta la valutazione dei modelli per le attività di riepilogo e risposta alle domande. I criteri di valutazione sono predefiniti per ogni attività, il che rende la valutazione del linguaggio più oggettiva e migliora la qualità delle risposte.

I criteri sono elencati per attività.

Riassunto

L'attività summarization ha un limite di token di 4096 input.

Di seguito è riportato l'elenco dei criteri di valutazione per summarization:

Criteri
1. Segue le istruzioni In che misura la risposta del modello dimostra una comprensione dell'istruzione del prompt?
2. A terra La risposta include solo informazioni provenienti dal contesto di inferenza e dall'istruzione di inferenza?
3. Completa In che misura il modello acquisisce i dettagli chiave nel riepilogo?
4. Sintesi Il riepilogo è dettagliato? Include il linguaggio floreale? È troppo conciso?

Risposta alla domanda

L'attività question_answering ha un limite di token di 4096 input.

Di seguito è riportato l'elenco dei criteri di valutazione per question_answering:

Criteri
1. Risponde completamente alla domanda La risposta risponde completamente alla domanda.
2. A terra La risposta include solo informazioni provenienti dal contesto dell'istruzione e dall'istruzione di inferenza?
3. Pertinenza Il contenuto della risposta è correlato alla domanda?
4. Completa In che misura il modello acquisisce i dettagli chiave della domanda?

Prepara il set di dati di valutazione per AutoSxS

Questa sezione descrive in dettaglio i dati da fornire nel set di dati di valutazione di AutoSxS e le best practice per la creazione del set di dati. Gli esempi dovrebbero rispecchiare gli input del mondo reale che i tuoi modelli potrebbero incontrare in produzione e contrastare al meglio il comportamento dei modelli live.

Formato del set di dati

AutoSxS accetta un singolo set di dati di valutazione con uno schema flessibile. Il set di dati può essere una tabella BigQuery o archiviato come Righe JSON in Cloud Storage.

Ogni riga del set di dati di valutazione rappresenta un singolo esempio. Le colonne sono una delle seguenti:

  • Colonne ID: utilizzate per identificare ogni esempio univoco.
  • Colonne di dati: utilizzate per compilare i modelli di prompt. Consulta Parametri dei prompt.
  • Previsioni pregenerate: previsioni effettuate dallo stesso modello utilizzando lo stesso prompt. L'utilizzo delle previsioni pregenerate consente di risparmiare tempo e risorse.
  • Preferenze umane empiriche: utilizzato per confrontare AutoSxS con i tuoi dati sulle preferenze basate su dati empirici reali quando vengono fornite previsioni pregenerate per entrambi i modelli.

Ecco un esempio di set di dati di valutazione in cui context e question sono colonne di dati, mentre model_b_response contiene previsioni pregenerate.

context question model_b_response
Alcuni potrebbero pensare che l'acciaio sia il materiale più duro o il titanio, ma il diamante è in realtà il materiale più duro. Qual è il materiale più resistente? Il diamante è il materiale più duro. È più duro dell'acciaio o del titanio.

Per saperne di più su come chiamare AutoSxS, consulta Eseguire la valutazione del modello. Per maggiori dettagli sulla lunghezza del token, vedi Attività e criteri supportati. Per caricare i dati in Cloud Storage, consulta Caricare il set di dati di valutazione in Cloud Storage.

Parametri della richiesta

Molti modelli linguistici prendono i parametri dei prompt come input anziché una singola stringa di prompt. Ad esempio, chat-bison utilizza diversi parametri dei prompt (messaggi, esempi, contesto), che compongono parti del prompt. Tuttavia, text-bison ha un solo parametro del prompt, denominato prompt, che contiene l'intero prompt.

Spieghiamo come puoi specificare in modo flessibile i parametri del prompt del modello durante l'inferenza e la valutazione. AutoSxS ti offre la flessibilità di chiamare modelli linguistici con input previsti diversi, tramite parametri di prompt basati su modelli.

Inferenza

Se alcuni dei modelli non hanno previsioni pregenerate, AutoSxS utilizza la previsione batch di Vertex AI per generare risposte. È necessario specificare i parametri di prompt di ogni modello.

In AutoSxS, puoi fornire una singola colonna nel set di dati di valutazione come parametro di richiesta.

{'some_parameter': {'column': 'my_column'}}

In alternativa, puoi definire i modelli, utilizzando le colonne del set di dati di valutazione come variabili, per specificare i parametri dei prompt:

{'some_parameter': {'template': 'Summarize the following: {{ my_column }}.'}}

Quando forniscono i parametri dei prompt del modello per l'inferenza, gli utenti possono utilizzare la parola chiave default_instruction protetta come argomento del modello, che viene sostituito con l'istruzione di inferenza predefinita per l'attività specificata:

model_prompt_parameters = {
        'prompt': {'template': '{{ default_instruction }}: {{ context }}'},
}

Se generi previsioni, fornisci i parametri del prompt del modello e una colonna di output. Ad esempio, text-bison utilizza "prompt" per l'input e "content" per l'output. Segui questi passaggi:

  1. Identifica gli input e gli output necessari dai modelli valutati.
  2. Definisci gli input come parametri del prompt del modello.
  3. Passa l'output alla colonna della risposta.
model_a_prompt_parameters={
    'prompt': {
        'template': {
            'Answer the following question from the point of view of a college professor: {{ context }}\n{{ question }}'
        },
    },
},
response_column_a='content',  # Column in Model A response.
response_column_b='model_b_response',  # Column in eval dataset.

Valutazione

Proprio come devi fornire i parametri di prompt per l'inferenza, devi anche fornire parametri di prompt per la valutazione. L'autore della valutazione richiede i seguenti parametri di prompt:

Parametro di richiesta di responsabile della valutazione automatica Configurabile dall'utente? Descrizione Esempio
Istruzioni di valutazione automatica No Un'istruzione calibrata che descrive i criteri che l'autore della valutazione deve utilizzare per valutare le risposte fornite. Scegli la risposta che risponde alla domanda e segue meglio le istruzioni.
Istruzioni di inferenza Una descrizione dell'attività che ogni modello candidato deve eseguire. Rispondi con precisione alla domanda: qual è il materiale più difficile?
Contesto di inferenza Contesto aggiuntivo per l'attività che viene eseguita. Sebbene il titanio e il diamante siano entrambi più duri del rame, il diamante ha una durezza di 98, mentre il titanio ha un punteggio di 36. Una valutazione più alta indica una durezza superiore.
Risposte N.1 Una coppia di risposte da valutare, una per ogni modello candidato. Rombo

1 Puoi configurare il parametro del prompt solo tramite risposte pregenerate.

Esempio di codice utilizzando i parametri:

autorater_prompt_parameters={
    'inference_instruction': {
        'template': 'Answer the following question from the point of view of a college professor: {{ question }}.'
    },
    'inference_context': {
        'column': 'context'
    }
}

I modelli A e B possono avere istruzioni di inferenza e contesto con formattazione diversa, indipendentemente dal fatto che vengano fornite o meno le stesse informazioni. Ciò significa che il responsabile della valutazione automatica prende un'istruzione di inferenza e un contesto separati ma singoli.

Esempio di set di dati di valutazione

Questa sezione fornisce un esempio di set di dati di valutazione delle attività con risposta a domande, incluse le previsioni pregenerate per il modello B. In questo esempio, AutoSxS esegue l'inferenza solo per il modello A. Forniamo una colonna id per distinguere gli esempi con la stessa domanda e lo stesso contesto.

{
 "id": 1,
 "question": "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.",
  "model_b_response": "Diamond is the hardest material. It is harder than steel or titanium."
}
{
  "id": 2,
  "question": "What is the highest mountain in the world?",
  "context": "K2 and Everest are the two tallest mountains, with K2 being just over 28k feet and Everest being 29k feet tall.",
  "model_b_response": "Mount Everest is the tallest mountain, with a height of 29k feet."
}
{
  "id": 3,
  "question": "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.",
  "model_b_response": "Francis Ford Coppola directed The Godfather."
}
{
  "id": 4,
  "question": "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.",
  "model_b_response": "John Smith."
}

Best practice

Segui queste best practice quando definisci 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 circa 100 esempi per garantire metriche aggregate di alta qualità. Il tasso di miglioramento della qualità delle metriche aggregate tende a diminuire se vengono forniti più di 400 esempi.
  • Per una guida alla scrittura di prompt, consulta Progettare prompt di testo.
  • Se utilizzi previsioni pregenerate per entrambi i modelli, includi le previsioni pregenerate in una colonna del set di dati di valutazione. Fornire previsioni pregenerate è utile, perché ti consente di confrontare l'output di modelli che non sono presenti nel Registry di modelli Vertex e di riutilizzare le risposte.

Esegui la valutazione del modello

Puoi valutare i modelli utilizzando l'API REST, l'SDK Vertex AI per Python o la console Google Cloud.

Utilizza questa sintassi per specificare il percorso del modello:

  • Modello publisher: publishers/PUBLISHER/models/MODEL Esempio: publishers/google/models/text-bison
  • Modello ottimizzato: projects/PROJECT_NUMBER/locations/LOCATION/models/MODEL@VERSION Esempio: projects/123456789012/locations/us-central1/models/1234567890123456789

REST

Per creare un job di valutazione del modello, invia una richiesta POST utilizzando il metodo pipelineJobs.

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PIPELINEJOB_DISPLAYNAME : nome visualizzato per pipelineJob.
  • PROJECT_ID : progetto Google Cloud che esegue i componenti della pipeline.
  • LOCATION : regione per l'esecuzione dei componenti della pipeline. L'app us-central1 è supportata.
  • OUTPUT_DIR : URI Cloud Storage per archiviare l'output di valutazione.
  • EVALUATION_DATASET : tabella BigQuery o un elenco separato da virgole di percorsi Cloud Storage a un set di dati JSONL contenente esempi di valutazione.
  • TASK: attività di valutazione, che può essere una delle seguenti: [summarization, question_answering].
  • ID_COLUMNS : colonne che distinguono esempi di valutazione univoci.
  • AUTORATER_PROMPT_PARAMETERS : parametri dei prompt di valutazione automatica mappati a colonne o modelli. I parametri previsti sono: inference_instruction (dettagli su come eseguire un'attività) e inference_context (contenuti a cui fare riferimento per eseguire l'attività). Ad esempio, {'inference_context': {'column': 'my_prompt'}} usa la colonna "my_prompt" del set di dati di valutazione per il contesto dell'autore della valutazione.
  • RESPONSE_COLUMN_A : il nome di una colonna nel set di dati di valutazione contenente previsioni predefinite o il nome della colonna nell'output del modello A contenente le previsioni. Se non viene fornito alcun valore, verrà dedotto il nome della colonna di output del modello corretto.
  • RESPONSE_COLUMN_B : il nome di una colonna nel set di dati di valutazione contenente previsioni predefinite o il nome della colonna nell'output del Modello B che contiene le previsioni. Se non viene fornito alcun valore, verrà dedotto il nome della colonna di output del modello corretto.
  • MODEL_A (facoltativo): un nome completo della risorsa del modello (projects/{project}/locations/{location}/models/{model}@{version}) o un nome della risorsa del modello del publisher (publishers/{publisher}/models/{model}). Se vengono specificate le risposte del Modello A, questo parametro non deve essere fornito.
  • MODEL_B (facoltativo): un nome completo della risorsa del modello (projects/{project}/locations/{location}/models/{model}@{version}) o un nome della risorsa del modello del publisher (publishers/{publisher}/models/{model}). Se vengono specificate le risposte del Modello B, questo parametro non deve essere fornito.
  • MODEL_A_PROMPT_PARAMETERS (Facoltativo): i parametri del modello di prompt del modello A sono stati mappati a colonne o modelli. Se le risposte del modello A sono predefinite, questo parametro non deve essere fornito. Esempio: {'prompt': {'column': 'my_prompt'}} usa la colonna my_prompt del set di dati di valutazione per il parametro del prompt denominato prompt.
  • MODEL_B_PROMPT_PARAMETERS (facoltativo): i parametri del modello di prompt del modello B mappati a colonne o modelli. Se le risposte del Modello B sono predefinite, questo parametro non deve essere fornito. Esempio: {'prompt': {'column': 'my_prompt'}} usa la colonna my_prompt del set di dati di valutazione per il parametro del prompt denominato prompt.

Corpo JSON richiesta

  {
    "displayName": "PIPELINEJOB_DISPLAYNAME",
    "runtimeConfig": {
        "gcsOutputDirectory": "gs://OUTPUT_DIR",
        "parameterValues": {
            "evaluation_dataset": "EVALUATION_DATASET",
            "id_columns": ["ID_COLUMNS"],
            "task": "TASK",
            "autorater_prompt_parameters": AUTORATER_PROMPT_PARAMETERS,
            "response_column_a": "RESPONSE_COLUMN_A",
            "response_column_b": "RESPONSE_COLUMN_B",
            "model_a": "MODEL_A",
            "model_a_prompt_parameters": MODEL_A_PROMPT_PARAMETERS,
            "model_b": "MODEL_B",
            "model_b_prompt_parameters": MODEL_B_PROMPT_PARAMETERS,
        },
    },
    "templateUri": "https://us-kfp.pkg.dev/ml-pipeline/google-cloud-registry/autosxs-template/default"
  }

Utilizza curl per inviare la richiesta.

curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/pipelineJobs"

Risposta

  "state": "PIPELINE_STATE_PENDING",
  "labels": {
    "vertex-ai-pipelines-run-billing-id": "1234567890123456789"
  },
  "runtimeConfig": {
    "gcsOutputDirectory": "gs://my-evaluation-bucket/output",
    "parameterValues": {
      "evaluation_dataset": "gs://my-evaluation-bucket/output/data.json",
      "id_columns": [
        "context"
      ],
      "task": "question_answering",
      "autorater_prompt_parameters": {
        "inference_instruction": {
          "template": "Answer the following question: {{ question }} }."
        },
        "inference_context": {
          "column": "context"
        }
      },
      "response_column_a": "",
      "response_column_b": "response_b",
      "model_a": "publishers/google/models/text-bison@001",
      "model_a_prompt_parameters": {
        "prompt": {
          "template": "Answer the following question from the point of view of a college professor: {{ question }}\n{{ context }} }"
        }
      },
      "model_b": "",
      "model_b_prompt_parameters": {}
    }
  },
  "serviceAccount": "[email protected]",
  "templateUri": "https://us-kfp.pkg.dev/ml-pipeline/google-cloud-registry/autosxs-template/default",
  "templateMetadata": {
    "version": "sha256:7366b784205551ed28f2c076e841c0dbeec4111b6df16743fc5605daa2da8f8a"
  }
}

SDK Vertex AI per Python

Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per ulteriori informazioni sull'API Python, consulta la pagina relativa all'SDK Vertex AI per l'API Python.

Per ulteriori informazioni sui parametri della pipeline, consulta la documentazione di riferimento dei componenti di pipeline di Google Cloud.

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PIPELINEJOB_DISPLAYNAME : nome visualizzato per pipelineJob.
  • PROJECT_ID : progetto Google Cloud che esegue i componenti della pipeline.
  • LOCATION : regione per l'esecuzione dei componenti della pipeline. L'app us-central1 è supportata.
  • OUTPUT_DIR : URI Cloud Storage per archiviare l'output di valutazione.
  • EVALUATION_DATASET : tabella BigQuery o un elenco separato da virgole di percorsi Cloud Storage a un set di dati JSONL contenente esempi di valutazione.
  • TASK: attività di valutazione, che può essere una delle seguenti: [summarization, question_answering].
  • ID_COLUMNS : colonne che distinguono esempi di valutazione univoci.
  • AUTORATER_PROMPT_PARAMETERS : parametri dei prompt di valutazione automatica mappati a colonne o modelli. I parametri previsti sono: inference_instruction (dettagli su come eseguire un'attività) e inference_context (contenuti a cui fare riferimento per eseguire l'attività). Ad esempio, {'inference_context': {'column': 'my_prompt'}} usa la colonna "my_prompt" del set di dati di valutazione per il contesto dell'autore della valutazione.
  • RESPONSE_COLUMN_A : il nome di una colonna nel set di dati di valutazione contenente previsioni predefinite o il nome della colonna nell'output del modello A contenente le previsioni. Se non viene fornito alcun valore, verrà dedotto il nome della colonna di output del modello corretto.
  • RESPONSE_COLUMN_B : il nome di una colonna nel set di dati di valutazione contenente previsioni predefinite o il nome della colonna nell'output del Modello B che contiene le previsioni. Se non viene fornito alcun valore, verrà dedotto il nome della colonna di output del modello corretto.
  • MODEL_A (facoltativo): un nome completo della risorsa del modello (projects/{project}/locations/{location}/models/{model}@{version}) o un nome della risorsa del modello del publisher (publishers/{publisher}/models/{model}). Se vengono specificate le risposte del Modello A, questo parametro non deve essere fornito.
  • MODEL_B (facoltativo): un nome completo della risorsa del modello (projects/{project}/locations/{location}/models/{model}@{version}) o un nome della risorsa del modello del publisher (publishers/{publisher}/models/{model}). Se vengono specificate le risposte del Modello B, questo parametro non deve essere fornito.
  • MODEL_A_PROMPT_PARAMETERS (Facoltativo): i parametri del modello di prompt del modello A sono stati mappati a colonne o modelli. Se le risposte del modello A sono predefinite, questo parametro non deve essere fornito. Esempio: {'prompt': {'column': 'my_prompt'}} usa la colonna my_prompt del set di dati di valutazione per il parametro del prompt denominato prompt.
  • MODEL_B_PROMPT_PARAMETERS (facoltativo): i parametri del modello di prompt del modello B mappati a colonne o modelli. Se le risposte del Modello B sono predefinite, questo parametro non deve essere fornito. Esempio: {'prompt': {'column': 'my_prompt'}} usa la colonna my_prompt del set di dati di valutazione per il parametro del prompt denominato prompt.
import os
from google.cloud import aiplatform
parameters = {
    'evaluation_dataset': 'EVALUATION_DATASET',
    'id_columns': ['ID_COLUMNS'],
    'task': 'TASK',
    'autorater_prompt_parameters': AUTORATER_PROMPT_PARAMETERS,
    'response_column_a': 'RESPONSE_COLUMN_A',
    'response_column_b': 'RESPONSE_COLUMN_B',
    'model_a': 'MODEL_A',
    'model_a_prompt_parameters': MODEL_A_PROMPT_PARAMETERS,
    'model_b': 'MODEL_B',
    'model_b_prompt_parameters': MODEL_B_PROMPT_PARAMETERS,
}
aiplatform.init(project='PROJECT_ID', location='LOCATION', staging_bucket='gs://OUTPUT_DIR')
aiplatform.PipelineJob(
    display_name='PIPELINEJOB_DISPLAYNAME',
    pipeline_root=os.path.join('gs://OUTPUT_DIR', 'PIPELINEJOB_DISPLAYNAME'),
    template_path=(
      'https://us-kfp.pkg.dev/ml-pipeline/google-cloud-registry/autosxs-template/default'),
    parameter_values=parameters,
).run()

Console

Per creare un job di valutazione del modello Pair utilizzando la console Google Cloud, esegui questi passaggi:

  1. Inizia con un modello di base Google o utilizza un modello già esistente nel tuo Vertex AI Model Registry:

    • Per valutare un modello di base di Google:

      1. Vai a Model Garden di Vertex AI e seleziona un modello che supporti la valutazione accoppiata, come text-bison.

        Vai a Model Garden

      2. Fai clic su Valuta.

      3. Nella finestra popup visualizzata, fai clic su Seleziona per selezionare una versione del modello.

      4. Un riquadro Salva modello potrebbe chiederti di salvare una copia del modello in Vertex AI Model Registry se non ne hai già una copia. Inserisci un Nome modello e fai clic su Salva.

      5. Viene visualizzata la pagina Crea valutazione. Per il passaggio Valuta il metodo, seleziona Valuta questo modello sulla base di un altro modello.

      6. Fai clic su Continua.

    • Per valutare un modello esistente in Vertex AI Model Registry:

      1. Vai alla pagina Vertex AI Model Registry:

        Vai a Vertex AI Model Registry

      2. Fai clic sul nome del modello da valutare. Assicurati che il tipo di modello abbia il supporto per la valutazione a coppie. Ad esempio, text-bison.

      3. Nella scheda Valuta, fai clic su SxS.

      4. Fai clic su Crea valutazione SxS.

  2. Per ogni passaggio nella pagina di creazione della valutazione, inserisci le informazioni richieste e fai clic su Continua:

    1. Per il passaggio Set di dati di valutazione, seleziona un obiettivo di valutazione e un modello da confrontare con il modello selezionato. Seleziona un set di dati di valutazione e inserisci le colonne ID (colonne della risposta).

    2. Per il passaggio Impostazioni del modello, specifica se vuoi utilizzare le risposte del modello già presenti nel tuo set di dati o se vuoi utilizzare la previsione batch di Vertex AI per generare le risposte. Specifica le colonne della risposta per entrambi i modelli. Per l'opzione di previsione batch di Vertex AI, puoi specificare i parametri del prompt del modello di inferenza.

    3. Per il passaggio Impostazioni di Autorater, inserisci i parametri della richiesta di Autorater e una posizione di output per le valutazioni.

  3. Fai clic su Start Evaluation (Avvia valutazione).

Visualizza i risultati di una valutazione

Puoi trovare i risultati della valutazione in Vertex AI Pipelines ispezionando i seguenti artefatti prodotti dalla pipeline AutoSxS:

Giudizi

AutoSxS restituisce giudizi (metriche a livello di esempio) che aiutano gli utenti a comprendere il rendimento del modello a livello di esempio. Le sentenze includono le seguenti informazioni:

  • Prompt di inferenza
  • Risposte del modello
  • Decisioni del responsabile della valutazione automatica
  • Spiegazioni sulle classificazioni
  • Punteggi di confidenza

I giudizi possono essere scritti in Cloud Storage in formato JSONL o in una tabella BigQuery con le seguenti colonne:

Colonna Descrizione
colonne ID Colonne che distinguono esempi di valutazione univoci.
inference_instruction Istruzione utilizzata per generare le risposte del modello.
inference_context Contesto utilizzato per generare le risposte del modello.
response_a La risposta del modello A, date l'istruzione di inferenza e il contesto.
response_b La risposta del modello B, date istruzioni di inferenza e contesto.
choice Il modello con la risposta migliore. I valori possibili sono Model A, Model B o Error. Error significa che un errore ha impedito al responsabile della valutazione automatica di determinare se la risposta del modello A o del modello B era migliore.
confidence Un punteggio compreso tra 0 e 1, che indica quanta fiducia ha avuto il responsabile della valutazione automatica nella sua scelta.
explanation Il motivo della scelta del responsabile della valutazione automatica.

Metriche aggregate

AutoSxS calcola le metriche aggregate (percentuale di vincite) utilizzando la tabella dei giudizi. Se non vengono forniti dati di preferenza umana, vengono generate le seguenti metriche aggregate:

Metrica Descrizione
Percentuale vincite del modello A AutoRater Percentuale di tempo in cui il responsabile della valutazione automatica ha deciso che il modello A ha avuto la risposta migliore.
Percentuale vincite del modello B AutoRater Percentuale di tempo in cui il responsabile della valutazione automatica ha deciso che il modello B ha avuto la risposta migliore.

Per comprendere meglio la percentuale vincite, guarda i risultati basati su righe e le spiegazioni dell'autore della valutazione per determinare se i risultati e le spiegazioni sono in linea con le tue aspettative.

Metriche di allineamento con preferenze umane

Se vengono forniti dati di preferenza umana, AutoSxS genera le seguenti metriche:

Metrica Descrizione
Percentuale vincite del modello A AutoRater Percentuale di tempo in cui il responsabile della valutazione automatica ha deciso che il modello A ha avuto la risposta migliore.
Percentuale vincite del modello B AutoRater Percentuale di tempo in cui il responsabile della valutazione automatica ha deciso che il modello B ha avuto la risposta migliore.
Percentuale vincite del modello A preferenza umana Percentuale di tempo in cui le persone hanno deciso che il modello A ha avuto la risposta migliore.
Percentuale vincite del modello B con preferenza umana Percentuale di tempo in cui le persone hanno deciso che il modello B ha avuto la risposta migliore.
VP Numero di esempi in cui sia il responsabile automatico sia le preferenze umane indicavano che il modello A ha avuto la risposta migliore.
FP Numero di esempi in cui il responsabile della valutazione automatica ha scelto il Modello A come risposta migliore, ma la preferenza umana era che il Modello B avesse la risposta migliore.
VN Numero di esempi in cui sia il responsabile della valutazione automatica sia le preferenze umane indicavano che il Modello B ha ottenuto la risposta migliore.
FN Numero di esempi in cui il responsabile della valutazione automatica ha scelto il Modello B come risposta migliore, ma la preferenza umana era che il Modello A avesse la risposta migliore.
Accuratezza Percentuale di tempo in cui il responsabile della valutazione automatica ha accettato con i revisori umani.
Precisione Percentuale di tempo in cui sia il responsabile della valutazione automatica sia gli utenti hanno ritenuto che il modello A avesse una risposta migliore, tra tutti i casi in cui quest'ultimo ritiene che il modello A abbia avuto una risposta migliore.
Richiamo Percentuale di tempo in cui sia il responsabile della valutazione automatica sia gli esseri umani hanno ritenuto che il Modello A avesse una risposta migliore, tra tutti i casi in cui gli esseri umani pensavano che il Modello A avesse una risposta migliore.
F1 Media armonica di precisione e richiamo.
Cohen's Kappa Una misurazione dell'accordo tra l'autore della valutazione automatica e i revisori umani che prende in considerazione la probabilità di un accordo casuale. Cohen suggerisce la seguente interpretazione:
-1.0-0.0Contratto peggiore o equivalente al caso casuale
0.0-0.2Accordo leggero
0.2-0.4Accordo equo
0.4-0.6Moderazione del consenso
0.6-0.8Accordo sostanziale
0.8-1.0Contratto quasi perfetto
1.0Contratto perfetto

Casi d'uso di AutoSxS

Puoi esplorare come utilizzare AutoSxS in tre casi d'uso.

Confronta modelli

Valuta un modello proprietario ottimizzato (1p) rispetto a un modello 1p di riferimento.

Puoi specificare che l'inferenza viene eseguita su entrambi i modelli contemporaneamente.

Figura 2. Entrambi i modelli di inferenza vengono eseguiti

Questo esempio di codice valuta un modello ottimizzato di Vertex Model Registry in base a un modello di riferimento dello stesso registro.

# Evaluation dataset schema:
#   my_question: str
#   my_context: str
parameters = {
    'evaluation_dataset': DATASET,
    'id_columns': ['my_context'],
    'task': 'question_answering',
    'autorater_prompt_parameters': {
      'inference_instruction': {'column': 'my_question'},
      'inference_context': {'column': 'my_context'},
  },
    'model_a': 'publishers/google/models/text-bison@001',
    'model_a_prompt_parameters': {QUESTION: {'template': '{{my_question}}\nCONTEXT: {{my_context}}'}},
  'response_column_a': 'content',
    'model_b': 'projects/abc/locations/abc/models/tuned_bison',
    'model_b_prompt_parameters': {'prompt': {'template': '{{my_context}}\n{{my_question}}'}},
  'response_column_b': 'content',
}

Confrontare le previsioni

Valuta un modello di terze parti ottimizzato (3p) rispetto a un modello di terze parti di riferimento.

Puoi saltare l'inferenza fornendo direttamente le risposte del modello.

Figura 3. È eseguito un solo modello di inferenza

Questo esempio di codice valuta un modello di terze parti ottimizzato a fronte di un modello di terze parti di riferimento.

# Evaluation dataset schema:
#   my_question: str
#   my_context: str
#   response_b: str

parameters = {
    'evaluation_dataset': DATASET,
    'id_columns': ['my_context'],
    'task': 'question_answering',
    'autorater_prompt_parameters':
        'inference_instruction': {'column': 'my_question'},
        'inference_context': {'column': 'my_context'},
    },
    'response_column_a': 'content',
    'response_column_b': 'response_b',
}

Controlla l'allineamento

Tutte le attività supportate sono state confrontate utilizzando i dati dei classificatori umani per garantire che le risposte dei classificatori automatici siano in linea con le preferenze umane. Se vuoi confrontare AutoSxS per i tuoi casi d'uso, fornisci dati con preferenze umane direttamente ad AutoSxS, che genera statistiche aggregate sull'allineamento.

Per verificare l'allineamento rispetto a un set di dati con preferenze umane, puoi specificare entrambi gli output (risultati delle previsioni) al responsabile della valutazione automatica. Puoi anche fornire i risultati di inferenza.

Figura 4. Output di entrambi i modelli forniti al responsabile della valutazione automatica

Questo esempio di codice verifica che i risultati e le spiegazioni del responsabile della valutazione automatica siano in linea con le tue aspettative.

# Evaluation dataset schema:
#  my_question: str
#  my_context: str
#   response_a: str
#   response_b: str
#   actual: str
parameters = {
    'evaluation_dataset': DATASET,
    'id_columns': ['my_context'],
    'task': 'question_answering',
    'autorater_prompt_parameters': {
      'inference_instruction': {'column': 'my_question'},
      'inference_context': {'column': 'my_context'},
  },
  'response_column_a': 'response_a',
  'response_column_b': 'response_b',
  'human_preference_column': 'actual',
}

Passaggi successivi