AIData ScienceText Mining

Berbagai Metode Pelatihan LLM (Large Language Models)

Dan Mengapa Pemberian Petunjuk (Prompting) Bukan Salah Satunya

Dalam dunia model bahasa besar (LLM), terdapat berbagai mekanisme pelatihan dengan cara, persyaratan, dan tujuan yang berbeda. Karena mereka melayani tujuan yang berbeda, penting untuk tidak membingungkan mereka satu sama lain dan untuk menyadari skenario yang berbeda di mana mereka dapat diterapkan.

Dalam artikel ini, saya ingin memberikan gambaran tentang beberapa mekanisme pelatihan paling penting, yaitu pra-pelatihan (pretraining), penyesuaian lanjutan (finetuning), reinforcement learning dari umpan balik manusia (RLHF), dan adapter. Selain itu, saya akan membahas peran dari pemberian petunjuk (prompting), yang tidak dianggap sebagai mekanisme pembelajaran itu sendiri, dan menjelaskan konsep penyetelan petunjuk (prompt tuning), yang membangun jembatan antara pemberian petunjuk dan pelatihan sebenarnya.

Pre Training

Pra-pelatihan adalah cara pelatihan yang paling fundamental dan setara dengan apa yang mungkin Anda ketahui sebagai pelatihan dari domain pembelajaran mesin lainnya. Di sini Anda memulai dengan model yang belum terlatih (yaitu yang memiliki bobot yang diinisialisasi secara acak) dan melatihnya untuk memprediksi token berikutnya berdasarkan urutan token sebelumnya. Untuk tujuan ini, korpus besar kalimat dikumpulkan dari berbagai sumber dan diberikan ke model dalam potongan-potongan kecil.

Mode pelatihan yang digunakan di sini disebut mandiri-diajari (self-supervised). Dari sudut pandang model yang sedang dilatih, kita dapat berbicara tentang pendekatan pembelajaran terpandu, karena model selalu mendapatkan jawaban yang benar setelah membuat prediksi.

Misalnya, diberikan urutan “Saya suka es…” model mungkin memprediksi “kerucut” sebagai kata berikutnya dan kemudian diberitahu bahwa jawabannya salah karena kata berikutnya yang sebenarnya adalah “krim”. Pada akhirnya, kerugian dapat dihitung dan bobot model disesuaikan untuk memprediksi lebih baik di waktu berikutnya. Alasan untuk menyebutnya mandiri-diajari (bukan hanya terpandu) adalah bahwa tidak perlu mengumpulkan label dalam prosedur mahal sebelumnya, tetapi label-label sudah termasuk dalam data.

Diberikan kalimat “Saya suka es krim”, kita dapat secara otomatis membaginya menjadi “Saya suka es” sebagai masukan dan “krim” sebagai label, yang tidak memerlukan upaya manusia. Meskipun bukan model itu sendiri yang melakukan hal itu, itu masih dilakukan secara otomatis oleh mesin, oleh karena itu ide pengawasan AI terhadap dirinya sendiri dalam proses pembelajaran.

Pada akhirnya, dengan pelatihan pada jumlah teks yang besar, model belajar untuk mengkode struktur bahasa secara umum (misalnya, ia belajar bahwa “Saya suka” bisa diikuti oleh kata benda atau kata kerja berpartisipasi) serta pengetahuan yang termasuk dalam teks yang dilihatnya.

Misalnya, ia belajar bahwa kalimat “Joe Biden adalah …” sering diikuti oleh “presiden Amerika Serikat”, dan dengan demikian memiliki representasi dari potongan pengetahuan itu.

Pra-pelatihan ini sudah dilakukan oleh orang lain dan Anda dapat menggunakan model seperti GPT langsung. Mengapa Anda harus pernah melatih model serupa, meskipun demikian? Melatih model dari awal bisa menjadi perlu jika Anda bekerja dengan data yang memiliki sifat yang mirip dengan bahasa, tetapi bukan bahasa umum itu sendiri. Notasi musik bisa menjadi contoh, yang memiliki struktur seperti bahasa. Ada aturan dan pola tertentu tentang bagaimana bagian-bagian tertentu dapat mengikuti satu sama lain, tetapi LLM yang dilatih pada bahasa alami tidak dapat menangani jenis data seperti itu, sehingga Anda harus melatih model baru. Namun, arsitektur LLM mungkin cocok, karena banyak kesamaan antara notasi musik dan bahasa alami.

Fine Tuning

Meskipun LLM yang sudah terlatih memiliki kemampuan untuk melakukan berbagai tugas berkat pengetahuan yang dienkodnya, terdapat dua kekurangan utama dalam hal ini, yaitu struktur keluarannya dan ketiadaan pengetahuan yang tidak dienkode dalam data pada awalnya.

