Esegui AutoSxS per eseguire una valutazione basata su coppie

Questa pagina introduce come eseguire la valutazione basata su modello di coppia utilizzando AutoSxS, uno strumento che viene eseguito attraverso il servizio della pipeline di valutazione. Me spiegare come utilizzare AutoSxS tramite l'API Vertex AI, 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 attraverso il servizio della pipeline di valutazione. AutoSxS può essere usato Valutare le prestazioni dei due modelli di IA generativa in Vertex AI Model Registry o pregenerati che consente di supportare i modelli di base Vertex AI, modelli linguistici di AI generativa ottimizzati e modelli linguistici di terze parti. AutoSxS utilizza lo strumento di valutazione automatica per decidere quale modello dà la risposta migliore a un prompt. È disponibili on demand e valuta modelli linguistici con prestazioni paragonabili a revisori umani.

Strumento di valutazione automatica

A livello generale, il diagramma mostra come AutoSxS confronta le previsioni di i modelli A e B, mentre il terzo modello è il classificatore automatico.

Panoramica del funzionamento di AutoSxS

I modelli A e B ricevono prompt di input e ogni modello genera risposte che vengono inviati all'autore della valutazione. Come un valutatore umano, un revisore è un linguaggio modello che valuta la qualità delle risposte del modello sulla base di un'inferenza originale . Con AutoSxS, lo strumento di valutazione confronta la qualità delle risposte di due modelli data le loro istruzioni di inferenza utilizzando un insieme criteri. I criteri vengono utilizzati per determinare quale modello ha registrato il rendimento migliore confrontando i risultati del Modello A con quelli del Modello B. La lo strumento di valutazione automatica restituisce le preferenze di risposta come aggregate metriche e genera spiegazioni sulle preferenze e affidabilità per ogni esempio. Per ulteriori informazioni, consulta la sentenza dalla tabella.

Modelli supportati

AutoSxS supporta la valutazione di qualsiasi modello quando le previsioni pregenerate vengono fornito. AutoSxS supporta anche la generazione automatica di risposte per qualsiasi modello in Vertex AI Model Registry che supporta la modalità batch su Vertex AI.

Se il tuo modello di testo non è supportato da Modello Vertex AI Registry, AutoSxS accetta anche previsioni pregenerate e archiviate come JSONL in Cloud Storage o in una tabella BigQuery. Per i prezzi, vedi Testo di generazione dei testi.

Attività e criteri supportati

AutoSxS supporta la valutazione dei modelli per attività di riassunto e risposta alle domande. I criteri di valutazione sono predefiniti per ogni attività e, di conseguenza, la valutazione più obiettiva e migliorare la qualità delle risposte.

I criteri sono elencati per attività.

Riassunto

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

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

Criteri
1. Segue le istruzioni In che misura la risposta del modello dimostra la comprensione dell'istruzione dal prompt?
2. A terra La risposta include solo informazioni dal contesto e dall'istruzione di inferenza?
3. Completo In che misura il modello acquisisce le chiavi dettagli nel riassunto?
4. Breve Il riassunto è dettagliato? Include il linguaggio dei fiori? È troppo conciso?

Risposta alla domanda

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

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

Criteri
1. Risponde in modo completo alla domanda La risposta risponde in modo esaustivo alla domanda.
2. A terra La risposta include solo informazioni dal contesto dell'istruzione e dall'istruzione di inferenza?
3. Pertinenza Il contenuto della risposta si riferisce alla domanda?
4. Completo In che misura il modello acquisisce le chiavi dettagli nella domanda?

prepara il set di dati di valutazione per AutoSxS

Questa sezione descrive in dettaglio i dati da fornire nella valutazione AutoSxS e best practice per la loro creazione. 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 pubblicati.

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 linee JSON in Cloud Storage.

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

  • Colonne ID: utilizzate per identificare ciascun esempio univoco.
  • Colonne di dati: utilizzate per compilare i modelli di prompt. Consulta Parametri dei prompt
  • Previsioni pregenerate: previsioni fatte dallo stesso modello utilizzando lo stesso prompt. L'utilizzo di previsioni pregenerate consente di risparmiare tempo e risorse.
  • Preferenze umane basate su dati empirici reali: questa opzione viene utilizzata per confrontare AutoSxS con i 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 e 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, mentre il diamante è in realtà il materiale più duro. Qual è il materiale più duro? Il diamante è il materiale più duro. È più duro dell'acciaio o del titanio.

Per ulteriori informazioni su come chiamare AutoSxS, consulta Perform model (Esegui modello) di valutazione. Per maggiori dettagli sulla lunghezza del token, vedi Attività supportate e criteri. Per caricare i dati in Cloud Storage, consulta Carica il set di dati di valutazione su Cloud Storage.

