Menyesuaikan model teks PaLM menggunakan penyesuaian RLHF

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:

  1. Siapkan set data preferensi manusia Anda.
  2. Siapkan set data perintah Anda.
  3. Upload set data Anda ke bucket Cloud Storage. Data ini tidak perlu berada di bucket Cloud Storage yang sama.
  4. 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, dan t5-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.

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. Kolom author mengacu pada penulis pesan dan bergantian antara user dan assistant. Kolom content adalah konten pesan. content tidak boleh kosong, dan author pertama dan terakhir harus ditetapkan ke user.

  • 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 dan candidate_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 atau 1, yang menunjukkan kandidat mana yang lebih disukai manusia. 0 menunjukkan bahwa manusia memilih candidate_0, dan 1 menunjukkan manusia memilih candidate_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:

  1. Di bagian Vertex AI pada konsol Google Cloud, buka halaman Vertex AI Studio.

    Buka Vertex AI Studio

  2. Klik tab Sesuaikan dan pertajam.
  3. Klik Buat model yang disesuaikan.
  4. Pilih Reinforcement learning from human feedback (RLHF).
  5. 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.
  6. 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.
  7. Klik Lanjutkan
  8. 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.

  9. Di bagian Set data perintah, jika Anda ingin mengupload file set data, pilih  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.

    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.

  10. (Opsional) Untuk mengevaluasi model yang disesuaikan, lakukan tindakan berikut:
    1. Klik Aktifkan evaluasi model.
    2. Di bagian Set data evaluasi, klik Telusuri.
    3. Buka bucket Cloud Storage yang berisi set data evaluasi dan pilih set data evaluasi.
    Untuk mengetahui informasi selengkapnya, lihat Set data evaluasi.
  11. 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.

Buka Pipeline

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