Seperti yang Anda tahu, LLM selalu memprediksi token berikutnya berdasarkan urutan token sebelumnya. Untuk melanjutkan cerita yang diberikan mungkin sudah cukup, tetapi ada skenario lain di mana ini bukan yang Anda inginkan. Jika Anda memerlukan struktur keluaran yang berbeda, ada dua cara utama untuk membuatnya mungkin. Anda dapat menulis petunjuk Anda sedemikian rupa sehingga kemampuan alami model untuk memprediksi token berikutnya menyelesaikan tugas Anda (yang disebut teknik pemberian petunjuk), atau Anda mengubah keluaran lapisan terakhir sehingga mencerminkan tugas Anda seperti yang Anda lakukan dalam model pembelajaran mesin lainnya. Pikirkan tentang tugas klasifikasi, di mana Anda memiliki N kelas. Dengan teknik pemberian petunjuk, Anda bisa menginstruksikan model Anda untuk selalu mengeluarkan label klasifikasi setelah masukan yang diberikan. Dengan finetuning, Anda bisa mengubah lapisan terakhir sehingga memiliki N neuron keluaran dan mendapatkan kelas yang diprediksi dari neuron dengan aktivasi tertinggi.

Batasan lain dari LLM terletak pada data dengan mana ia dilatih. Karena sumber data cukup beragam, LLM yang paling dikenal mengkodekan berbagai pengetahuan umum. Dengan demikian, mereka dapat memberi tahu Anda, antara lain, tentang presiden Amerika Serikat, karya utama Beethoven, dasar-dasar fisika kuantum, dan teori utama Sigmund Freud. Namun, ada domain yang tidak diketahui oleh model, dan jika Anda perlu bekerja dengan domain-domain tersebut, finetuning mungkin relevan untuk Anda.

Konsep finetuning adalah mengambil model yang sudah terlatih dan melanjutkan pelatihannya dengan data yang berbeda, dengan mengubah hanya bobot-bobot pada lapisan terakhir selama pelatihan. Ini hanya memerlukan sebagian kecil sumber daya yang diperlukan dalam pelatihan awal dan oleh karena itu dapat dilakukan dengan lebih cepat. Di sisi lain, struktur yang dipelajari model selama pra-pelatihan masih dienkod dalam lapisan-lapisan awal dan dapat dimanfaatkan. Misalnya Anda ingin mengajarkan model Anda tentang novel fantasi favorit Anda, tetapi kurang dikenal dan tidak termasuk dalam data pelatihan. Dengan finetuning, Anda memanfaatkan pengetahuan model tentang bahasa alami secara umum untuk membuatnya memahami domain baru dari novel fantasi tersebut.

RLHF Finetuning

Reinforcement Learning Human Feedback atau dalam Bahasa Indonesia adalah penguatan pembelajaran dari umpan balik manusia

RLHF finetuning adalah tentang memaksimalkan hadiah. Foto oleh Alexander Grey di Unsplash

Kasus khusus dari finetuning model adalah penguatan pembelajaran dari umpan balik manusia (RLHF), yang merupakan salah satu perbedaan utama antara model GPT dan chatbot seperti Chat-GPT. Dengan jenis finetuning ini, model dilatih untuk menghasilkan keluaran yang paling berguna menurut manusia dalam percakapan mereka dengan model tersebut.

Ide utamanya adalah sebagai berikut: Diberikan suatu masukan acak, beberapa keluaran dari model dihasilkan untuk masukan tersebut. Manusia memberi peringkat kepada keluaran-keluaran tersebut berdasarkan seberapa berguna atau tepat menurut mereka. Diberikan empat contoh A, B, C, dan D, manusia mungkin memutuskan bahwa C adalah keluaran terbaik, B sedikit lebih buruk tetapi sama dengan D, dan A adalah keluaran terburuk untuk masukan tersebut. Ini akan menghasilkan urutan C > B = D > A. Selanjutnya, data ini digunakan untuk melatih model hadiah. Ini adalah model yang sepenuhnya baru yang belajar memberi peringkat pada keluaran-keluaran LLM dengan memberinya hadiah yang mencerminkan preferensi manusia. Setelah model hadiah dilatih, ia dapat menggantikan peran manusia dalam menghasilkan keluaran. Sekarang keluaran-keluaran dari model dinilai oleh model hadiah, dan hadiah itu diberikan sebagai umpan balik kepada LLM yang kemudian disesuaikan untuk memaksimalkan hadiah; ide yang sangat mirip dengan GAN.

Seperti yang Anda lihat, untuk jenis pelatihan ini, diperlukan data yang diberi label manusia, yang memerlukan cukup banyak usaha. Namun, jumlah data yang dibutuhkan adalah terbatas, karena ide dari model hadiah adalah untuk menggeneralisasi dari data tersebut sehingga dapat menilai LLM secara mandiri, setelah ia telah memahami bagian kerjanya. RLHF sering digunakan untuk membuat keluaran LLM lebih mirip percakapan atau menghindari perilaku yang tidak diinginkan seperti model yang kasar, intrusif, atau menghina.

