Menjalankan pipeline AutoSxS untuk melakukan evaluasi berbasis model berpasangan

Halaman ini memperkenalkan cara melakukan evaluasi berbasis model berpasangan menggunakan AutoSxS, yang merupakan alat yang berjalan melalui layanan pipeline evaluasi. Rab menjelaskan bagaimana Anda dapat menggunakan AutoSxS melalui Vertex AI API, Vertex AI SDK untuk Python, atau Konsol Google Cloud.

AutoSxS

{i>AutoSxS<i} adalah alat evaluasi berbasis model berpasangan yang yang berjalan melalui layanan pipeline evaluasi. AutoSxS dapat digunakan untuk mengevaluasi performa salah satu model AI generatif di Vertex AI Model Registry atau yang telah dibuat sebelumnya yang memungkinkannya mendukung model dasar Vertex AI, model AI generatif dan model bahasa pihak ketiga yang sudah disesuaikan. AutoSxS menggunakan sebuah {i>autorater<i} untuk memutuskan model mana yang memberikan respons yang lebih baik terhadap sebuah {i>prompt<i}. Penting tersedia secara on demand dan mengevaluasi model bahasa dengan performa yang sebanding dengan penilai manusia.

Autorater

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

Ringkasan cara kerja AutoSxS

Model A dan B menerima perintah input, dan setiap model menghasilkan respons yang akan dikirim ke autorater. Mirip dengan penilai manusia, {i> autorater<i} adalah bahasa yang menilai kualitas respons model berdasarkan inferensi asli . Dengan AutoSxS, autorater membandingkan kualitas dua respons model diberikan instruksi inferensi mereka dengan menggunakan serangkaian kriteria. Kriteria ini digunakan untuk menentukan model memiliki performa terbaik dengan membandingkan hasil Model A dengan hasil Model B. Tujuan autorater menampilkan preferensi respons sebagai gabungan metrik dan menghasilkan penjelasan preferensi dan tingkat keyakinan skor untuk setiap contoh. Untuk informasi selengkapnya, lihat penilaian tabel.

Model yang didukung

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

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

Tugas dan kriteria yang didukung

AutoSxS mendukung evaluasi model untuk tugas perangkuman dan tanya jawab. Kriteria evaluasi telah ditentukan sebelumnya untuk setiap tugas, yang membuat evaluasi secara lebih objektif dan meningkatkan kualitas respons.

Kriteria tersebut berdasarkan tugas.

Perangkuman

Tugas summarization memiliki token input 4.096 batas.

Daftar kriteria evaluasi untuk summarization adalah sebagai berikut:

Kriteria
1. Mengikuti petunjuk Sejauh mana respons model menunjukkan pemahaman terhadap instruksi dari prompt?
2. Didasarkan Apakah respons hanya menyertakan informasi dari konteks inferensi dan instruksi inferensi?
3. Komprehensif Sejauh mana kunci tangkapan model detail di ringkasan?
4. Singkat Apakah ringkasannya bertele-tele? Apakah itu menggunakan bahasa bunga/bunga? Apakah judulnya terlalu singkat?

Jawaban pertanyaan

Tugas question_answering memiliki token input 4.096 batas.

Daftar kriteria evaluasi untuk question_answering adalah sebagai berikut:

Kriteria
1. Menjawab pertanyaan sepenuhnya Jawaban tersebut sepenuhnya merespons pertanyaan.
2. Didasarkan Apakah respons hanya menyertakan informasi dari konteks instruksi dan instruksi inferensi?
3. Relevansi Apakah isi jawaban berkaitan dengan pertanyaan?
4. Komprehensif Sejauh mana kunci tangkapan model detail dalam pertanyaan tersebut?

Menyiapkan set data evaluasi untuk AutoSxS

Bagian ini menjelaskan data yang harus Anda berikan dalam evaluasi AutoSxS dan praktik terbaik untuk konstruksi set data. Contoh tersebut harus mencerminkan input dunia nyata yang mungkin dijumpai model Anda dalam produksi dan sangat kontras dengan perilaku model langsung Anda.

Format set data

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

