Reinforcement Learning from Human Feedback (RLHF) menggunakan masukan yang dikumpulkan dari manusia untuk menyesuaikan model. RLHF direkomendasikan jika output model Anda kompleks dan sulit dijelaskan. Masukan manusia berupa pilihan di antara berbagai opsi output. Pilihan ini memberikan data yang lebih baik daripada perintah berlabel, yang digunakan oleh penyesuaian yang diawasi, untuk menyesuaikan model yang menghasilkan output yang sulit dijelaskan. Jika output dari model Anda mudah ditentukan, pertimbangkan untuk menyesuaikan model teks menggunakan penyesuaian presisi yang diawasi.
Halaman ini memberikan informasi mendetail tentang cara menyesuaikan model teks menggunakan penyesuaian RLHF. Anda akan mempelajari model teks yang mendukung penyesuaian RLHF, cara membuat set data, dan cara menyesuaikan model teks menggunakan penyesuaian RLHF. Anda juga akan mempelajari cara melihat dan memuat model yang disesuaikan menggunakan penyesuaian RLHF.
Untuk mengetahui detail selengkapnya tentang penyesuaian RLHF di Vertex AI, lihat postingan blog berikut, Penyesuaian RLHF dengan Vertex AI.
Alur kerja untuk penyesuaian model RLHF
Alur kerja penyesuaian model RLHF di Vertex AI mencakup langkah-langkah berikut:
- Siapkan set data preferensi manusia Anda.
- Siapkan set data perintah Anda.
- Upload set data Anda ke bucket Cloud Storage. Data ini tidak perlu berada di bucket Cloud Storage yang sama.
- Buat tugas penyesuaian model RLHF.
Setelah penyesuaian model selesai, model yang telah disesuaikan akan di-deploy ke endpoint Vertex AI. Nama endpoint sama dengan nama model yang disesuaikan. Model yang disesuaikan tersedia untuk dipilih di Vertex AI Studio saat Anda ingin membuat perintah baru.
Model yang didukung
Model teks berikut mendukung penyesuaian menggunakan Reinforcement Learning from Human Feedback di Vertex AI:
- Model dasar pembuatan teks,
text-bison@002
. Untuk mengetahui informasi selengkapnya, lihat Model pembuatan teks. - Model transformer transfer teks-ke-teks Flan (Flan-T5)
t5-small
,t5-large
,t5-xl
, dant5-xxl
. Model Flan-T5 dapat disesuaikan untuk menjalankan tugas seperti klasifikasi teks, penerjemahan bahasa, dan penjawaban pertanyaan. Untuk mengetahui informasi selengkapnya, lihat Checkpoint Flan-T5.
Model teks berikut mendukung penyesuaian RLHF sebagai tugas Vertex AI Pipelines yang dikelola sendiri.
- Llama 2, tersedia melalui Vertex AI Model Garden. Untuk informasi selengkapnya, lihat contoh notebook. Karena metode ini lebih kompleks, sebaiknya Anda mencoba RLHF di Vertex AI terlebih dahulu.
Model kode tidak mendukung penyesuaian RLHF.
Mempersiapkan set data penyesuaian RLHF
Penyesuaian RLHF mengharuskan Anda menyiapkan dua set data dan satu set data opsional. Semua set data memiliki format JSON Lines (JSONL) dan perlu diupload ke bucket Cloud Storage. Format set data yang digunakan untuk menyesuaikan model pembuatan teks berbeda dengan format set data untuk menyesuaikan model chat teks.
Set data perintah
Set data yang berisi perintah tidak berlabel. Perintah dapat berupa perintah yang sama dari set data preferensi, atau dapat juga berbeda. Setiap baris dalam set data prompt berisi kolom berikut:
Set data text-bison
Set data pembuatan teks menyertakan satu kolom:
input_text
- kolom wajib yang berisi perintah.
Contoh
{
"input_text": "Create a description for Plantation Palms."
}
set data chat-bison
Set data pembuatan chat mencakup dua kolom:
messages
- array pasangan konten penulis. Kolomauthor
mengacu pada penulis pesan dan bergantian antarauser
danassistant
. Kolomcontent
adalah konten pesan.content
tidak boleh kosong, danauthor
pertama dan terakhir harus ditetapkan keuser
.context
- (opsional) konteks tambahan untuk digunakan model saat merespons perintah.
Contoh
{
"context": "You are a pirate dog named Captain Barktholomew.",
"messages": [
{
"author": "user",
"content": "Hi"
},
{
"author": "assistant",
"content": "Argh! What brings ye to my ship?"
},
{
"author": "user",
"content": "What's your name?"
},
]
}
Untuk mempelajari lebih lanjut, Anda dapat mendownload dan melihat contoh set data perintah ini.
Set data preferensi manusia
Set data preferensi manusia berisi preferensi dari manusia. Setiap baris dalam set data preferensi manusia mencatat preferensi antara dua opsi yang disajikan kepada manusia. Sebaiknya set data preferensi manusia menyertakan 5.000 hingga 10.000 contoh. Setiap baris dalam set data preferensi manusia berisi satu contoh preferensi yang menyertakan kolom set data perintah untuk model yang sedang disesuaikan ditambah kolom berikut:
candidate_0
dancandidate_1
- masing-masing kolom ini berisi dua respons. Manusia membantu menyesuaikan model dengan memilih mana yang lebih disukai dari dua respons yang disediakan.choice
- berisi bilangan bulat,0
atau1
, yang menunjukkan kandidat mana yang lebih disukai manusia.0
menunjukkan bahwa manusia memilihcandidate_0
, dan1
menunjukkan manusia memilihcandidate_1
.
Contoh baris dalam set data preferensi manusia adalah sebagai berikut:
{"input_text": "Create a description for Plantation Palms.", "candidate_0":
"Enjoy some fun in the sun at Gulf Shores.", "candidate_1": "A Tranquil Oasis of
Natural Beauty.", "choice": 0}
Untuk mempelajari lebih lanjut, Anda dapat mendownload dan melihat contoh set data preferensi manusia ini.
Set data evaluasi (opsional)
Set data yang menyertakan perintah tanpa label untuk prediksi setelah model disesuaikan. Jika set data evaluasi disediakan, inferensi akan dilakukan pada set data tersebut setelah tugas penyesuaian selesai. Format set data evaluasi sama dengan format set data perintah. Namun, perintah dalam set data evaluasi harus berbeda dengan perintah dalam set data perintah.
Untuk mempelajari lebih lanjut, Anda dapat mendownload dan melihat contoh set data evaluasi ini.
Model reward
Set data preferensi manusia digunakan untuk melatih model reward. Vertex AI membuat, lalu menggunakan model reward selama penyesuaian RLHF. Model reward dibuat dalam bucket Cloud Storage pribadi dalam project tenant pelanggan. Project tenant pelanggan adalah project internal yang unik bagi pelanggan. Anda tidak dapat mengakses model reward, dan model ini akan dihapus setelah tugas penyesuaian selesai. Untuk mengetahui informasi selengkapnya, lihat Project tenant.
Menjaga konsistensi dengan data produksi
Contoh dalam set data harus sesuai dengan traffic produksi yang Anda harapkan. Jika set data Anda berisi pemformatan, kata kunci, petunjuk, atau informasi tertentu, data produksi harus diformat dengan cara yang sama dan berisi petunjuk yang sama.
Misalnya, jika contoh di set data Anda menyertakan "question:"
dan "context:"
, traffic produksi juga harus diformat untuk menyertakan "question:"
dan "context:"
dalam urutan yang sama seperti yang tampak
pada contoh set data. Jika Anda mengecualikan konteks, model tidak akan mengenali pola, meskipun pertanyaan yang sama ada dalam contoh dalam set data.
Mengupload set data penyesuaian ke Cloud Storage
Untuk menjalankan tugas penyesuaian, Anda perlu mengupload satu atau beberapa set data ke bucket Cloud Storage. Anda dapat membuat bucket Cloud Storage baru atau menggunakan bucket yang sudah ada untuk menyimpan file set data. Region bucket tidak penting, tetapi sebaiknya Anda menggunakan bucket yang berada di project Google Cloud yang sama tempat Anda berencana untuk menyesuaikan model.
Setelah bucket siap, upload file set data Anda ke bucket.
Membuat tugas penyesuaian RLHF
Anda dapat melakukan penyesuaian RLHF menggunakan konsol Google Cloud atau Vertex AI SDK untuk Python.
Vertex AI SDK untuk Python
Untuk mempelajari cara menggunakan Vertex AI SDK untuk Python guna menyesuaikan model Anda dengan RLHF, buka dan jalankan notebook berikut dengan Colab, GitHub, atau Vertex AI Workbench:
Konsol Google Cloud
Untuk menyesuaikan model teks di konsol Google Cloud menggunakan penyesuaian RLHF, lakukan langkah-langkah berikut:
- Di bagian Vertex AI pada konsol Google Cloud, buka halaman Vertex AI Studio.
- Klik tab Sesuaikan dan pertajam.
- Klik Buat model yang disesuaikan.
- Pilih Reinforcement learning from human feedback (RLHF).
- Konfigurasikan detail model:
- Nama model yang disesuaikan: Masukkan nama untuk model yang disesuaikan.
- Model dasar: Pilih model dasar yang ingin Anda sesuaikan.
- Region:
Masukkan region
tempat penyesuaian model dilakukan. Region yang didukung adalah:
us-central1
: Menggunakan 8 GPU Nvidia A100 80 GB.europe-west4
: Menggunakan 64 core pod TPU v3.
- Output directory: Masukkan lokasi Cloud Storage tempat artefak disimpan saat model Anda disesuaikan.
- Luaskan Opsi Lanjutan untuk mengonfigurasi setelan lanjutan.
- Langkah-langkah pelatihan reward: Masukkan jumlah langkah yang akan digunakan saat melatih model reward. Model reward digunakan untuk menyesuaikan model Anda. Nilai defaultnya adalah 1.000.
- Pengganda kecepatan pembelajaran reward: Masukkan nilai float yang memengaruhi kecepatan pembelajaran saat melatih model reward. Untuk meningkatkan kecepatan pembelajaran default, masukkan nilai yang lebih tinggi. Untuk menurunkan kecepatan pembelajaran default, masukkan nilai yang lebih rendah. Nilai defaultnya adalah 1,0.
- Langkah-langkah pelatihan penguatan: Masukkan jumlah langkah yang harus dilakukan saat menyesuaikan model dasar menggunakan pembelajaran penguatan. Nilai defaultnya adalah 1.000.
- Pengganda kecepatan pembelajaran penguatan: Masukkan nilai float yang memengaruhi kecepatan pembelajaran saat melatih model penguatan. Untuk meningkatkan kecepatan pembelajaran default, masukkan nilai yang lebih tinggi. Untuk menurunkan kecepatan pembelajaran default, masukkan nilai yang lebih rendah. Nilai defaultnya adalah 1,0.
- Klik Lanjutkan
- Pada Set data preferensi manusia, upload
atau pilih set data preferensi manusia yang digunakan untuk membuat
model reward.
Jika ingin mengupload file set data, pilih
Upload file JSONL ke
Cloud Storage. Jika file set data Anda sudah ada di
bucket Cloud Storage, pilih File
JSONL yang ada di Cloud Storage.
Mengupload file JSONL
- Di bagian Pilih file JSONL, klik Telusuri, lalu pilih file set data Anda.
- Di bagian Lokasi set data, klik Telusuri, lalu pilih bucket Cloud Storage tempat Anda ingin menyimpan file set data.
Menggunakan file JSONL yang ada
Di bagian Jalur file Cloud Storage, klik Telusuri, lalu pilih bucket Cloud Storage tempat file set data berada.
- Di bagian Set data perintah, jika Anda ingin mengupload file set data, pilih
Mengupload file JSONL
- Di bagian Pilih file JSONL, klik Telusuri, lalu pilih file set data Anda.
- Di bagian Lokasi set data, klik Telusuri, lalu pilih bucket Cloud Storage tempat Anda ingin menyimpan file set data.
Menggunakan file JSONL yang ada
Di bagian Jalur file Cloud Storage, klik Telusuri, lalu pilih bucket Cloud Storage tempat file set data berada.
Upload file JSONL ke Cloud Storage. Atau, jika file set data perintah Anda sudah ada di bucket Cloud Storage, pilih File JSONL yang ada di Cloud Storage.
- (Opsional) Untuk mengevaluasi model yang disesuaikan, lakukan tindakan berikut:
- Klik Aktifkan evaluasi model.
- Di bagian Set data evaluasi, klik Telusuri.
- Buka bucket Cloud Storage yang berisi set data evaluasi dan pilih set data evaluasi.
- Klik Mulai penyesuaian.
Memeriksa status operasi penyesuaian
Untuk memeriksa status tugas penyesuaian model, di konsol Google Cloud, buka halaman Vertex AI Pipelines. Halaman ini menampilkan status tugas penyesuaian model teks dan kode.
Atau, Anda dapat mengonfigurasi notifikasi email untuk Vertex AI Pipelines agar Anda diberi tahu melalui email saat tugas penyesuaian model selesai atau gagal.
Langkah selanjutnya
- Pelajari cara menjalankan tugas penyesuaian RLHF yang dikelola sendiri untuk Llama 2 menggunakan Vertex AI Pipelines.
- Pelajari praktik terbaik responsible AI dan filter keamanan Vertex AI.
- Mempelajari cara mengaktifkan log audit Akses Data untuk endpoint.
- Mempelajari cara mengevaluasi model yang disesuaikan.
- Untuk mengetahui detail selengkapnya tentang penyesuaian RLHF di Vertex AI, lihat postingan blog berikut, Penyesuaian RLHF dengan Vertex AI.