Jalankan AutoSxS untuk melakukan evaluasi berbasis model berpasangan

Halaman ini memperkenalkan cara melakukan evaluasi berbasis model berpasangan menggunakan AutoSxS, yaitu alat yang berjalan melalui layanan pipeline evaluasi. Kami menjelaskan cara menggunakan AutoSxS melalui Vertex AI API atau Vertex AI SDK untuk Python.

AutoSxS

Otomatis berdampingan (AutoSxS) adalah alat evaluasi berbasis model berpasangan yang berjalan melalui layanan pipeline evaluasi. AutoSxS dapat digunakan untuk mengevaluasi performa salah satu model AI generatif di Vertex AI Model Registry atau prediksi yang dihasilkan sebelumnya, yang memungkinkannya mendukung model dasar Vertex AI, model AI generatif yang telah disesuaikan, dan model bahasa pihak ketiga. AutoSxS menggunakan autorater untuk menentukan model yang memberikan respons yang lebih baik terhadap prompt. API ini tersedia sesuai permintaan dan mengevaluasi model bahasa dengan performa yang sebanding dengan pelabel manusia.

Autorater

Pada tingkat yang tinggi, diagram menunjukkan cara AutoSxS membandingkan prediksi model A dan B dengan model ketiga, yakni autorater.

Ringkasan cara kerja AutoSxS

Model A dan B menerima prompt input, dan setiap model menghasilkan respons yang dikirim ke autorater. Serupa dengan pemberi rating manusia, autorater adalah model bahasa yang menilai kualitas respons model berdasarkan prompt inferensi asli. Dengan AutoSxS, peukur otomatis membandingkan kualitas dua respons model berdasarkan instruksi inferensinya menggunakan serangkaian kriteria. Kriteria ini digunakan untuk menentukan model mana yang memiliki performa terbaik dengan membandingkan hasil Model A dengan hasil Model B. Autorater menghasilkan preferensi respons sebagai metrik agregat dan menghasilkan penjelasan preferensi dan skor keyakinan untuk setiap contoh. Untuk mengetahui informasi selengkapnya, lihat tabel penilaian.

Model yang didukung

AutoSxS mendukung evaluasi model apa pun saat prediksi yang telah dibuat sebelumnya diberikan. AutoSxS juga mendukung pembuatan respons secara otomatis untuk semua model di Vertex AI Model Registry yang mendukung prediksi batch di Vertex AI.

Jika Text model Anda tidak didukung oleh Vertex AI Model Registry, AutoSxS juga menerima prediksi yang telah dibuat sebelumnya yang disimpan sebagai JSONL di Cloud Storage atau tabel BigQuery. Untuk mengetahui harga, lihat Pembuatan teks.

Tugas dan kriteria yang didukung

AutoSxS mendukung evaluasi model untuk tugas perangkuman dan jawaban pertanyaan. Kriteria evaluasi telah ditetapkan untuk setiap tugas, sehingga evaluasi bahasa menjadi lebih objektif dan meningkatkan kualitas respons.

Kriteria tersebut dicantumkan menurut tugas.

Perangkuman

Tugas summarization memiliki batas token input 4.096.

Daftar kriteria evaluasi untuk summarization adalah sebagai berikut:

Kriteria
1. Mengikuti petunjuk Sejauh mana respons model menunjukkan pemahaman instruksi dari prompt tersebut?
2. Darat Apakah responsnya hanya mencakup informasi dari konteks inferensi dan instruksi inferensi?
3. Komprehensif Sejauh mana model tersebut menangkap detail penting dalam ringkasan?
4. Singkat Apakah ringkasannya panjang? Apakah menggunakan bahasa bermotif bunga? Apakah itu terlalu singkat?

Jawaban pertanyaan

Tugas question_answering memiliki batas token input 4.096.

Daftar kriteria evaluasi untuk question_answering adalah sebagai berikut:

Kriteria
1. Menjawab pertanyaan sepenuhnya Jawabannya benar-benar menjawab pertanyaan.
2. Darat Apakah responsnya hanya mencakup informasi dari konteks instruksi dan instruksi inferensi?
3. Relevansi Apakah isi jawaban berkaitan dengan pertanyaan?
4. Komprehensif Sejauh mana model tersebut menangkap detail penting dalam pertanyaan?