Setiap baris set data 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 perintah
  • Prediksi yang dibuat sebelumnya: Prediksi yang dibuat oleh model yang sama menggunakan perintah yang sama. Menggunakan prediksi yang telah dibuat sebelumnya untuk menghemat waktu dan sumber daya.
  • Preferensi manusia dengan kebenaran dasar: Digunakan untuk mengukur AutoSxS terhadap data preferensi kebenaran dasar Anda 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 sulit atau titanium, tetapi berlian sebenarnya adalah bahan yang paling sulit. Materi apa yang paling sulit? Berlian adalah bahan yang paling sulit. Lebih keras dari baja atau titanium.

Untuk mengetahui informasi selengkapnya tentang cara memanggil AutoSxS, lihat Menjalankan model evaluasi. Untuk mengetahui detail tentang panjang token, lihat Tugas yang didukung dan kriterianya. Untuk mengupload data ke Cloud Storage, lihat Upload set data evaluasi ke yang sesuai di Cloud Storage.

Parameter perintah

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

Kami menguraikan bagaimana Anda dapat menentukan parameter prompt model secara fleksibel saat melakukan inferensi dan waktu evaluasi. AutoSxS memberi Anda fleksibilitas untuk memanggil model bahasa dengan memvariasikan input yang diharapkan melalui parameter perintah dengan template.

Inferensi

Jika salah satu model tidak memiliki prediksi yang dibuat sebelumnya, AutoSxS menggunakan Prediksi batch Vertex AI untuk menghasilkan respons. Perintah setiap model parameter harus ditentukan.

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

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

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

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

Saat menyediakan parameter prompt model untuk inferensi, pengguna dapat menggunakan kata kunci default_instruction yang dilindungi sebagai argumen template, yang diganti dengan instruksi inferensi default untuk tugas yang diberikan:

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

Jika membuat prediksi, berikan parameter perintah model dan kolom output. Lihat contoh berikut:

Gemini

Untuk model Gemini, kunci untuk parameter perintah model adalah contents (wajib) dan system_instruction (opsional), yang sesuai dengan isi permintaan Gemini skema ini.

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

text-bison

Misalnya, text-bison menggunakan "dialog" untuk input dan "konten" untuk output. Ikuti ini langkah:

  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

Sama seperti Anda harus menyediakan parameter prompt untuk inferensi, Anda juga harus menyediakan parameter prompt untuk evaluasi. Autorater memerlukan metode parameter prompt berikut ini:

Parameter perintah Autorater Dapat dikonfigurasi oleh pengguna? Deskripsi Contoh
Petunjuk autorater Tidak Instruksi yang dikalibrasi yang menjelaskan kriteria yang harus digunakan oleh autorater 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: Materi mana yang paling sulit?
Konteks inferensi Ya Konteks tambahan untuk tugas yang dilakukan. Meski titanium dan berlian lebih keras daripada tembaga, berlian memiliki peringkat kekerasan 98 sementara titanium memiliki peringkat 36. Rating yang lebih tinggi berarti kekerasan yang lebih tinggi.
Respons Tidak1 Sepasang respons untuk dievaluasi, satu dari setiap model kandidat. Wajik

1Anda hanya dapat mengonfigurasi parameter perintah melalui parameter perintah yang dihasilkan.

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 instruksi dan konteks inferensi yang diformat secara berbeda, terlepas dari apakah informasi yang sama diberikan atau tidak. Ini berarti bahwa autorater mengambil konteks dan instruksi inferensi yang terpisah tetapi tunggal.

Contoh set data evaluasi

Bagian ini memberikan contoh {i>dataset<i} evaluasi tugas jawaban pertanyaan, termasuk prediksi yang telah dibuat sebelumnya untuk model B. Dalam contoh ini, AutoSxS melakukan inferensi hanya untuk model A. Kami menyediakan kolom id untuk membedakan di antara contoh-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 berikut saat menentukan set data evaluasi:

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

Melakukan evaluasi model

