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.
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:
- Mengidentifikasi input dan output yang dibutuhkan oleh model yang dievaluasi.
- Tentukan input sebagai parameter perintah model.
- 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) daninference_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 kolommy_prompt
set data evaluasi untuk parameter perintah bernamaprompt
. - 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 kolommy_prompt
set data evaluasi untuk parameter perintah bernamaprompt
.
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) daninference_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 kolommy_prompt
set data evaluasi untuk parameter perintah bernamaprompt
. - 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 kolommy_prompt
set data evaluasi untuk parameter perintah bernamaprompt
.
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:
- Tabel penilaian dihasilkan oleh arbiter AutoSxS.
- Metrik agregat dihasilkan oleh komponen metrik AutoSxS.
- Metrik perataan preferensi manusia dihasilkan oleh komponen metrik 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:
|
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.
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.
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.
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
- Pelajari cara mulai mengevaluasi model dengan cepat.
- Pelajari evaluasi AI generatif.
- Pelajari evaluasi online dengan evaluasi cepat.
- Pelajari pipeline evaluasi berbasis komputasi.
- Pelajari cara menyesuaikan model dasar bahasa.