Playbook Tuning Prompt LLM
(github.com/varungodbole)Dokumen ini ditujukan untuk siapa?
- Dokumen untuk orang yang ingin meningkatkan kemampuan menulis prompt untuk Post-Trained LLM
- Ditujukan bagi orang yang, meskipun latar belakang teknisnya terbatas, memiliki pengalaman dasar menggunakan LLM
- Bagian awal: memberikan pemahaman intuitif tentang post-training dan prompt
- Bagian akhir: memberikan prosedur serta tips penulisan prompt yang konkret
Mengapa panduan tuning diperlukan?
- Menulis prompt untuk LLM adalah pekerjaan yang empiris dan membutuhkan pembelajaran serta revisi secara terus-menerus
- Dokumen ini bertujuan membagikan strategi penulisan prompt yang efektif secara sistematis
- Meski disusun dengan berfokus pada model pascapelatihan seperti Gemini, isinya juga dapat diterapkan pada model lain
Pre-Training vs. Post-Training
Pra-pelatihan (Pre-training)
- Konsep pra-pelatihan
- Pra-pelatihan adalah konsep lama dalam deep learning, yaitu metode yang terlebih dahulu mempelajari karakteristik umum dengan memanfaatkan dataset besar (B) yang mirip dengan dataset kecil (A), lalu melakukan penyesuaian rinci pada dataset A.
- Sebagai contoh, kita bisa membayangkan dataset mammografi berukuran kecil (A) dan dataset besar citra alam yang dikumpulkan dari internet (B).
- Prosedur pra-pelatihan
- Melatih model pada dataset besar (B) untuk mempelajari fitur umum yang berguna.
- Setelah itu, melakukan fine-tuning pada model agar sesuai dengan dataset A sehingga memperoleh kinerja yang lebih baik pada A.
- Secara lebih spesifik, model mula-mula mempelajari kemampuan dasar seperti segmentasi objek atau mengenali konsep tanpa bergantung pada posisi dalam gambar dari dataset B, lalu di atas dasar itu mempelajari kemampuan khusus yang dibutuhkan oleh dataset A.
- Mengapa pra-pelatihan diperlukan
- Tanpa pembelajaran melalui dataset B, dataset A saja bisa kekurangan data untuk mempelajari kemampuan umum, sehingga performanya dapat menurun.
- Model yang telah mempelajari kemampuan umum pada dataset B cukup mempelajari tambahan kemampuan yang lebih terspesialisasi pada dataset A dengan menggunakan data yang terbatas.
- Kasus LLM (large language model)
- Pra-pelatihan LLM dilakukan dengan menjalankan “tugas memprediksi kata berikutnya” pada teks internet.
- Dalam proses ini, model secara implisit mempelajari struktur dunia sebagaimana tercermin di web.
- Internet dan cerminan dunia
- Pertanyaan tentang dunia seperti apa yang tercermin di internet itu penting, dan untuk memahaminya kita dapat menggunakan analogi “cinematic universe”.
Intuisi “cinematic universe” dalam pra-pelatihan
- Teks dan deskripsi dunia
- Large language model (LLM) mempelajari dunia melalui teks.
- Teks tidak dibatasi untuk hanya merefleksikan “kebenaran” semata.
- Selain misinformasi atau pernyataan yang salah, ada banyak alasan lain mengapa teks tidak selalu merefleksikan satu realitas objektif tunggal.
- Contoh: Aragorn dan Gondor
- Apakah kalimat “Aragorn pada akhirnya menjadi raja Gondor” itu benar atau tidak bergantung pada konteks dan asumsi yang digunakan.
- Cinematic universe “The Lord of the Rings”: dapat dianggap benar.
- “Marvel Cinematic Universe” atau dunia nyata: tidak benar karena Aragorn dan Gondor adalah entitas fiksi.
- Apakah kalimat “Aragorn pada akhirnya menjadi raja Gondor” itu benar atau tidak bergantung pada konteks dan asumsi yang digunakan.
- Kriteria kebenaran
- Benar atau tidaknya suatu pernyataan bergantung pada “dunia mana” yang dijadikan premis.
- Ini merupakan topik lama dalam diskusi filsafat dan linguistik, dan ringkasan lebih rinci tentang kebenaran dapat dilihat di tautan ini.
- Secara praktis, ini dapat disederhanakan menjadi gagasan bahwa “apakah sebuah pernyataan benar atau tidak bergantung pada cinematic universe yang menjadi latar pernyataan tersebut”.
- Data pra-pelatihan dan cinematic universe
- Korpus pra-pelatihan kurang lebih menyerupai gabungan berbagai cinematic universe yang diciptakan oleh budaya manusia.
- Lebih tepatnya, ini adalah himpunan budaya yang berkontribusi besar pada sumber data pra-pelatihan, misalnya web.
> Penting
> Korpus pra-pelatihan dapat dianggap sebagai gabungan cinematic universe yang diciptakan budaya manusia, dan secara khusus mencerminkan budaya yang berkontribusi besar pada sumber data seperti web.
- Pemahaman model terhadap konteks
- LLM menyimpulkan dirinya sedang berada di “universe” yang mana berdasarkan konteks yang diberikan (yaitu prefix).
- Setelah itu, model bertindak mengikuti aturan, kebiasaan, dan fakta dari universe tersebut.
- Prompt dengan sinyal konteks yang kuat memudahkan model memahami “skrip”-nya.
- Contoh: pembuka tulisan blog tentang New York (“Jungle beton tempat mimpi menjadi nyata bukan sekadar lirik, melainkan kebenaran elektrik tentang New York...”)
- Sebaliknya, prompt dengan konteks lemah seperti “Hi, how are you?” membuat model sulit menentukan dirinya berada di universe yang mana.
- Ungkapan umum seperti ini muncul di berbagai korpus, sehingga membuka banyak kemungkinan.
- Peran post-training
- Ketika konteks tidak cukup, post-training berperan penting agar model dapat menghasilkan output yang lebih spesifik dan konsisten.
Pascapelatihan (Post-training)
- Peran post-training
- Post-training memberikan panduan tentang “default universe” tempat LLM pada dasarnya beroperasi.
- Alih-alih hanya menyimpulkan universe dari prompt, melalui post-training ditetapkan batasan agar asumsi tertentu dipatok atau ambiguitas diselesaikan secara konsisten.
- Hal ini diperlukan untuk meningkatkan kegunaan model; misalnya, berguna untuk mengajarkan LLM agar secara default “mengikuti instruksi pengguna”.
- Pentingnya post-training
- Tanpa post-training, instruksi seperti “tulislah laporan tentang George Washington” bisa gagal bekerja dan hanya menghasilkan teks yang sekadar melanjutkan instruksi tersebut.
- Post-training dapat membantu menyelaraskan perilaku default model dengan norma sosial.
- Dengan begitu, model didukung agar menjadi alat yang lebih aman dan produktif.
> Penting
> Post-training mengajarkan model untuk menjalankan peran dasar secara konsisten di berbagai lingkungan deployment.
- Hal-hal yang dapat dipelajari dalam post-training
- Hal yang dapat dipelajari model selama post-training sangat beragam, dari yang praktis dan konkret hingga yang subjektif dan personal.
- Hal-hal utama yang dapat diajarkan dalam post-training
- Cara mengikuti format tertentu
- Contoh: dalam Gemma's Formatter, diasumsikan model selalu beroperasi dalam cinematic universe di mana ia sedang bercakap-cakap dengan pengguna.
- Dalam skenario ini, model bertindak sesuai instruksi sistem, dan percakapan selalu dimulai dengan giliran pengguna manusia.
- Cara mengikuti instruksi pengguna
- Contoh: untuk permintaan “tulislah esai tentang anjing”, model harus benar-benar menulis esai.
- Melalui post-training, model dapat dipelajari agar tidak mengabaikan permintaan pengguna lalu merespons dengan cara lain.
- Kesesuaian dengan “dunia nyata”
- Digunakan untuk menyelaraskan default cinematic universe model dengan “dunia nyata” yang paling sering menjadi perhatian pengguna.
- Contoh: untuk pertanyaan “di mana selebritas terkenal $CELEBRITY dilahirkan?”, model secara default mengasumsikan informasi dari dunia nyata, bukan dunia fan fiction.
- Penguatan keamanan
- Internet memuat beragam standar normatif, dan sebagian konten mungkin tidak cocok untuk lingkungan distribusi komersial.
- Post-training membantu menyesuaikan model agar selaras dengan kebijakan keamanan tertentu serta menetapkan standar normatif atas konten yang dihasilkan.
- Ini membuat model mengandung asumsi normatif yang esensial saat menghasilkan teks yang kompleks.
- Cara mengikuti format tertentu
- Kesimpulan
- Post-training membantu model secara konsisten menampilkan perilaku yang sesuai dengan ekspektasi di berbagai lingkungan penggunaan.
- Ini merupakan proses yang esensial untuk memaksimalkan kegunaan dan keamanan model.
Pengumpulan Data Post-training
- Ringkasan inti
- Selama post-training, LLM dilatih dan dievaluasi berdasarkan data yang dibuat oleh evaluator manusia.
- Selama post-training, model menjadikan evaluator manusia yang membuat data sebagai panutan peran, layaknya "pemeran peran digital".
- Proses pengumpulan data post-training
- Membuat dataset contoh input yang beragam
- Membuat kumpulan prompt yang menggambarkan tugas yang dapat dilakukan LLM (misalnya menyusun ulang data dalam JSON, membantu perencanaan pernikahan, dan sebagainya).
- Data ini dapat dibuat berdasarkan intuisi developer atau ide yang diusulkan evaluator manusia.
- Merekrut evaluator manusia
- Peran evaluator: menulis "jawaban yang benar" untuk contoh input atau menilai respons model berdasarkan peringkat.
- Bergantung pada tahap pelatihan model, evaluator menghasilkan jenis data yang berbeda.
- Menyusun pedoman evaluasi
- Menyediakan contoh dan petunjuk rinci agar evaluator dapat memahami tugas dengan baik.
- Mengumpulkan data dan menjalankan post-training
- Menggunakan data yang terkumpul pada model prapelatihan untuk menjalankan post-training.
- Menerapkan model
- Setelah post-training selesai, model diterapkan ke lingkungan nyata.
- Membuat dataset contoh input yang beragam
- Dampak post-training
- Salah satu alasan LLM dapat bertindak seperti manusia adalah karena ia mempelajari dataset perilaku manusia yang dikumpulkan dengan cermat.
- Prapelatihan membangun kemampuan inti model, sedangkan post-training menyesuaikan arah perilaku model melalui demonstrasi manusia.
Penting
Salah satu alasan LLM dapat bertindak seperti manusia adalah karena ia mempelajari data perilaku manusia yang dikumpulkan dengan cermat.
- Tantangan dalam pengumpulan data post-training
- Monotoninya pekerjaan yang berulang
- Tugas evaluasi bisa membosankan. Misalnya, programmer Python yang hebat mungkin merasa mengerjakan proyeknya sendiri lebih menarik.
- Seorang penyair akan lebih memilih menulis puisinya sendiri, dan kemungkinan besar tidak tertarik mengevaluasi puisi yang dibuat AI.
- Evaluator dapat mengalami penurunan motivasi akibat sifat tugas yang berulang, kurangnya kontrol atas kepemilikan data, dan tidak adanya makna sosial dalam pekerjaan.
- Sulitnya mendefinisikan respons yang "baik"
- Mendefinisikan respons yang "baik" untuk suatu tugas itu kompleks.
- Sulit memperjelas standar untuk tugas yang mencerminkan kompleksitas tulisan yang baik, faktualitas, dan realitas sosial.
- Seperti sistem hukum yang menyelesaikan edge case melalui preseden, masalah semacam ini sangat bergantung pada subjektivitas dan konteks.
- Kurangnya pemahaman evaluator terhadap tugas
- Ada kemungkinan evaluator tidak benar-benar memahami tugasnya.
- Hal ini terjadi ketika evaluator direkrut dengan tingkat keterampilan yang keliru atau evaluator tidak menyadari batas kemampuannya sendiri.
- Contoh: menulis respons yang salah untuk pertanyaan biologi berdasarkan pengetahuan kampus lama yang sudah usang.
- Kesalahan manusia
- Manusia melakukan kesalahan. Profesor bisa membuat soal ujian yang memuat jawaban salah, dan dokter lebih mungkin salah diagnosis saat kelelahan.
- Karena kualitas data evaluasi manusia tidak sempurna, sistem AI juga sering kali berpeluang mempelajari data yang salah.
- Monotoninya pekerjaan yang berulang
- Kesimpulan
- Pengumpulan data post-training berperan penting dalam kualitas model, tetapi membutuhkan banyak upaya untuk menjamin kualitas data.
- Penting untuk memastikan kecocokan antara evaluator dan tugas agar diperoleh data yang akurat dan dapat diandalkan.
Penulisan Prompt
- Ringkasan inti
- Saat menulis instruksi sistem dan prompt, keduanya harus ditulis dengan mempertimbangkan "pikiran kolektif" dari kelompok evaluator pada tim post-training.
- Jika Anda menulis instruksi yang dapat dipahami dan diikuti dengan setia oleh evaluator, kemungkinan besar model juga akan mengikutinya dengan lebih baik.
Penting
Instruksi sistem dan prompt harus ditulis agar mencerminkan pikiran kolektif dari kelompok evaluator pada tim post-training.
Hal-hal utama yang perlu dipertimbangkan saat menulis prompt
-
Pastikan instruksi jelas, ringkas, dan eksplisit
- Contoh: jika instruksinya adalah menghasilkan kode Python, maka programmer Python terampil yang dipilih secara acak harus bisa langsung membaca dan memahaminya.
- Buruk: "Write a Python function that computes prime numbers."
- Baik: "Write a Python function that computes prime numbers from 1 to 100. Include pytype annotations for the function and use 2-space indentation."
- Contoh: jika instruksinya adalah menghasilkan kode Python, maka programmer Python terampil yang dipilih secara acak harus bisa langsung membaca dan memahaminya.
-
Pastikan instruksi tidak bertentangan atau sulit diikuti
- Instruksi harus ditulis secara ringkas dan intuitif agar tetap dapat diikuti dengan setia bahkan ketika orang sedang lelah atau lapar.
- Buruk: "Don’t write a story about a mean dog, unless it's friendly, and also sad..."
- Baik: "Write a short story (200-300 words) about a loyal golden retriever named Buddy..."
- Instruksi harus ditulis secara ringkas dan intuitif agar tetap dapat diikuti dengan setia bahkan ketika orang sedang lelah atau lapar.
-
Apakah instruksinya terlalu banyak?
- Model mungkin kesulitan mengikuti semua instruksi yang panjang dan kompleks. Jika memungkinkan, sebaiknya pecah tugas menjadi sub-tugas.
- Buruk: "Read each article and, for each key idea, rate it on a scale of 1-10..."
- Baik: Dipecah menjadi sub-tugas: 1) buat daftar ide utama, 2) nilai tiap ide, 3) terjemahkan ide teratas, 4) buat posting untuk media sosial.
- Model mungkin kesulitan mengikuti semua instruksi yang panjang dan kompleks. Jika memungkinkan, sebaiknya pecah tugas menjadi sub-tugas.
-
Gunakan instruksi positif
- Lebih efektif menyatakan "apa yang harus dilakukan" daripada memberi instruksi tentang "apa yang tidak boleh dilakukan".
- Buruk: "Don’t ever end your response with a full stop."
- Baik: "Your response should always end with an exclamation mark or a question mark."
- Lebih efektif menyatakan "apa yang harus dilakukan" daripada memberi instruksi tentang "apa yang tidak boleh dilakukan".
-
Instruksi yang berfungsi sebagai "pengingat" untuk model
- Dengan mempertimbangkan berbagai contoh input, berikan panduan tambahan untuk kasus-kasus yang tidak jelas.
- Contoh: jelaskan edge case secara jelas dalam bagian seperti "pertimbangan tambahan" atau "asumsi tambahan".
-
Prompt adalah hyperparameter baru
- Kualitas prompt sangat memengaruhi kinerja sistem. Menemukan prompt yang "optimal" itu tidak mungkin, tetapi eksperimen untuk secara bertahap menemukan prompt yang lebih baik itu penting.
-
Instruksi untuk respons "tidak tahu"
- Berikan petunjuk eksplisit untuk kondisi "tidak diketahui" atau "ambigu" agar model menandai ambiguitas dengan jelas alih-alih memberikan respons yang salah.
-
Keterkaitan erat antara prompt dan checkpoint
- Prompt sangat terkait dengan checkpoint model tertentu. Pada versi model baru, prompt yang sama bisa bekerja secara berbeda.
Panduan gaya prompt (dasar)
- Pertimbangkan penggunaan Markdown : simpan setiap prompt sebagai file Markdown terpisah, lalu susun judul dan bagian dengan baik untuk meningkatkan keterbacaan.
- Pertimbangkan pengguna lain : prompt harus ditulis bukan hanya untuk model, tetapi juga untuk pihak yang bertanggung jawab atas pemeliharaan.
- Jaga kesederhanaan : jika prompt terlalu panjang atau kompleks, beban pemeliharaan saat model berubah dapat meningkat. Tulis secara ringkas dan jelas.
- Utamakan instruksi zero-shot : instruksi zero-shot sederhana serta mudah di-debug dan dipahami. few-shot digunakan sebagai pilihan terakhir.
- Integrasikan contoh : sebaiknya contoh dimasukkan secara alami ke dalam instruksi dengan cara seperti "For example".
- Contoh: "Always start your response to the user with something passive aggressive. For example, start with something like 'Oh that’s what you want? ...'"
Prosedur perbaikan iteratif untuk instruksi sistem baru
- Pengembangan prompt adalah proses iteratif
- Menulis prompt mirip dengan proses melatih model menggunakan dataset validasi.
- Kuncinya adalah menulis kalimat yang jelas dan ringkas, serta efektif jika pendekatannya memisahkan tahap pembuatan dan penyuntingan.
- Bisa mulai tanpa dataset validasi
- Pada tahap awal, bangun MVP (Minimum Viable Product) sederhana dengan cepat, lalu lacak performanya melalui evaluasi kuantitatif di tahap berikutnya.
- Desain yang baik penting agar produk tetap bekerja stabil meskipun ada perilaku model yang tidak terduga.
Prosedur iteratif instruksi sistem
- Siapkan beragam contoh input
- Kumpulkan sekitar 10~50 contoh input yang beragam dan merepresentasikan masalah dengan baik.
- Bentuk intuisi terhadap perilaku output yang diinginkan.
- Mulai dengan instruksi sederhana
- Tulis instruksi yang sesederhana dan sejelas mungkin.
- Gunakan dulu model dengan anggaran rendah (misalnya Gemini Flash 8B).
- Jalankan pada contoh input pertama
- Uji agar model menghasilkan respons yang sesuai.
- Overfit pada contoh pertama
- Tambahkan "pengingat" pada instruksi untuk mengatasi cacat spesifik yang ditemukan dalam respons model.
- Contoh: jika seharusnya hanya mengekstrak nama orang tetapi nama gedung juga ikut masuk, sebutkan hal itu secara eksplisit dalam instruksi.
- Pindah ke contoh berikutnya
- Uji apakah instruksi juga efektif pada contoh input lain.
- Jika ada instruksi yang terlalu disesuaikan dengan contoh pertama, sesuaikan agar lebih tergeneralisasi.
- Rapikan instruksi
- Setelah membuat instruksi yang berfungsi untuk semua contoh input, rapikan kalimatnya dan perbaiki salah eja.
- Pastikan instruksi yang sudah dirapikan masih berfungsi pada semua contoh.
- Potensi otomatisasi
- Di masa depan, alat meta-optimisasi mungkin dapat mengotomatiskan pembuatan instruksi.
- Namun, analisis kualitatif dan pekerjaan jaminan kualitas tetap diperlukan.
> Penting
> Analisis kualitatif bersifat esensial dalam pengembangan model dan tidak bisa dihindari.
Situasi ketika LLM berguna
- Masalah yang mudah diverifikasi
- LLM paling cocok untuk masalah yang "sulit menghasilkan jawabannya, tetapi mudah diverifikasi".
- Contoh: lihat postingan Chris Gorgolewski tentang "sweet spot" generative AI.
- Uraikan masalah menjadi submasalah
- Alih-alih prompt yang kompleks, pecah masalah menjadi submasalah yang terdefinisi dengan baik untuk membangun rantai penalaran model.
- Pendekatan dengan mempertimbangkan masa depan
- Pertimbangkan kemungkinan meningkatnya kapasitas inferensi berkat inovasi hardware dan model bisnis.
- Rancang fitur berdasarkan nilai, bukan biaya saat ini.
- Penurunan biaya inferensi
- Biaya inferensi diperkirakan akan terus menurun, sehingga diperlukan pengambilan keputusan yang berfokus pada "nilai".
- Untuk mewujudkan fitur yang lebih bernilai, pertimbangkan rollout bertahap dengan memperhitungkan batasan ekonomi saat ini.
> Perkiraan
> Ada kemungkinan penurunan harga biaya inferensi LLM yang setara dengan Hukum Moore.
Belum ada komentar.