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. Kami menjelaskan cara menggunakan AutoSxS melalui Vertex AI API, Vertex AI SDK untuk Python, atau konsol Google Cloud.

AutoSxS

Automatic side-by-side (AutoSxS) adalah alat evaluasi berbasis model berpasangan yang berjalan melalui layanan pipeline evaluasi. AutoSxS dapat digunakan untuk mengevaluasi performa model AI generatif di Vertex AI Model Registry atau prediksi yang dibuat sebelumnya, yang memungkinkannya mendukung model dasar Vertex AI, model AI generatif yang disesuaikan, dan model bahasa pihak ketiga. AutoSxS menggunakan autorater untuk memutuskan model mana yang memberikan respons yang lebih baik terhadap perintah. Layanan ini tersedia sesuai permintaan dan mengevaluasi model bahasa dengan performa yang sebanding dengan penilai manusia.

Autorater

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

Ringkasan cara kerja AutoSxS

Model A dan B menerima perintah input, dan setiap model menghasilkan respons yang dikirim ke pembuat otomatis. Serupa dengan penilai manusia, autorater adalah model bahasa yang menilai kualitas respons model berdasarkan perintah inferensi asli. Dengan AutoSxS, autorater membandingkan kualitas dua respons model dengan mempertimbangkan petunjuk inferensi menggunakan serangkaian kriteria. Kriteria ini digunakan untuk menentukan model mana yang berperforma terbaik dengan membandingkan hasil Model A dengan hasil Model B. Penilai otomatis akan menghasilkan preferensi respons sebagai metrik agregat serta menghasilkan penjelasan preferensi dan skor keyakinan untuk setiap contoh. Untuk informasi selengkapnya, lihat tabel penilaian.

Model yang didukung

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

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

Tugas dan kriteria yang didukung

AutoSxS mendukung evaluasi model untuk tugas ringkasan dan menjawab pertanyaan. Kriteria evaluasi telah ditentukan sebelumnya untuk setiap tugas, yang membuat evaluasi bahasa lebih objektif dan meningkatkan kualitas respons.

Kriteria dicantumkan menurut tugas.

Perangkuman

Tugas summarization memiliki batas token input sebesar 4.096.

Daftar kriteria evaluasi untuk summarization adalah sebagai berikut:

Kriteria
1. Mengikuti petunjuk Sejauh mana respons model menunjukkan pemahaman tentang petunjuk dari perintah?
2. Grounded Apakah respons hanya menyertakan informasi dari konteks inferensi dan petunjuk inferensi?
3. Komprehensif Sejauh mana model menangkap detail utama dalam ringkasan?
4. Ringkasan Apakah ringkasannya panjang? Apakah komentar tersebut menggunakan bahasa yang berlebihan? Apakah terlalu singkat?

Jawaban pertanyaan

Tugas question_answering memiliki batas token input 4.096.

Daftar kriteria evaluasi untuk question_answering adalah sebagai berikut:

Kriteria
1. Sepenuhnya menjawab pertanyaan Jawaban menjawab pertanyaan secara lengkap.
2. Grounded Apakah respons hanya menyertakan informasi dari konteks petunjuk dan petunjuk inferensi?
3. Relevansi Apakah konten jawaban terkait dengan pertanyaan?
4. Komprehensif Sejauh mana model menangkap detail utama 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 pembuatan set data. Contoh 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 yang fleksibel. Set data dapat berupa tabel BigQuery atau disimpan sebagai JSON Lines 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 dibuat sebelumnya akan menghemat waktu dan resource.
  • Preferensi manusia kebenaran nyata: Digunakan untuk membandingkan AutoSxS dengan data preferensi kebenaran nyata Anda saat prediksi yang dibuat sebelumnya disediakan untuk kedua model.

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

context question model_b_response
Beberapa orang mungkin berpikir bahwa baja adalah bahan terkeras atau titanium, tetapi berlian sebenarnya adalah bahan terkeras. Apa bahan yang paling keras? Intan adalah material yang paling keras. Material ini lebih keras daripada baja atau titanium.

Untuk mengetahui informasi selengkapnya tentang cara memanggil AutoSxS, lihat Melakukan evaluasi model. Untuk mengetahui detail tentang panjang token, lihat Kriteria dan tugas yang didukung. Untuk mengupload data ke Cloud Storage, lihat Mengupload set data evaluasi ke Cloud Storage.

Parameter perintah

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

Kami menguraikan cara 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 template.

Inferensi

Jika salah satu model tidak memiliki prediksi yang dibuat sebelumnya, AutoSxS akan menggunakan prediksi batch Vertex AI untuk menghasilkan respons. Parameter perintah setiap 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, menggunakan kolom dari set data evaluasi sebagai variabel, untuk menentukan parameter perintah:

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

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

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 selaras dengan skema isi permintaan Gemini.

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

text-bison