Menyiapkan set data evaluasi untuk AutoSxS

Bagian ini menjelaskan data yang harus Anda berikan dalam set data evaluasi AutoSxS dan praktik terbaik untuk konstruksi set data. Contoh yang diberikan harus mencerminkan input dunia nyata yang mungkin ditemui model Anda dalam produksi dan paling kontras dengan perilaku model live Anda.

Format set data

AutoSxS menerima satu set data evaluasi dengan skema fleksibel. Set data dapat berupa tabel BigQuery atau disimpan sebagai Garis JSON di Cloud Storage.

Setiap baris {i>dataset<i} evaluasi mewakili satu contoh, dan kolomnya adalah salah satu dari berikut ini:

  • Kolom ID: Digunakan untuk mengidentifikasi setiap contoh unik.
  • Kolom data: Digunakan untuk mengisi template perintah. Lihat Parameter dialog
  • Prediksi yang dihasilkan sebelumnya: Prediksi yang dibuat oleh model yang sama menggunakan perintah yang sama. Menggunakan prediksi yang telah dibuat sebelumnya akan menghemat waktu dan sumber daya.
  • Preferensi manusia kebenaran dasar: Digunakan untuk mengukur AutoSxS terhadap data preferensi kebenaran dasar saat prediksi yang telah dibuat sebelumnya disediakan untuk kedua model.

Berikut adalah contoh set data evaluasi dengan context dan question adalah kolom data, dan model_b_response berisi prediksi yang telah dibuat sebelumnya.

context question model_b_response
Beberapa orang mungkin berpikir bahwa baja adalah bahan yang paling keras atau titanium, tetapi berlian sebenarnya adalah bahan yang paling keras. Apa materi yang paling sulit? Berlian adalah bahan yang paling sulit. Bahan ini lebih keras dari baja atau titanium.

Untuk mengetahui informasi selengkapnya tentang cara memanggil AutoSxS, lihat Melakukan evaluasi model. Untuk mengetahui detail tentang panjang token, lihat Tugas dan kriteria yang didukung. Untuk mengupload data Anda ke Cloud Storage, baca bagian Mengupload set data evaluasi ke Cloud Storage.

Parameter dialog

Banyak model bahasa yang menggunakan parameter perintah sebagai input, bukan string perintah tunggal. Misalnya, chat-bison mengambil beberapa parameter perintah (pesan, contoh, konteks), yang membentuk beberapa perintah. Namun, text-bison hanya memiliki satu parameter perintah, yaitu prompt bernama, yang berisi seluruh prompt.

Kami menjelaskan bagaimana Anda dapat menentukan parameter perintah model secara fleksibel pada waktu inferensi dan evaluasi. AutoSxS memberi Anda fleksibilitas untuk memanggil model bahasa dengan berbagai input yang diharapkan melalui parameter perintah yang diberi template.

Inferensi

Jika salah satu model tidak memiliki prediksi yang telah dibuat sebelumnya, AutoSxS akan menggunakan prediksi batch Vertex AI untuk menghasilkan respons. Setiap parameter prompt model harus ditentukan.

Di AutoSxS, Anda dapat memberikan satu kolom dalam set data evaluasi sebagai parameter perintah.

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

Atau, Anda dapat menentukan template, dengan menggunakan kolom dari set data evaluasi sebagai variabel, untuk menentukan parameter perintah:

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

Saat memberikan parameter permintaan model untuk inferensi, pengguna dapat menggunakan kata kunci default_instruction yang dilindungi sebagai argumen template, yang diganti dengan petunjuk inferensi default untuk tugas yang diberikan:

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

Jika membuat prediksi, berikan parameter perintah model dan kolom output. Misalnya, text-bison menggunakan "perintah" untuk input dan "konten" untuk output. Ikuti langkah-langkah berikut:

  1. Mengidentifikasi input dan output yang dibutuhkan oleh model yang dievaluasi.
  2. Tentukan input sebagai parameter perintah model.
  3. Teruskan output ke kolom respons.
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.

Evaluasi

Seperti halnya Anda harus memberikan parameter permintaan untuk inferensi, Anda juga harus menyediakan parameter perintah untuk evaluasi. Autorater memerlukan parameter perintah berikut:

Parameter perintah autorater Dapat dikonfigurasi oleh pengguna? Deskripsi Contoh
Petunjuk autorater Tidak Instruksi yang dikalibrasi yang menjelaskan kriteria yang harus digunakan pengotomatis untuk menilai respons yang diberikan. Pilih respons yang menjawab pertanyaan dan paling baik mengikuti petunjuk.
Petunjuk inferensi Ya Deskripsi tugas yang harus dilakukan setiap model kandidat. Jawab pertanyaan dengan akurat: Mana materi yang paling sulit?
Konteks inferensi Ya Konteks tambahan untuk tugas yang sedang dilakukan. Sementara titanium dan berlian sama-sama lebih keras dari tembaga, berlian memiliki peringkat kekerasan 98 sementara titanium memiliki peringkat 36. Semakin tinggi peringkatnya, semakin tinggi pula kekerasannya.
Respons Tidak1 Sepasang respons untuk dievaluasi, satu dari setiap model kandidat. Berlian

1Anda hanya dapat mengonfigurasi parameter perintah melalui respons yang dibuat sebelumnya.

Kode contoh menggunakan parameter:

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

Model A dan B dapat memiliki konteks dan petunjuk inferensi yang diformat secara berbeda, terlepas dari apakah informasi yang sama diberikan atau tidak. Ini berarti bahwa autorater mengambil konteks dan instruksi inferensi tunggal yang terpisah.

Contoh set data evaluasi

Bagian ini memberikan contoh set data evaluasi tugas tanya jawab, termasuk prediksi yang telah dibuat sebelumnya untuk model B. Dalam contoh ini, AutoSxS hanya melakukan inferensi untuk model A. Kami menyediakan kolom id untuk membedakan antara contoh dengan pertanyaan dan konteks yang sama.

{
 "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."
}

Praktik terbaik

Ikuti praktik terbaik ini saat menentukan set data evaluasi Anda:

  • Berikan contoh yang mewakili jenis input, yang diproses model Anda dalam produksi.
  • Set data Anda harus menyertakan minimal satu contoh evaluasi. Kami merekomendasikan sekitar 100 contoh untuk memastikan metrik agregat berkualitas tinggi. Tingkat peningkatan kualitas metrik agregat cenderung menurun jika lebih dari 400 contoh diberikan.
  • Untuk panduan menulis perintah, lihat Mendesain perintah teks.
  • Jika Anda menggunakan prediksi yang telah dibuat sebelumnya untuk salah satu model tersebut, sertakan prediksi yang telah dibuat sebelumnya di kolom set data evaluasi Anda. Memberikan prediksi yang telah dihasilkan sebelumnya berguna karena memungkinkan Anda membandingkan output model yang tidak ada di Vertex Model Registry dan memungkinkan Anda menggunakan kembali respons.

Melakukan evaluasi model

Anda dapat mengevaluasi model menggunakan REST API atau Vertex AI SDK untuk Python.

Gunakan sintaksis ini untuk menentukan jalur ke model Anda:

  • Model penayang: publishers/PUBLISHER/models/MODEL Contoh: publishers/google/models/text-bison
  • Model yang disesuaikan: projects/PROJECT_NUMBER/locations/LOCATION/models/MODEL@VERSION Contoh: projects/123456789012/locations/us-central1/models/1234567890123456789

REST

Untuk membuat tugas evaluasi model, kirim permintaan POST menggunakan metode pipelineJobs.