Parametri prompt

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

Descriviamo come specificare in modo flessibile i parametri del prompt del modello durante l'inferenza e durante la valutazione. AutoSxS ti offre la flessibilità di chiamare modelli linguistici con gli input previsti variano attraverso parametri dei prompt basati su modelli.

Inferenza

Se uno o più modelli non hanno previsioni pregenerate, AutoSxS utilizza Previsione batch di Vertex AI per generare risposte. Prompt di ogni modello è necessario specificare i parametri.

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

{'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 del prompt:

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

Quando fornisci i parametri del prompt del modello per l'inferenza, gli utenti possono utilizzare ha protetto default_instruction parola chiave come argomento del modello, che è sostituite 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. Vedi i seguenti esempi:

Gemini

Per i modelli Gemini, le chiavi per i parametri dei prompt del modello sono contents (obbligatorio) e system_instruction (facoltativo), che sono in linea con il corpo della richiesta di Gemini di testo.

model_a_prompt_parameters={
    'contents': {
        'column': 'context'
    },
    'system_instruction': {'template': '{{ default_instruction }}'},
},

text-bison

Ad esempio, text-bison utilizza "prompt" per input e "contenuti" della come output. Segui questi passaggi:

  1. Identificare gli input e gli output necessari ai modelli da valutare.
  2. Definisci gli input come parametri del prompt del modello.
  3. Passa l'output alla colonna di 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

Così come devi fornire i parametri dei prompt per l'inferenza, devi fornire anche parametri dei prompt per la valutazione. Lo strumento autorater richiede i seguenti parametri del prompt:

Parametro prompt dello strumento di valutazione automatica Configurabile dall'utente? Descrizione Esempio
Istruzioni strumento di valutazione automatica No Un'istruzione calibrata che descrive i criteri che l'autovalutatore dovrebbe utilizzare per valutare le risposte fornite. Scegli la risposta che risponde alla domanda e segue nel modo più efficace le istruzioni.
Istruzione di inferenza Una descrizione dell'attività che ogni modello candidato dovrebbe eseguire. Rispondi con precisione alla domanda: Qual è il materiale più difficile?
Contesto di inferenza Contesto aggiuntivo per l'attività che viene eseguita. Mentre il titanio e il diamante sono entrambi più duri del rame, il diamante ha una durezza di 98, mentre il titanio ha una valutazione di 36. Una classificazione più elevata indica una durezza maggiore.
Risposte N.1 Un paio di risposte da valutare, una per ogni modello candidato. Rombo

1 Puoi configurare il parametro prompt solo tramite diverse.

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 un contesto formattati in modo diverso, indipendentemente dal fatto che vengano fornite o meno le stesse informazioni. Ciò significa che lo strumento di valutazione automatica prende un'istruzione e un contesto di inferenza separati ma singoli.

Esempio di set di dati di valutazione

Questa sezione fornisce un esempio di set di dati per la valutazione di attività a domande e risposte. 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 tra 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. I nostri suggerimenti circa 100 esempi per garantire metriche aggregate di alta qualità. Il tasso di i miglioramenti della qualità delle metriche aggregate tendono a diminuire quando oltre 400 vengono forniti esempi.
  • Per una guida alla scrittura di prompt, consulta la sezione Progettare un testo personalizzati.
  • Se utilizzi previsioni pregenerate per entrambi i modelli, includi il parametro previsioni pregenerate in una colonna del set di dati di valutazione. Fornire previsioni pregenerate è utile perché consente di confrontare output di modelli che non sono in Vertex Model Registry e consente di riutilizzare diverse.

Esegui la valutazione del modello

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

Utilizza questa sintassi per specificare il percorso del modello:

  • Modello di 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 di pipelineJob.
  • PROJECT_ID : progetto Google Cloud che esegue i componenti della pipeline.
  • LOCATION : regione in cui eseguire i componenti della pipeline. us-central1 è supportato.
  • 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 di un set di dati JSONL contenente esempi di valutazione.
  • TASK : attività di valutazione, che può essere una di [summarization, question_answering].
  • ID_COLUMNS : colonne che distinguono gli esempi di valutazione univoci.
  • AUTORATER_PROMPT_PARAMETERS : parametri del prompt dello strumento 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'}} utilizza la colonna "my_prompt" del set di dati di valutazione per il contesto dello strumento di valutazione automatica.
  • 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, tenterà di dedurre il nome corretto della colonna di output del modello.
  • 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 contenente le previsioni. Se non viene fornito alcun valore, tenterà di dedurre il nome corretto della colonna di output del modello.
  • MODEL_A (Facoltativo): un nome risorsa del modello completo (projects/{project}/locations/{location}/models/{model}@{version}) o un nome 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 risorsa del modello completo (projects/{project}/locations/{location}/models/{model}@{version}) o un nome risorsa del modello del publisher (publishers/{publisher}/models/{model}). Se sono specificate le risposte del Modello B, questo parametro non deve essere fornito.
  • MODEL_A_PROMPT_PARAMETERS (Facoltativo): parametri del modello di prompt del modello A mappati a colonne o modelli. Se le risposte del Modello A sono predefinite, questo parametro non deve essere fornito. Esempio: {'prompt': {'column': 'my_prompt'}} utilizza 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'}} utilizza la colonna my_prompt del set di dati di valutazione per il parametro del prompt denominato prompt.

Corpo JSON della 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"
  }