Anda dapat mengevaluasi model menggunakan REST API, Vertex AI SDK untuk Python, atau Konsol Google Cloud Anda.

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 pipelineJobs.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PIPELINEJOB_DISPLAYNAME : Nama tampilan untuk pipelineJob.
  • PROJECT_ID : Project Google Cloud yang menjalankan komponen pipeline.
  • LOCATION : Wilayah 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 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 yang akan dirujuk 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 yang telah ditentukan, atau nama kolom dalam output Model A yang berisi prediksi. Jika tidak ada nilai yang diberikan, nama kolom output model yang benar akan mencoba disimpulkan.
  • RESPONSE_COLUMN_B : Nama kolom dalam set data evaluasi yang berisi prediksi yang telah ditentukan, atau nama kolom dalam output Model B yang berisi prediksi. Jika tidak ada nilai yang diberikan, nama kolom output model yang benar akan mencoba disimpulkan.
  • MODEL_A (Opsional): Nama resource model yang sepenuhnya memenuhi syarat (projects/{project}/locations/{location}/models/{model}@{version}) atau nama resource model penayang (publishers/{publisher}/models/{model}). Jika respons Model A ditentukan, parameter ini tidak boleh diberikan.
  • MODEL_B (Opsional): Nama resource model yang sepenuhnya memenuhi syarat (projects/{project}/locations/{location}/models/{model}@{version}) atau nama resource model penayang (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 telah ditetapkan 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 ditetapkan 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@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"
  }
}