Sebelum menggunakan data permintaan apa pun, buat pergantian berikut:

  • PIPELINEJOB_DISPLAYNAME : Nama tampilan untuk pipelineJob.
  • PROJECT_ID : Project Google Cloud yang menjalankan komponen pipeline.
  • LOCATION : Region untuk menjalankan komponen pipeline. us-central1 didukung.
  • OUTPUT_DIR : URI Cloud Storage untuk menyimpan output evaluasi.
  • EVALUATION_DATASET : Tabel BigQuery atau daftar jalur Cloud Storage yang dipisahkan koma ke set data JSONL yang berisi contoh evaluasi.
  • TASK : Tugas evaluasi, yang dapat berupa salah satu dari [summarization, question_answering].
  • ID_COLUMNS : Kolom yang membedakan contoh evaluasi yang unik.
  • AUTORATER_PROMPT_PARAMETERS : Parameter perintah autorater dipetakan ke kolom atau template. Parameter yang diharapkan adalah: inference_instruction (detail tentang cara menjalankan tugas) dan inference_context (konten untuk referensi untuk melakukan tugas). Sebagai contoh, {'inference_context': {'column': 'my_prompt'}} menggunakan kolom `my_prompt` set data evaluasi untuk konteks autorater.
  • RESPONSE_COLUMN_A : Nama kolom dalam set data evaluasi yang berisi prediksi standar, atau nama kolom dalam output Model A yang berisi prediksi. Jika tidak ada nilai yang diberikan, nama kolom output model yang benar akan dicoba untuk ditentukan.
  • RESPONSE_COLUMN_B : Nama kolom dalam set data evaluasi yang berisi prediksi standar, atau nama kolom dalam output Model B yang berisi prediksi. Jika tidak ada nilai yang diberikan, nama kolom output model yang benar akan dicoba untuk ditentukan.
  • MODEL_A (Opsional): Nama resource model (projects/{project}/locations/{location}/models/{model}@{version}) atau nama resource model penayang yang sepenuhnya memenuhi syarat (publishers/{publisher}/models/{model}). Jika respons Model A ditentukan, parameter ini tidak boleh diberikan.
  • MODEL_B (Opsional): Nama resource model (projects/{project}/locations/{location}/models/{model}@{version}) atau nama resource model penayang yang sepenuhnya memenuhi syarat (publishers/{publisher}/models/{model}). Jika respons Model B ditentukan, parameter ini tidak boleh diberikan.
  • MODEL_A_PROMPT_PARAMETERS (Opsional): Parameter template perintah Model A dipetakan ke kolom atau template. Jika respons Model A sudah ditentukan sebelumnya, parameter ini tidak boleh diberikan. Contoh: {'prompt': {'column': 'my_prompt'}} menggunakan kolom my_prompt set data evaluasi untuk parameter perintah bernama prompt.
  • MODEL_B_PROMPT_PARAMETERS (Opsional): Parameter template perintah Model B dipetakan ke kolom atau template. Jika respons Model B telah ditentukan sebelumnya, parameter ini tidak boleh diberikan. Contoh: {'prompt': {'column': 'my_prompt'}} menggunakan kolom my_prompt set data evaluasi untuk parameter perintah bernama prompt.

Isi JSON permintaan

  {
    "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"
  }

Gunakan curl untuk mengirim permintaan Anda.

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"

Respons

  "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": "123456789012-compute@developer.gserviceaccount.com",
  "templateUri": "https://us-kfp.pkg.dev/ml-pipeline/google-cloud-registry/autosxs-template/default",
  "templateMetadata": {
    "version": "sha256:7366b784205551ed28f2c076e841c0dbeec4111b6df16743fc5605daa2da8f8a"
  }
}

Vertex AI SDK untuk Python

Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya tentang Python API, lihat Vertex AI SDK untuk Python API.

Untuk mengetahui informasi selengkapnya tentang parameter pipeline, lihat Dokumentasi Referensi Komponen Pipeline Google Cloud.