Misalnya, text-bison menggunakan "prompt" untuk input dan "content" untuk output. Ikuti langkah-langkah berikut:

  1. Identifikasi input dan output yang diperlukan oleh model yang sedang 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 memberikan parameter perintah untuk inferensi, Anda juga harus memberikan parameter perintah untuk evaluasi. Autorater memerlukan parameter perintah berikut:

Parameter perintah Autorater Dapat dikonfigurasi oleh pengguna? Deskripsi Contoh
Petunjuk penilai otomatis Tidak Petunjuk terkalibrasi yang menjelaskan kriteria yang harus digunakan penulis otomatis untuk menilai respons yang diberikan. Pilih respons yang menjawab pertanyaan dan paling sesuai dengan petunjuk.
Petunjuk inferensi Ya Deskripsi tugas yang harus dilakukan setiap model kandidat. Jawab pertanyaan dengan akurat: Manakah bahan yang paling keras?
Konteks inferensi Ya Konteks tambahan untuk tugas yang sedang dilakukan. Meskipun titanium dan berlian lebih keras daripada tembaga, berlian memiliki rating kekerasan 98, sedangkan titanium memiliki rating 36. Rating yang lebih tinggi berarti kekerasan yang lebih tinggi.
Respons Tidak1 Sepasang respons untuk dievaluasi, satu dari setiap model kandidat. Diamond

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

Contoh kode yang 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 petunjuk dan konteks inferensi yang diformat secara berbeda, terlepas dari apakah informasi yang sama diberikan atau tidak. Artinya, pembuat otomatis mengambil petunjuk dan konteks inferensi yang terpisah, tetapi tunggal.

Contoh set data evaluasi

Bagian ini memberikan contoh set data evaluasi tugas pertanyaan-jawaban, termasuk prediksi yang dibuat sebelumnya untuk model B. Dalam contoh ini, AutoSxS hanya melakukan inferensi untuk model A. Kami menyediakan kolom id untuk membedakan 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 oleh model Anda dalam produksi.
  • Set data Anda harus menyertakan minimal satu contoh evaluasi. Sebaiknya gunakan sekitar 100 contoh untuk memastikan metrik gabungan berkualitas tinggi. Rasio peningkatan kualitas metrik gabungan cenderung menurun jika lebih dari 400 contoh diberikan.
  • Untuk panduan menulis perintah, lihat Mendesain perintah teks.
  • Jika Anda menggunakan prediksi yang dibuat sebelumnya untuk salah satu model, sertakan prediksi yang dibuat sebelumnya di kolom set data evaluasi. Menyediakan prediksi yang dibuat sebelumnya sangat 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, Vertex AI SDK untuk Python, atau konsol Google Cloud.

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 salah satu data permintaan, lakukan penggantian 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 unik.
  • AUTORATER_PROMPT_PARAMETERS : Parameter perintah Autorater yang dipetakan ke kolom atau template. Parameter yang diharapkan adalah: inference_instruction (detail tentang cara melakukan 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 penulis otomatis.
  • 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 disimpulkan.
  • 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 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 yang dipetakan ke kolom atau template. Jika respons Model A 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.
  • MODEL_B_PROMPT_PARAMETERS (Opsional): Parameter template perintah Model B yang 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.
  • JUDGMENTS_FORMAT (Opsional): Format untuk menulis penilaian. Dapat berupa jsonl (default), json, atau bigquery.
  • BIGQUERY_DESTINATION_PREFIX: Tabel BigQuery untuk menulis penilaian jika format yang ditentukan adalah bigquery.

Meminta isi JSON

  {
    "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,
            "judgments_format": "JUDGMENTS_FORMAT",
            "bigquery_destination_prefix":BIGQUERY_DESTINATION_PREFIX,
        },
    },
    "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 Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya tentang API Python, lihat Vertex AI SDK untuk API Python.

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

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 : 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 unik.
  • AUTORATER_PROMPT_PARAMETERS : Parameter perintah Autorater yang dipetakan ke kolom atau template. Parameter yang diharapkan adalah: inference_instruction (detail tentang cara melakukan 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 penulis otomatis.
  • 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 disimpulkan.
  • 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 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 yang dipetakan ke kolom atau template. Jika respons Model A telah ditentukan sebelumnya, parameter ini tidak boleh diberikan. Contoh: {'prompt': {'column': 'my_prompt'}} menggunakan kolom my_prompt set data evaluasi untuk parameter perintah yang bernama prompt.
  • MODEL_B_PROMPT_PARAMETERS (Opsional): Parameter template perintah Model B yang 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.
  • JUDGMENTS_FORMAT (Opsional): Format untuk menulis penilaian. Dapat berupa jsonl (default), json, atau bigquery.
  • BIGQUERY_DESTINATION_PREFIX: Tabel BigQuery untuk menulis penilaian jika format yang ditentukan adalah bigquery.
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,
    'judgments_format': 'JUDGMENTS_FORMAT',
    'bigquery_destination_prefix':
    BIGQUERY_DESTINATION_PREFIX,
}
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 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 Anda:

    • Untuk mengevaluasi model dasar Google:

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

        Buka Model Garden

      2. Klik Evaluate.

      3. Di menu yang muncul, klik Select untuk memilih versi model.

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

      5. Halaman Buat Evaluasi akan muncul. Untuk langkah Evaluasi Metode, 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 Vertex AI Model Registry

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

      3. Di tab Evaluate, klik SxS.

      4. Klik Create SxS Evaluation.

  2. Untuk setiap langkah di halaman pembuatan evaluasi, masukkan informasi yang diperlukan, lalu klik Continue:

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

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

    3. Untuk langkah Setelan Autorater, masukkan parameter perintah autorater dan lokasi output untuk evaluasi.

  3. Klik Mulai Evaluasi.