Vertex AI SDK untuk Python

Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Instal Vertex AI SDK untuk Python yang baru. Untuk selengkapnya informasi tentang Python API, lihat Vertex AI SDK untuk Python Google Cloud Platform.

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

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PIPELINEJOB_DISPLAYNAME : Nama tampilan untuk pipelineJob.
  • PROJECT_ID : Project Google Cloud yang menjalankan komponen pipeline.
  • LOCATION : Wilayah 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 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 yang akan dirujuk 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 yang telah ditentukan, atau nama kolom dalam output Model A yang berisi prediksi. Jika tidak ada nilai yang diberikan, nama kolom output model yang benar akan mencoba disimpulkan.
  • RESPONSE_COLUMN_B : Nama kolom dalam set data evaluasi yang berisi prediksi yang telah ditentukan, atau nama kolom dalam output Model B yang berisi prediksi. Jika tidak ada nilai yang diberikan, nama kolom output model yang benar akan mencoba disimpulkan.
  • MODEL_A (Opsional): Nama resource model yang sepenuhnya memenuhi syarat (projects/{project}/locations/{location}/models/{model}@{version}) atau nama resource model penayang (publishers/{publisher}/models/{model}). Jika respons Model A ditentukan, parameter ini tidak boleh diberikan.
  • MODEL_B (Opsional): Nama resource model yang sepenuhnya memenuhi syarat (projects/{project}/locations/{location}/models/{model}@{version}) atau nama resource model penayang (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 telah ditetapkan 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 ditetapkan 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()

Konsol

Untuk membuat tugas evaluasi model berpasangan dengan menggunakan Konsol Google Cloud, lakukan langkah-langkah berikut:

  1. Mulai dengan model dasar Google, atau gunakan model yang sudah ada di Vertex AI Model Registry:

    • Untuk mengevaluasi model dasar Google:

      1. Buka Vertex AI Model Garden dan pilih model yang mendukung evaluasi berpasangan, seperti text-bison.

        Buka Model Garden

      2. Klik Evaluasi.

      3. Di menu yang muncul, klik Pilih untuk memilih model .

      4. Panel Save model mungkin meminta Anda untuk menyimpan salinan model di Vertex AI Model Registry jika Anda belum memiliki salinannya. Masukkan Nama model dan klik Simpan.

      5. Halaman Create Evaluation akan muncul. Untuk Evaluate Method pilih Evaluasi model ini terhadap model lain.

      6. Klik Lanjutkan.

    • Untuk mengevaluasi model yang ada di Vertex AI Model Registry:

      1. Buka halaman Vertex AI Model Registry:

        Buka Registry Model Vertex AI

      2. Klik nama model yang ingin dievaluasi. Pastikan memiliki dukungan evaluasi berpasangan. Contohnya, text-bison.

      3. Di tab Evaluasi, klik SxS.

      4. Klik Create SxS Evaluation.

  2. Untuk setiap langkah di halaman pembuatan evaluasi, masukkan kolom lalu klik Lanjutkan:

    1. Untuk langkah Set data evaluasi, pilih tujuan evaluasi dan untuk dibandingkan dengan model yang Anda pilih. Pilih evaluasi set data dan masukkan kolom id (kolom respons).

    2. Untuk langkah Setelan model, tentukan apakah Anda ingin menggunakan respons model yang sudah ada dalam set data Anda, atau jika ingin menggunakan Vertex AI Batch Prediction untuk menghasilkan respons. Menentukan kolom respons untuk kedua model. Untuk Vertex AI Batch dengan opsi Prediction, Anda dapat menentukan perintah model inferensi parameter.

    3. Untuk langkah Setelan pelabel otomatis, masukkan perintah autorater Anda parameter dan lokasi output untuk evaluasi.

  3. Klik Mulai Evaluasi.

Lihat hasil evaluasi

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

Keputusan

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

  • 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 unik.
inference_instruction Petunjuk yang digunakan untuk menghasilkan respons model.
inference_context Konteks yang digunakan untuk membuat respons model.
response_a Respons Model A, berdasarkan petunjuk dan konteks inferensi.
response_b Respons Model B, berdasarkan petunjuk dan konteks inferensi.
choice Model dengan respons yang lebih baik. Nilai yang mungkin adalah Model A, Model B, atau Error. Error berarti bahwa error mencegah autorater menentukan apakah respons model A atau respons model B adalah yang terbaik.
confidence Skor antara 0 dan 1, yang menunjukkan seberapa yakin autorater dengan pilihannya.
explanation Alasan autorater dipilih.

Metrik agregat

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

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

Untuk lebih memahami tingkat kemenangan, lihat hasil berbasis baris dan penjelasan autorater untuk menentukan apakah hasil dan penjelasan selaras dengan harapan Anda.

Metrik keselarasan preferensi manusia

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

Metrik Deskripsi
Rasio menang model A AutoRater Persentase waktu autorater memutuskan bahwa model A memiliki respons yang lebih baik.
Tingkat kemenangan model B AutoRater Persentase waktu autorater memutuskan bahwa model B memiliki respons yang lebih baik.
Tingkat kemenangan pada model preferensi manusia Persentase waktu manusia memutuskan model A memiliki respons yang lebih baik.
Tingkat kemenangan model B preferensi manusia Persentase waktu manusia memutuskan model B memiliki respons yang lebih baik.
TP Jumlah contoh ketika autorater dan preferensi manusia adalah bahwa Model A memiliki respons yang lebih baik.
FP Jumlah contoh saat autorater memilih Model A sebagai respons yang lebih baik, tetapi preferensi manusia adalah Model B memiliki respons yang lebih baik.
TN Jumlah contoh ketika autorater dan preferensi manusia adalah bahwa Model B memiliki respons yang lebih baik.
FN Jumlah contoh saat 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 penilai manusia.
Presisi Persentase waktu saat autorater dan manusia menganggap Model A memiliki respons yang lebih baik, dari semua kasus di mana autorater menganggap Model A memiliki respons yang lebih baik.
Recall Persentase waktu saat autorater dan manusia menganggap Model A memiliki respons yang lebih baik, dari semua kasus yang 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 memperhitungkan kemungkinan kesepakatan acak. Cohen menyarankan penafsiran berikut:
-1.0 - 0.0Perjanjian yang lebih buruk dari atau setara dengan peluang acak
0.0 - 0.2Sedikit persetujuan
0.2 - 0.4Perjanjian yang adil
0.4 - 0.6Kesepakatan sedang
0.6 - 0.8Perjanjian penting
0.8 - 1.0Kesepakatan yang hampir sempurna
1.0Perjanjian yang sempurna

Kasus penggunaan AutoSxS

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

Membandingkan model

Evaluasi model pihak pertama (1p) yang telah disesuaikan terhadap model 1p referensi.

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

Gambar 2. Kedua model inferensi ini berjalan

Contoh kode ini mengevaluasi model yang di-tuning dari Vertex Model Registri terhadap 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@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',
}

Membandingkan prediksi

Evaluasi model pihak ketiga (3p) yang telah disesuaikan terhadap model 3p referensi.

Anda dapat melewati inferensi dengan langsung menyediakan respons model.

Gambar 3. Hanya satu model inferensi yang berjalan

Contoh kode ini mengevaluasi model 3p yang disesuaikan terhadap 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 keselarasan

Semua tugas yang didukung telah diukur dengan data dari pelabel manusia untuk memastikan bahwa respons autorater selaras dengan preferensi manusia. Jika Anda ingin menjalankan benchmark AutoSxS untuk kasus penggunaan Anda, berikan data preferensi manusia langsung ke AutoSxS, yang menghasilkan statistik gabungan penyesuaian.

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

Gambar 4. Output dari kedua model yang diberikan ke autorater

Contoh kode ini memverifikasi bahwa hasil dan penjelasan autorater sesuai dengan harapan 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