2024 ialah tahun perkembangan pesat model bahasa besar (LLM). Dalam latihan LLM, kaedah penjajaran ialah cara teknikal yang penting, termasuk penyeliaan penalaan halus (SFT) dan pembelajaran pengukuhan dengan maklum balas manusia yang bergantung pada pilihan manusia (RLHF). Kaedah ini telah memainkan peranan penting dalam pembangunan LLM, tetapi kaedah penjajaran memerlukan sejumlah besar data beranotasi manual. Menghadapi cabaran ini, penalaan halus telah menjadi bidang penyelidikan yang rancak, dengan para penyelidik giat berusaha untuk membangunkan kaedah yang boleh mengeksploitasi data manusia dengan berkesan. Oleh itu, pembangunan kaedah penjajaran akan menggalakkan lagi kejayaan dalam teknologi LLM.
Universiti California baru-baru ini menjalankan kajian dan memperkenalkan teknologi baharu yang dipanggil SPIN (Self Play fIne tuNing). SPIN menggunakan mekanisme bermain sendiri yang berjaya dalam permainan seperti AlphaGo Zero dan AlphaZero untuk membolehkan LLM (Model Pembelajaran Bahasa) mengambil bahagian dalam bermain sendiri. Teknologi ini menghapuskan keperluan untuk anotasi profesional, sama ada manusia atau model yang lebih maju (seperti GPT-4). Proses latihan SPIN melibatkan latihan model bahasa baharu dan membezakan respons yang dijana sendiri daripada respons yang dijana manusia melalui satu siri lelaran. Matlamat utama adalah untuk membangunkan model bahasa yang menghasilkan respons yang tidak dapat dibezakan daripada respons manusia. Tujuan penyelidikan ini adalah untuk meningkatkan lagi keupayaan pembelajaran kendiri model bahasa dan menjadikannya lebih dekat dengan ekspresi dan pemikiran manusia. Hasil penyelidikan ini dijangka membawa penemuan baru kepada pembangunan pemprosesan bahasa semula jadi.
Permainan kendiri ialah teknik pembelajaran yang meningkatkan cabaran dan kerumitan persekitaran pembelajaran dengan bermain menentang salinan diri sendiri. Pendekatan ini membolehkan ejen berinteraksi dengan versi dirinya yang berbeza, dengan itu meningkatkan keupayaannya. AlphaGo Zero ialah kes permainan diri yang berjaya.
Permainan kendiri telah terbukti sebagai kaedah yang berkesan dalam pembelajaran pengukuhan pelbagai agen (MARL). Walau bagaimanapun, menerapkannya pada penambahan model bahasa besar (LLM) ialah pendekatan baharu. Dengan menggunakan permainan kendiri pada model bahasa yang besar, keupayaan mereka untuk menjana teks yang lebih koheren dan kaya dengan maklumat boleh dipertingkatkan lagi. Kaedah ini dijangka menggalakkan pembangunan dan penambahbaikan model bahasa selanjutnya.
Main kendiri boleh digunakan dalam tetapan kompetitif atau koperatif. Dalam persaingan, salinan algoritma bersaing antara satu sama lain untuk mencapai matlamat dalam kerjasama, salinan bekerja bersama untuk mencapai matlamat bersama. Ia boleh digabungkan dengan pembelajaran diselia, pembelajaran pengukuhan dan teknologi lain untuk meningkatkan prestasi.
SPIN adalah seperti permainan dua pemain. Dalam permainan ini:
Peranan model induk (LLM baharu) adalah untuk belajar membezakan antara respons yang dihasilkan oleh model bahasa (LLM) dan respons yang dicipta oleh manusia. Dalam setiap lelaran, model induk secara aktif melatih LLM untuk meningkatkan keupayaannya untuk mengenali dan membezakan respons.
Model lawan (LLM lama) ditugaskan untuk menghasilkan tindak balas yang serupa dengan yang dihasilkan oleh manusia. Ia dijana melalui LLM lelaran sebelumnya, menggunakan mekanisme permainan sendiri untuk menjana output berdasarkan pengetahuan lepas. Matlamat model lawan adalah untuk mencipta respons yang begitu realistik sehingga LLM baharu tidak dapat memastikan ia dijana mesin.
Bukankah proses ini sangat serupa dengan GAN, tetapi ia masih tidak sama
Dinamik SPIN melibatkan penggunaan set data penalaan halus (SFT) yang diselia, yang terdiri daripada input (x) dan output (y ) berpasangan. Contoh-contoh ini diberi anotasi oleh manusia dan berfungsi sebagai asas untuk melatih model utama untuk mengenali respons seperti manusia. Beberapa set data SFT awam termasuk Dolly15K, Baize, Ultrachat, dsb.
Untuk melatih model utama membezakan antara model bahasa (LLM) dan tindak balas manusia, SPIN menggunakan fungsi objektif. Fungsi ini mengukur jurang nilai yang dijangkakan antara data sebenar dan tindak balas yang dihasilkan oleh model lawan. Matlamat model utama adalah untuk memaksimumkan jurang nilai yang dijangka ini. Ini melibatkan memberikan nilai tinggi kepada isyarat yang dipasangkan dengan respons daripada data sebenar, dan memberikan nilai rendah kepada pasangan respons yang dihasilkan oleh model lawan. Fungsi objektif ini dirumuskan sebagai masalah pengecilan.
Tugas model induk adalah untuk meminimumkan fungsi kehilangan, yang mengukur perbezaan antara nilai tugasan berpasangan daripada data sebenar dan nilai tugasan berpasangan daripada respons model lawan. Sepanjang proses latihan, model induk melaraskan parameternya untuk meminimumkan fungsi kehilangan ini. Proses berulang ini berterusan sehingga model induk mahir dalam membezakan tindak balas LLM secara berkesan daripada tindak balas manusia.
Mengemas kini model lawan melibatkan peningkatan keupayaan model induk, yang semasa latihan telah belajar membezakan antara data sebenar dan tindak balas model bahasa. Apabila model induk bertambah baik dan pemahamannya tentang kelas fungsi tertentu dipertingkatkan, kami juga perlu mengemas kini parameter seperti model lawan. Apabila pemain induk berhadapan dengan gesaan yang sama, ia menggunakan diskriminasi yang dipelajari untuk menilai nilai mereka.
Matlamat pemain model lawan adalah untuk meningkatkan model bahasa supaya responsnya tidak dapat dibezakan daripada data sebenar pemain induk. Ini memerlukan penyediaan proses untuk melaraskan parameter model bahasa. Matlamatnya adalah untuk memaksimumkan penilaian model induk terhadap tindak balas model bahasa sambil mengekalkan kestabilan. Ini melibatkan tindakan mengimbangi, memastikan bahawa penambahbaikan tidak tersasar terlalu jauh daripada model bahasa asal.
Kedengarannya agak mengelirukan, mari kita ringkaskan secara ringkas:
Hanya ada satu model semasa latihan, tetapi model tersebut dibahagikan kepada model pusingan sebelumnya (model LLM/lawan lama) dan model utama (sedang dilatih), penggunaan Output model yang dilatih dibandingkan dengan output pusingan model sebelumnya untuk mengoptimumkan latihan model semasa. Tetapi di sini kita dikehendaki mempunyai model terlatih sebagai model lawan, jadi algoritma SPIN hanya sesuai untuk memperhalusi hasil latihan.
SPIN menjana data sintetik daripada model pra-latihan. Data sintetik ini kemudiannya digunakan untuk memperhalusi model pada tugasan baharu.
Di atas ialah kod pseudo algoritma Spin dalam kertas asal Nampaknya agak sukar untuk difahami.
Kertas asal menggunakan Zephyr-7B-SFT-Full sebagai model asas. Untuk set data, mereka menggunakan subset korpus Ultrachat200k yang lebih besar, yang terdiri daripada kira-kira 1.4 juta perbualan yang dijana menggunakan API Turbo OpenAI. Mereka mengambil sampel 50k isyarat secara rawak dan menggunakan model asas untuk menjana tindak balas sintetik.
1 |
|
Templat gesaan pengarang "### Arahan: {prompt}nn### Respons:"
1 |
|
Kemudian kami mendapat data yang serupa dengan yang berikut:
Algoritma SPIN mengemas kini model bahasa (LLM) mengikut parameter lelaran untuk memastikannya konsisten dengan tindak balas ground-truth. Proses ini berterusan sehingga sukar untuk membezakan tindak balas yang dihasilkan daripada kebenaran asas, sekali gus mencapai tahap persamaan yang tinggi (kehilangan berkurangan).
Algoritma SPIN mempunyai dua gelung. Gelung dalam dijalankan berdasarkan bilangan sampel yang kami gunakan, dan gelung luar dijalankan untuk sejumlah 3 lelaran, kerana pengarang mendapati prestasi model tidak berubah selepas ini. Pustaka Buku Panduan Alignment digunakan sebagai perpustakaan kod untuk kaedah penalaan halus, digabungkan dengan modul DeepSpeed untuk mengurangkan kos latihan. Mereka melatih Zephyr-7B-SFT-Full dengan pengoptimum RMSProp, tanpa pereputan berat untuk semua lelaran, seperti yang biasanya digunakan untuk memperhalusi llm. Saiz kelompok global ditetapkan kepada 64, menggunakan ketepatan bfloat16. Kadar pembelajaran puncak untuk lelaran 0 dan 1 ditetapkan kepada 5e-7, dan kadar pembelajaran puncak untuk lelaran 2 dan 3 mereput kepada 1e-7 apabila gelung menghampiri penghujung penalaan halus bermain sendiri. Akhirnya β = 0.1 dipilih dan panjang jujukan maksimum ditetapkan kepada 2048 token. Berikut adalah parameter ini
1 |
|
Gelung dalaman ini bertanggungjawab untuk menghasilkan respons yang perlu konsisten dengan data sebenar, iaitu kod kumpulan latihan
1 |
|
Ini ialah peringatan Contoh nilai sebenar dan keluaran model.
df zephyr_sft_output baharu, yang mengandungi petunjuk dan output sepadannya yang dijana oleh model asas Zephyr-7B-SFT-Full.
Sebelum pengekodan masalah pengecilan, adalah penting untuk memahami cara mengira taburan kebarangkalian bersyarat bagi output yang dijana oleh llm. Kertas asal menggunakan proses Markov, di mana taburan kebarangkalian bersyarat pθ (y|x) boleh dinyatakan melalui penguraian sebagai:
Penguraian ini bermakna kebarangkalian jujukan output yang diberi jujukan input boleh dinyatakan dengan membahagikan. jujukan input yang diberikan Setiap token keluaran dikira dengan mendarab kebarangkalian token keluaran sebelumnya. Sebagai contoh, urutan output ialah "Saya seronok membaca buku" dan urutan input ialah "Saya seronok". akan menjadi Taburan kebarangkalian yang digunakan untuk mengira kebenaran asas dan tindak balas Zephyr LLM, yang kemudiannya digunakan untuk mengira fungsi kerugian. Tetapi pertama-tama kita perlu mengekod fungsi kebarangkalian bersyarat.
1 |
|
Fungsi kehilangan Ia mengandungi empat pembolehubah kebarangkalian bersyarat yang penting. Setiap pembolehubah ini bergantung pada data sebenar asas atau data sintetik yang dibuat sebelum ini.
而lambda是一个正则化参数,用于控制偏差。在KL正则化项中使用它来惩罚对手模型的分布与目标数据分布之间的差异。论文中没有明确提到lambda的具体值,因为它可能会根据所使用的特定任务和数据集进行调优。
1 |
|
如果你有一个大的数据集,可以使用一个较小的lambda值,或者如果你有一个小的数据集,则可能需要使用一个较大的lambda值来防止过拟合。由于我们数据集大小为50k,所以可以使用0.01作为lambda的值。
这就是Pytorch训练的一个基本流程,就不详细解释了:
1 |
|
我们运行3个epoch,它将进行训练并生成最终的Zephyr SFT LLM版本。官方实现还没有在GitHub上开源,这个版本将能够在某种程度上产生类似于人类反应的输出。我们看看他的运行流程
SPIN可以显著提高LLM在各种基准测试中的性能,甚至超过通过直接偏好优化(DPO)补充额外的GPT-4偏好数据训练的模型。
当我们继续训练时,随着时间的推移,进步会变得越来越小。这表明模型达到了一个阈值,进一步的迭代不会带来显著的收益。这是我们训练数据中样本提示符每次迭代后的响应。
Atas ialah kandungan terperinci Pengoptimuman LLM menggunakan teknologi SPIN untuk latihan penalaan halus permainan sendiri. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!