Usa 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@002",
      "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": "123456789012-compute@developer.gserviceaccount.com",
  "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 Installa l'SDK Vertex AI per Python. Per ulteriori informazioni informazioni sull'API Python, consulta SDK Vertex AI per Python tramite Google Cloud.

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

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

  • PIPELINEJOB_DISPLAYNAME : nome visualizzato di pipelineJob.
  • PROJECT_ID : progetto Google Cloud che esegue i componenti della pipeline.
  • LOCATION : regione in cui eseguire i componenti della pipeline. us-central1 è supportato.
  • 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 di un set di dati JSONL contenente esempi di valutazione.
  • TASK : attività di valutazione, che può essere una di [summarization, question_answering].
  • ID_COLUMNS : colonne che distinguono gli esempi di valutazione univoci.
  • AUTORATER_PROMPT_PARAMETERS : parametri del prompt dello strumento 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'}} utilizza la colonna "my_prompt" del set di dati di valutazione per il contesto dello strumento di valutazione automatica.
  • 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, tenterà di dedurre il nome corretto della colonna di output del modello.
  • 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 contenente le previsioni. Se non viene fornito alcun valore, tenterà di dedurre il nome corretto della colonna di output del modello.
  • MODEL_A (Facoltativo): un nome risorsa del modello completo (projects/{project}/locations/{location}/models/{model}@{version}) o un nome 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 risorsa del modello completo (projects/{project}/locations/{location}/models/{model}@{version}) o un nome risorsa del modello del publisher (publishers/{publisher}/models/{model}). Se sono specificate le risposte del Modello B, questo parametro non deve essere fornito.
  • MODEL_A_PROMPT_PARAMETERS (Facoltativo): parametri del modello di prompt del modello A mappati a colonne o modelli. Se le risposte del Modello A sono predefinite, questo parametro non deve essere fornito. Esempio: {'prompt': {'column': 'my_prompt'}} utilizza 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'}} utilizza 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 di modelli coppie utilizzando la console Google Cloud, segui questi passaggi:

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

    • Per valutare un modello di base di Google:

      1. Vai a Vertex AI Model Garden e seleziona un modello che supporti valutazione a coppie, ad esempio text-bison.

        Vai a Model Garden

      2. Fai clic su Valuta.

      3. Nella finestra popup visualizzata, fai clic su Seleziona per selezionare un modello. completamente gestita.

      4. Un riquadro Salva modello potrebbe chiederti di salvare una copia del modello 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 Metodo di valutazione seleziona Valuta questo modello rispetto a 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 registro dei modelli di Vertex AI

      2. Fai clic sul nome del modello da valutare. Assicurati che tipo di modello supporta la valutazione di coppia. Ad esempio: text-bison.

      3. Nella scheda Valuta, fai clic su SxS.

      4. Fai clic su Crea valutazione affiancata.

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

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

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

    3. Per il passaggio Impostazioni strumento di valutazione, inserisci il prompt dello strumento di valutazione parametri e una posizione di output per e valutazioni.

  3. Fai clic su Avvia valutazione.

Visualizza i risultati di una valutazione

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

Giudizi

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

  • Prompt di inferenza
  • Risposte del modello
  • Decisioni dello strumento di valutazione automatica
  • Spiegazioni delle classificazioni
  • Punteggi di affidabilità

Le giudizi possono essere scritte in Cloud Storage in formato JSONL o in un Tabella BigQuery con queste colonne:

Colonna Descrizione
colonne id Colonne che distinguono gli 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 Risposta del modello A, date le istruzioni di inferenza e il contesto.
response_b Risposta del modello B, date l'istruzione di inferenza e il 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 allo strumento di valutazione automatica di determinare se la risposta del modello A o del modello B era la migliore.
confidence Un punteggio compreso tra 0 e 1, che indica il grado di sicurezza dell'autore della valutazione rispetto alla sua scelta.
explanation Il motivo della scelta dell'autore della valutazione.