Melihat hasil evaluasi

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

Putusan

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

  • Perintah inferensi
  • Respons model
  • Keputusan penilai otomatis
  • 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 menghasilkan respons model.
response_a Respons Model A, dengan petunjuk dan konteks inferensi.
response_b Respons Model B, dengan petunjuk dan konteks inferensi yang diberikan.
choice Model dengan respons yang lebih baik. Nilai yang mungkin adalah Model A, Model B, atau Error. Error berarti error mencegah penulis otomatis menentukan apakah respons model A atau respons model B yang terbaik.
confidence Skor antara 0 dan 1, yang menunjukkan tingkat keyakinan autorater dengan pilihannya.
explanation Alasan pembuat otomatis memilihnya.

Metrik agregat

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

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

Untuk lebih memahami rasio kemenangan, lihat hasil berbasis baris dan penjelasan penilai otomatis untuk menentukan apakah hasil dan penjelasan tersebut sesuai dengan ekspektasi Anda.

Metrik penyelarasan preferensi manusia

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

Metrik Deskripsi
Rasio menang model A AutoRater Persentase waktu saat autorater memutuskan bahwa model A memiliki respons yang lebih baik.
Rasio menang model B AutoRater Persentase waktu saat autorater memutuskan model B memiliki respons yang lebih baik.
Rasio menang model A preferensi manusia Persentase waktu manusia memutuskan bahwa model A memiliki respons yang lebih baik.
Rasio menang model B preferensi manusia Persentase waktu manusia memutuskan bahwa model B memiliki respons yang lebih baik.
TP Jumlah contoh yang menunjukkan bahwa preferensi manusia dan autorater adalah 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 yang menunjukkan bahwa preferensi manusia dan autorater adalah 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 pelabel otomatis setuju dengan pelabel manual.
Presisi Persentase waktu saat penulis otomatis dan manusia menganggap Model A memiliki respons yang lebih baik, dari semua kasus saat penulis otomatis 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 saat manusia menganggap Model A memiliki respons yang lebih baik.
F1 Rata-rata presisi dan recall yang harmonis.
Kappa Cohen Pengukuran kecocokan antara pelabel otomatis dan pelabel manusia yang memperhitungkan kemungkinan kecocokan acak. Cohen menyarankan interpretasi berikut:
-1.0 - 0.0Kesepakatan yang lebih buruk atau setara dengan peluang acak
0.0 - 0.2Sedikit setuju
0.2 - 0.4Perjanjian yang adil
0.4 - 0.6Setuju
0.6 - 0.8Kesepakatan substansial
0.8 - 1.0Perjanjian yang hampir sempurna
1.0Perjanjian sempurna

Kasus penggunaan AutoSxS

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

Membandingkan model

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

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

Gambar 2. Kedua model inferensi berjalan

Contoh kode ini mengevaluasi model yang disesuaikan dari Vertex Model Registry 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

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

Anda dapat melewati inferensi dengan langsung memberikan respons model.

Gambar 3. Hanya satu model inferensi yang berjalan

Contoh kode ini mengevaluasi model pihak ketiga yang disesuaikan dengan model pihak ketiga 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',
}

Memeriksa perataan

Semua tugas yang didukung telah diukur menggunakan data penilai manusia untuk memastikan bahwa respons penilai otomatis selaras dengan preferensi manusia. Jika Anda ingin menjalankan benchmark AutoSxS untuk kasus penggunaan Anda, berikan data preferensi manusia secara langsung ke AutoSxS, yang menghasilkan statistik gabungan perataan.

Untuk memeriksa perataan terhadap set data preferensi manusia, Anda dapat menentukan kedua output (hasil prediksi) ke pembuat otomatis. Anda juga dapat memberikan hasil inferensi.

Gambar 4. Output dari kedua model yang diberikan ke pembuat otomatis

Contoh kode ini memverifikasi bahwa hasil dan penjelasan penulis 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