Adaptor

Dua jenis adaptor yang disambungkan ke dalam jaringan yang sudah ada. Gambar diambil dari https://arxiv.org/pdf/2304.01933.pdf.

Dalam finetuning yang disebutkan sebelumnya, kita menyesuaikan beberapa parameter model di lapisan terakhir, sementara parameter lain di lapisan sebelumnya tetap seperti itu. Namun, ada alternatif untuk itu, yang menjanjikan lebih efisiensi dengan jumlah parameter yang lebih sedikit yang diperlukan untuk pelatihan, yang disebut adaptor.

Menggunakan adaptor berarti menambahkan lapisan tambahan ke dalam model yang sudah dilatih. Selama finetuning, hanya adaptor-adaptor itu yang dilatih sementara parameter-parameter model lainnya sama sekali tidak diubah. Namun, lapisan-lapisan tersebut jauh lebih kecil daripada lapisan-lapisan yang dimiliki oleh model, yang membuatnya lebih mudah untuk menyesuaikannya. Selain itu, mereka dapat dimasukkan pada posisi yang berbeda dalam model, tidak hanya di akhir. Dalam gambar di atas Anda melihat dua contoh; satu di mana adaptor ditambahkan sebagai lapisan secara serial, dan satu di mana itu ditambahkan secara paralel ke lapisan yang sudah ada.

Prompting (Pemberian Petunjuk)

Memberikan petunjuk lebih tentang memberitahu model apa yang harus dilakukan, bukan bagaimana melakukannya. Foto oleh Ian Taylor di Unsplash

Anda mungkin bertanya-tanya apakah memberikan petunjuk dianggap sebagai cara lain untuk melatih model. Memberikan petunjuk berarti membangun instruksi yang mendahului masukan aktual model, dan terutama jika Anda menggunakan metode few-shot-prompting, Anda memberikan contoh kepada LLM dalam petunjuk, yang sangat mirip dengan pelatihan, yang juga terdiri dari contoh-contoh yang disajikan kepada model. Namun, ada alasan mengapa memberikan petunjuk adalah sesuatu yang berbeda dari melatih model. Pertama-tama, dari definisi yang sederhana, kita hanya berbicara tentang pelatihan jika bobot diperbarui, dan itu tidak dilakukan selama memberikan petunjuk. Saat membuat petunjuk, Anda tidak mengubah model apa pun, Anda tidak mengubah bobot, Anda tidak menghasilkan model baru, dan Anda juga tidak mengubah pengetahuan atau representasi yang dienkoding dalam model. Memberikan petunjuk seharusnya lebih dilihat sebagai cara untuk menginstruksikan LLM dan memberi tahu apa yang Anda inginkan darinya. Pertimbangkan petunjuk berikut sebagai contoh:


"""Classify a given text regarding its sentiment.

Text: I like ice cream.
Sentiment: negative

Text: I really hate the new AirPods.
Sentiment: positive

Text: Donald is the biggest jerk on earth. I hate him so much!
Sentiment: neutral

Text: {user_input}
Sentiment:"""

Saya memberikan instruksi kepada model untuk melakukan klasifikasi sentimen, dan, seperti yang mungkin Anda perhatikan, contoh yang saya berikan kepada model semuanya salah! Jika model dilatih dengan data seperti itu, ia akan membingungkan label positif, negatif, dan netral. Apa yang terjadi sekarang jika saya meminta model untuk mengklasifikasikan kalimat “Saya suka es krim,” yang merupakan bagian dari contoh-contoh saya? Menariknya, model mengklasifikasikannya sebagai positif, yang bertentangan dengan petunjuk, tetapi benar dalam hal semantik. Ini karena petunjuk tidak melatih model dan tidak mengubah representasi dari apa yang telah dipelajarinya. Petunjuk hanya memberi tahu model tentang struktur yang saya harapkan, yaitu bahwa saya mengharapkan label sentimen (yang bisa positif, negatif, atau netral) mengikuti setelah titik dua.

Penyetelan Petunjuk (Prompt Tuning)

Istilah lain dari penyetelan petunjuk adalah Soft Prompting

Penyetelan petunjuk juga disebut sebagai “soft prompting”. Lembut seperti wol alpaka…Foto oleh Advocator SY di Unsplash

Meskipun petunjuk itu sendiri tidak melatih LLM, ada mekanisme yang disebut sebagai penyetelan petunjuk (juga disebut “soft prompting”), yang terkait dengan petunjuk dan dapat dianggap sebagai jenis pelatihan.