Metriche aggregate

AutoSxS calcola le metriche aggregate (percentuale vincite) utilizzando le giudizi dalla tabella. Se non vengono forniti dati di preferenze umane, vengono generate le seguenti metriche aggregate:

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

Per comprendere meglio la percentuale vincite, esamina i risultati basati sulle righe e le spiegazioni dell'autore della valutazione per determinare se i risultati e le spiegazioni in base alle tue aspettative.

Metriche di allineamento preferenze umane

Se vengono forniti dati di preferenze umane, AutoSxS restituisce le seguenti metriche:

Metrica Descrizione
Percentuale vincite del modello A del modello AutoRater Percentuale di tempo in cui lo strumento di valutazione automatica ha deciso che il modello A ha ottenuto la risposta migliore.
Percentuale vincite del modello B di AutoRater Percentuale di tempo in cui lo strumento di valutazione automatica ha deciso che il modello B ha avuto la risposta migliore.
Percentuale di vincite nel modello di preferenze umane A Percentuale di tempo in cui gli esseri umani hanno deciso che il modello A ha avuto la risposta migliore.
Tasso di vittorie del modello B basato sulle preferenze umane Percentuale di tempo in cui gli esseri umani hanno deciso che il modello B ha avuto la risposta migliore.
VP Numero di esempi in cui sia lo strumento di valutazione automatica sia le preferenze umane indicano che il modello A ha avuto la risposta migliore.
FP Numero di esempi in cui lo strumento di valutazione automatica ha indicato che il Modello A forniva la risposta migliore, mentre i valutatori umani hanno indicato che il Modello B forniva la risposta migliore.
VN Numero di esempi in cui sia lo strumento di valutazione automatica sia le preferenze umane indicano che il Modello B ha avuto la risposta migliore.
FN Numero di esempi in cui lo strumento di valutazione automatica ha indicato che il Modello B forniva la risposta migliore, mentre i valutatori umani hanno indicato che il Modello A forniva la risposta migliore.
Accuratezza Percentuale di casi in cui lo strumento di valutazione automatica e i valutatori umani erano in accordo.
Precisione Percentuale di casi in cui sia lo strumento di valutazione automatica che i valutatori umani hanno ritenuto che il Modello A fornisse una risposta migliore, in rapporto a tutti i casi in cui lo strumento di valutazione automatica pensava che il Modello A fornisse una risposta migliore.
Richiamo Percentuale di casi in cui sia lo strumento di valutazione automatica che i valutatori umani hanno ritenuto che il Modello A fornisse una risposta migliore, in rapporto a tutti i casi in cui i valutatori umani pensavano che il Modello A fornisse una risposta migliore.
F1 Media armonica di precisione e richiamo.
Kappa di Cohen Una misura del grado di concordanza tra lo strumento di valutazione automatica e i valutatori umani che tiene conto della probabilità di una concordanza casuale. Cohen suggerisce la seguente interpretazione:
-1.0 - 0.0Accordo peggiore o equivalente al caso casuale
0.0 - 0.2Leggero accordo
0.2 - 0.4Accordo equo
0.4 - 0.6Moderatamente d'accordo
0.6 - 0.8Accordo sostanziale
0.8 - 1.0Accordo quasi perfetto
1.0Accordo perfetto

Casi d'uso di AutoSxS

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

Confronta modelli

Valuta un modello proprietario ottimizzato rispetto a un modello proprietario di riferimento.

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

Figura 2. Entrambi i modelli di inferenza vengono eseguiti

Questo esempio di codice valuta un modello ottimizzato da Vertex Model Registro rispetto 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@002',
    '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',
}

Confronta previsioni

Valuta un modello di terze parti ottimizzato (di terze parti) sulla base di un modello di terze parti di riferimento.

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

Figura 3. Viene eseguito un solo modello di inferenza

Questo esempio di codice valuta un modello di terze parti ottimizzato rispetto a 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 con dati di revisori umani per garantire che le risposte dei revisori automatici siano allineate alle preferenze umane. Se vuoi confrontare AutoSxS per i tuoi casi d'uso, fornisci dati con preferenze umane direttamente ad AutoSxS, che genera statistiche aggregate e di allineamento.

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

Figura 4. Output di entrambi i modelli forniti allo strumento di valutazione automatica

Questo esempio di codice verifica che i risultati e le spiegazioni dell'autore della valutazione 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