Sebelum menggunakan data permintaan apa pun, buat pergantian berikut:

  • PIPELINEJOB_DISPLAYNAME : Nama tampilan untuk pipelineJob.
  • PROJECT_ID : Project Google Cloud yang menjalankan komponen pipeline.
  • LOCATION : Region untuk menjalankan komponen pipeline. us-central1 didukung.
  • OUTPUT_DIR : URI Cloud Storage untuk menyimpan output evaluasi.
  • EVALUATION_DATASET : Tabel BigQuery atau daftar jalur Cloud Storage yang dipisahkan koma ke set data JSONL yang berisi contoh evaluasi.
  • TASK : Tugas evaluasi, yang dapat berupa salah satu dari [summarization, question_answering].
  • ID_COLUMNS : Kolom yang membedakan contoh evaluasi yang unik.
  • AUTORATER_PROMPT_PARAMETERS : Parameter perintah autorater dipetakan ke kolom atau template. Parameter yang diharapkan adalah: inference_instruction (detail tentang cara menjalankan tugas) dan inference_context (konten untuk referensi untuk melakukan tugas). Sebagai contoh, {'inference_context': {'column': 'my_prompt'}} menggunakan kolom `my_prompt` set data evaluasi untuk konteks autorater.
  • RESPONSE_COLUMN_A : Nama kolom dalam set data evaluasi yang berisi prediksi standar, atau nama kolom dalam output Model A yang berisi prediksi. Jika tidak ada nilai yang diberikan, nama kolom output model yang benar akan dicoba untuk ditentukan.
  • RESPONSE_COLUMN_B : Nama kolom dalam set data evaluasi yang berisi prediksi standar, atau nama kolom dalam output Model B yang berisi prediksi. Jika tidak ada nilai yang diberikan, nama kolom output model yang benar akan dicoba untuk ditentukan.
  • MODEL_A (Opsional): Nama resource model (projects/{project}/locations/{location}/models/{model}@{version}) atau nama resource model penayang yang sepenuhnya memenuhi syarat (publishers/{publisher}/models/{model}). Jika respons Model A ditentukan, parameter ini tidak boleh diberikan.
  • MODEL_B (Opsional): Nama resource model (projects/{project}/locations/{location}/models/{model}@{version}) atau nama resource model penayang yang sepenuhnya memenuhi syarat (publishers/{publisher}/models/{model}). Jika respons Model B ditentukan, parameter ini tidak boleh diberikan.
  • MODEL_A_PROMPT_PARAMETERS (Opsional): Parameter template perintah Model A dipetakan ke kolom atau template. Jika respons Model A sudah ditentukan sebelumnya, parameter ini tidak boleh diberikan. Contoh: {'prompt': {'column': 'my_prompt'}} menggunakan kolom my_prompt set data evaluasi untuk parameter perintah bernama prompt.
  • MODEL_B_PROMPT_PARAMETERS (Opsional): Parameter template perintah Model B dipetakan ke kolom atau template. Jika respons Model B telah ditentukan sebelumnya, parameter ini tidak boleh diberikan. Contoh: {'prompt': {'column': 'my_prompt'}} menggunakan kolom my_prompt set data evaluasi untuk parameter perintah bernama 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()

Lihat hasil evaluasi

Anda dapat menemukan hasil evaluasi di Vertex AI Pipelines dengan memeriksa artefak berikut yang dihasilkan oleh pipeline AutoSxS:

Keputusan

AutoSxS menghasilkan penilaian (metrik level contoh) yang membantu pengguna memahami performa model di tingkat contoh. Penilaian mencakup informasi berikut:

  • Perintah inferensi
  • Respons model
  • Keputusan autorater
  • Penjelasan rating
  • Skor keyakinan

Penilaian dapat ditulis ke Cloud Storage dalam format JSONL atau ke tabel BigQuery dengan kolom berikut:

Kolom Deskripsi
kolom ID Kolom yang membedakan contoh evaluasi yang unik.
inference_instruction Instruksi yang digunakan untuk menghasilkan respons model.
inference_context Konteks yang digunakan untuk menghasilkan respons model.
response_a Respons Model A, berdasarkan konteks dan instruksi inferensi.
response_b Respons Model B, berdasarkan konteks dan instruksi inferensi.
choice Model dengan respons yang lebih baik. Nilai yang mungkin adalah Model A, Model B, atau Error. Error berarti bahwa error mencegah pemberi otomatis menentukan apakah respons model A atau respons model B adalah yang terbaik.
confidence Skor antara 0 dan 1, yang menandakan seberapa yakin pelabel dengan pilihannya.
explanation Alasan autorater dipilihnya.

Metrik agregat

AutoSxS menghitung metrik agregat (rasio menang) menggunakan tabel penilaian. Jika tidak ada data preferensi manusia yang disediakan, metrik gabungan berikut akan dibuat:

Metrik Deskripsi
Rasio menang A pada model AutoRater Persentase waktu autorater memutuskan model A memiliki respon yang lebih baik.
Tingkat kemenangan model B AutoRater Persentase waktu autorater memutuskan model B memiliki respon yang lebih baik.

Untuk lebih memahami rasio menang, lihat hasil berbasis baris dan penjelasan pelabel untuk menentukan apakah hasil dan penjelasan sudah selaras dengan ekspektasi Anda.