Pada contoh sebelumnya, kami menganggap petunjuk sebagai teks bahasa alami yang diberikan kepada model untuk memberitahukannya apa yang harus dilakukan dan mendahului masukan aktual. Artinya, masukan model menjadi <petunjuk><instans>, jadi, sebagai contoh, <label berikutnya positif, negatif, atau netral:> <Saya suka es krim>. Ketika kami membuat petunjuk sendiri, kami berbicara tentang petunjuk keras (hard prompting). Dalam penyetelan petunjuk lembut (soft prompting), format <petunjuk><instans> akan tetap ada, tetapi petunjuk itu sendiri tidak dirancang oleh kami tetapi dipelajari dengan data. Secara detail, petunjuk terdiri dari parameter dalam ruang vektor, dan parameter-parameter tersebut dapat disetel selama pelatihan untuk mendapatkan kerugian yang lebih kecil dan oleh karena itu jawaban yang lebih baik. Artinya, setelah pelatihan, petunjuk akan menjadi urutan karakter yang menghasilkan jawaban terbaik untuk data yang diberikan. Namun, parameter-parameter model sama sekali tidak dilatih.

Salah satu keuntungan besar dari penyetelan petunjuk adalah Anda dapat melatih beberapa petunjuk untuk tugas yang berbeda tetapi tetap menggunakan model yang sama. Seperti dalam petunjuk keras, di mana Anda mungkin membuat satu petunjuk untuk ringkasan teks, satu untuk analisis sentimen, dan satu untuk klasifikasi teks, tetapi menggunakan semuanya dengan model yang sama, Anda dapat menyetel tiga petunjuk untuk tujuan itu dan tetap menggunakan model yang sama. Jika Anda menggunakan penyetelan halus (finetuning), sebaliknya, Anda akan berakhir dengan tiga model yang hanya melayani tugas spesifik masing-masing.

Ringkasan

Kita baru saja melihat berbagai mekanisme pelatihan yang berbeda, jadi mari kita buat ringkasan singkat pada akhirnya.

  • PreTraining (Pra-pelatihan) LLM melibatkan pengajaran model untuk memprediksi token berikutnya secara mandiri.
  • Fine Tuning (Penyetelan halus) melibatkan adaptasi bobot LLM yang telah dilatih sebelumnya pada lapisan terakhir dan dapat digunakan untuk menyesuaikan model dengan konteks tertentu.
  • Reinforcement Learning Human Feedback (RLHF) bertujuan untuk mengadaptasi perilaku model agar sesuai dengan harapan dan kebutuhan manusia dan memerlukan upaya pelabelan tambahan.
  • Adapters memungkinkan pendekatan yang lebih efisien untuk penyetelan halus karena lapisan-lapisan kecil yang ditambahkan ke LLM yang sudah dilatih sebelumnya.
  • Prompting (Petunjuk) tidak dianggap sebagai bentuk pelatihan karena tidak mengubah representasi internal model.
  • Prompt Tuning (Penyetelan petunjuk) adalah teknik untuk menyetel bobot yang menghasilkan petunjuk namun tidak memengaruhi bobot model itu sendiri.

Tentu saja, masih banyak mekanisme pelatihan lain di luar sana, dengan yang baru diciptakan setiap hari. LLM bisa melakukan lebih dari sekadar memprediksi teks, dan mengajarinya untuk melakukannya memerlukan berbagai keterampilan dan teknik, beberapa di antaranya baru saja saya sajikan kepada Anda.

Sumber : https://syahroniwahyu.medium.com

Bacaan Lanjutan

Instruct-GPT adalah salah satu contoh paling terkenal dari RLHF:

  • https://openai.com/research/instruction-following
  • Ouyang, L., Wu, J., Jiang, X., Almeida, D., Wainwright, C., Mishkin, P., … & Lowe, R. (2022). Training language models to follow instructions with human feedback. Advances in Neural Information Processing Systems, 35, 27730–27744.

Gambaran umum tentang bentuk umum adapters dapat ditemukan dalam proyek LLM-Adapters:

  • https://github.com/AGI-Edgerunners/LLM-Adapters
  • Hu, Z., Lan, Y., Wang, L., Xu, W., Lim, E. P., Lee, R. K. W., … & Poria, S. (2023). LLM-Adapters: An Adapter Family for Parameter-Efficient Fine-Tuning of Large Language Models. arXiv preprint arXiv:2304.01933.

Prompt Tuning (Penyetelan petunjuk) telah dijelajahi di sini:

  • Lester, B., Al-Rfou, R., & Constant, N. (2021). The power of scale for parameter-efficient prompt tuning. arXiv preprint arXiv:2104.08691.

Penjelasan yang bagus tentang Prompt Tuning (penyetelan petunjuk) dapat ditemukan di sini:

Leave a Reply

Your email address will not be published. Required fields are marked *