Metrik penyelarasan preferensi manusia

Jika data preferensi manusia disediakan, AutoSxS akan menghasilkan metrik berikut:

Metrik Deskripsi
Rasio menang A pada model AutoRater Persentase waktu autorater memutuskan model A memiliki respon yang lebih baik.
Tingkat kemenangan model B AutoRater Persentase waktu autorater memutuskan model B memiliki respon yang lebih baik.
Rasio menang A model preferensi manusia Persentase waktu saat manusia memutuskan model A memiliki respons yang lebih baik.
Rasio kemenangan model B preferensi manusia Persentase waktu saat manusia memutuskan model B memiliki respons yang lebih baik.
TP Sejumlah contoh di mana preferensi autorater dan manusia menunjukkan bahwa Model A memiliki respons yang lebih baik.
SJ Jumlah contoh di mana autorater memilih Model A sebagai respons yang lebih baik, tetapi preferensi manusia adalah Model B memiliki respons yang lebih baik.
NB Sejumlah contoh di mana preferensi autorater dan manusia menunjukkan bahwa Model B memiliki respons yang lebih baik.
FN Jumlah contoh di mana autorater memilih Model B sebagai respons yang lebih baik, tetapi preferensi manusia adalah Model A memiliki respons yang lebih baik.
Akurasi Persentase waktu saat autorater setuju dengan pelabel manusia.
Presisi Persentase waktu ketika autorater dan manusia mengira Model A memiliki respons yang lebih baik, dari semua kasus di mana autorater berpikir Model A memiliki respons yang lebih baik.
Recall Persentase waktu ketika autorater dan manusia mengira Model A memiliki respons yang lebih baik, dari semua kasus di mana manusia menganggap Model A memiliki respons yang lebih baik.
F1 Rata-rata presisi dan recall yang harmonis.
Kappa Cohen Pengukuran kesepakatan antara penilai otomatis dan penilai manusia yang mempertimbangkan kemungkinan terjadinya kesepakatan acak. Cohen menyarankan penafsiran berikut:
-1.0 - 0.0Perjanjian lebih buruk atau setara dengan peluang acak
0.0 - 0.2Sedikit perjanjian
0.2 - 0.4Perjanjian yang adil
0.4 - 0.6Kesepakatan menengah
0.6 - 0.8Kesepakatan penting
0.8 - 1.0Kesepakatan yang hampir sempurna
1.0Kesepakatan yang sempurna

Kasus penggunaan AutoSxS

Anda dapat mempelajari cara menggunakan AutoSxS dengan tiga skenario kasus penggunaan.

Membandingkan model

Mengevaluasi model pihak pertama (1p) yang disesuaikan berdasarkan model pihak pertama referensi.

Anda dapat menentukan bahwa inferensi berjalan di kedua model secara bersamaan.

Gambar 2. Kedua model inferensi berjalan

Contoh kode ini mengevaluasi model yang telah disesuaikan dari Vertex Model Registry berdasarkan model referensi dari registry yang sama.

# 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',
}

Membandingkan prediksi

Mengevaluasi model pihak ketiga (3p) yang disesuaikan berdasarkan model 3p referensi.

Anda dapat melewati inferensi dengan menyediakan respons model secara langsung.

Gambar 3. Hanya satu model inferensi yang berjalan

Contoh kode ini mengevaluasi model 3p yang disesuaikan berdasarkan model 3p referensi.

# 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',
}

Periksa perataan

Semua tugas yang didukung telah diukur menggunakan data penilai manusia untuk memastikan bahwa respons autorater selaras dengan preferensi manusia. Jika Anda ingin mengukur AutoSxS untuk kasus penggunaan, berikan data preferensi manusia langsung ke AutoSxS, yang menghasilkan statistik agregat penyelarasan.

Untuk memeriksa penyelarasan terhadap set data preferensi manusia, Anda dapat menentukan kedua output (hasil prediksi) terhadap autorater. Anda juga dapat memberikan hasil inferensi Anda.

Gambar 4. Output dari kedua model diberikan ke autorater

Contoh kode ini memverifikasi bahwa hasil dan penjelasan pemberi otomatis sesuai dengan ekspektasi Anda.

# 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',
}

Langkah selanjutnya