Sebelum memasukkan teks, pertimbangkan gesaan model bahasa Transformer (LM) seperti ChatGPT:
Dengan berjuta-juta pengguna dan pertanyaan yang dijana setiap hari, ChatGPT menggunakan mekanisme perhatian kendiri untuk mengekod gesaan secara berulang, dengan masa dan kerumitan memori berkembang secara kuadratik dengan panjang input. Caching pengaktifan transformer untuk gesaan menghalang pengiraan semula separa, tetapi strategi ini masih memerlukan kos ingatan dan penyimpanan yang ketara apabila bilangan gesaan cache meningkat. Pada skala, walaupun pengurangan kecil dalam panjang segera boleh mengakibatkan pengiraan, ingatan dan penjimatan storan sambil turut membenarkan pengguna memuatkan lebih banyak kandungan ke dalam tetingkap konteks terhad LM.
Kemudian. Bagaimana untuk mengurangkan kos segera? Pendekatan biasa adalah untuk memperhalusi atau menyaring model supaya ia berkelakuan sama dengan model asal tanpa gesaan, mungkin menggunakan kaedah penyesuaian yang cekap parameter. Walau bagaimanapun, kelemahan asas pendekatan ini ialah model perlu dilatih semula setiap kali untuk gesaan baharu (ditunjukkan di tengah-tengah Rajah 1 di bawah).
Dalam artikel ini, penyelidik dari Universiti Stanford mencadangkan model gisting (bahagian bawah Rajah 1 di atas ), yang memampatkan sebarang gesaan ke dalam set token "Intisari" maya yang lebih kecil, serupa dengan penalaan halus awalan. Walau bagaimanapun, penalaan halus awalan memerlukan awalan pembelajaran untuk setiap tugasan melalui penurunan kecerunan, manakala Gisting menggunakan kaedah meta-pembelajaran untuk meramalkan awalan Gist hanya melalui gesaan tanpa mempelajari awalan untuk setiap tugas. Ini melunaskan kos pembelajaran awalan setiap tugas, membenarkan generalisasi kepada arahan yang tidak diketahui tanpa latihan tambahan.
Selain itu, memandangkan token "Gist" jauh lebih pendek daripada gesaan penuh, Gisting membenarkan gesaan dimampatkan, dicache dan digunakan semula untuk meningkatkan kecekapan pengiraan.
Alamat kertas: https://arxiv.org/pdf/2304.08467 v1.pdf
Penyelidik mencadangkan kaedah yang sangat mudah untuk mempelajari model intipati yang mengikut arahan: hanya memperhalusi arahan, masukkan token gish selepas gesaan, dan modify Token perhatian selepas menghalang token selepas token inti daripada merujuk kepada token sebelum token inti. Ini membolehkan model mempelajari pemampatan dan arahan segera mengikut serentak tanpa kos latihan tambahan.
Pada penyahkodr sahaja (LLaMA-7B) dan penyahkod pengekod (FLAN-T5-XXL) LM, gisting mencapai sehingga 26x mampatan segera sambil mengekalkan prestasi yang sama seperti Model asal kualiti keluaran yang serupa. Ini menghasilkan pengurangan FLOP sebanyak 40% semasa inferens, pecutan kependaman 4.2% dan mengurangkan kos penyimpanan dengan ketara berbanding kaedah caching segera tradisional.
Penyelidik mula-mula menerangkan intisari dalam konteks penalaan halus arahan. Untuk arahan berikut set data , t mewakili tugas yang dikodkan dalam gesaan bahasa semula jadi (cth. terjemahkan ini ke bahasa Perancis), x mewakili input (pilihan) tugasan (cth. Kucing), dan y mewakili output yang Diingini (cth. Le chat). Tujuan penalaan halus arahan adalah untuk mempelajari taburan pLM(y | t,x) dengan menggabungkan t dan x dan kemudian membiarkan model bahasa yang biasanya pra-latihan meramalkan y secara autoregresif. Semasa inferens, tugasan baharu t dan input x boleh digunakan untuk gesaan dan dinyahkod daripada model untuk mendapatkan hasil ramalan.
Walau bagaimanapun, corak penyambungan t dan x ini mempunyai kelemahan: LM berasaskan Transformer mempunyai tetingkap konteks terhad, yang dihadkan oleh seni bina atau kuasa pengkomputeran. Yang terakhir ini amat sukar untuk diselesaikan kerana perhatian kendiri berskala kuadratik dengan panjang input. Oleh itu, gesaan yang sangat panjang, terutamanya yang digunakan semula berulang kali, adalah tidak cekap dari segi pengiraan. Apakah pilihan yang tersedia untuk mengurangkan kos segera?
Pendekatan mudah adalah dengan melakukan penalaan halus LM untuk tugas t tertentu, iaitu diberikan set data yang mengandungi contoh input/output hanya di bawah tugas t, seseorang boleh mempelajari Khusus , yang lebih pantas kerana tidak perlu mempertimbangkan t.
Kaedah penalaan halus cekap parameter seperti awalan/penalaan pantas atau penyesuai boleh mencapai matlamat yang sama pada kos yang jauh lebih rendah daripada penalaan halus skala penuh. Walau bagaimanapun, masalah kekal: sekurang-kurangnya sebahagian daripada berat model untuk setiap tugasan mesti disimpan, dan yang lebih penting, untuk setiap tugasan t, set data pasangan input/output D^t yang sepadan mesti dikumpulkan dan model dilatih semula.
Gisting ialah pendekatan berbeza yang melunaskan dua kos: (1) kos masa inferens untuk mensyaratkan p_LM pada t, (2) pembelajaran untuk setiap t Kos masa latihan p^t_LM baharu . Ideanya ialah untuk mempelajari versi mampat t G (t) semasa penalaan halus, supaya inferens daripada p_G (y | G (t),x) adalah lebih pantas daripada daripada p_LM (y|t,x).
Dalam istilah LM, G (t) akan menjadi satu set token Gist "maya", yang bilangannya lebih sedikit daripada token dalam t, tetapi masih akan menyebabkan masalah yang sama dalam LM Tingkah laku. Pengaktifan pengubah (cth. matriks kunci dan nilai) pada G (t) kemudiannya boleh dicache dan digunakan semula untuk meningkatkan kecekapan pengiraan. Yang penting, penyelidik berharap G dapat membuat generalisasi kepada tugas yang tidak kelihatan: dengan tugasan baharu t, pengaktifan Gist G(t) yang sepadan boleh diramal dan digunakan tanpa sebarang latihan tambahan.
Di atas menerangkan rangka kerja umum Gisting, dan seterusnya kita akan meneroka cara yang sangat mudah untuk mempelajari model sedemikian: menggunakan LM sendiri Digunakan sebagai peramal Gist G. Ini bukan sahaja memanfaatkan pengetahuan sedia ada dalam LM, tetapi juga membolehkan pembelajaran inti dengan hanya melakukan penalaan halus arahan standard dan mengubah suai topeng perhatian Transformer untuk meningkatkan pemampatan segera. Ini bermakna Gisting tidak menanggung kos latihan tambahan dan hanya perlu diperhalusi berdasarkan arahan standard!
Khususnya, tambahkan token inti khas pada perbendaharaan kata model dan matriks benam, serupa dengan token mula/akhir ayat yang biasa dalam model sedemikian. Kemudian untuk sesuatu (tugas, input) tuple (t, x), gabungkan t dan x bersama-sama menggunakan set k token inti berturut-turut dalam (t, g_1, . . . , g_k, x), cth > . Urutan ini dimasukkan ke dalam model, dengan sekatan bahawa token input mengikut token inti tidak boleh merujuk token gesaan sebelumnya (tetapi mereka boleh merujuk token inti). Ini memaksa model untuk memampatkan maklumat dalam gesaan ke dalam token inti, kerana input x (output y) tidak boleh memproses gesaan t.
Pertama, dalam pengekod yang biasanya tidak mempunyai topeng, halang token input x daripada merujuk kepada token gesaan t. Tetapi ia juga perlu untuk menghalang t segera dan token inti g_i daripada merujuk kepada token input x, jika tidak pengekod akan mempelajari perwakilan inti yang berbeza bergantung pada input. Akhirnya penyahkod beroperasi secara normal kecuali semasa tempoh perhatian silang, apabila penyahkod perlu dihalang daripada merujuk kepada token segera t.
Hasil eksperimen
Untuk bilangan token inti yang berbeza, LLaMA- Keputusan penilaian ROUGE-L dan ChatGPT bagi 7B dan FLAN-T5-XXL ditunjukkan dalam Rajah 3 di bawah.
Model secara amnya tidak sensitif terhadap bilangan k token inti: memampatkan gesaan ke dalam satu token tidak mengakibatkan penurunan prestasi yang ketara. Malah, dalam beberapa kes, terlalu banyak token inti akan menjejaskan prestasi (cth. LLaMA-7B, 10 token intipati), mungkin kerana kapasiti peningkatan mengatasi pengedaran latihan. Oleh itu, penyelidik memberikan nilai khusus model token tunggal dalam Jadual 1 di bawah, dan menggunakan model inti tunggal dalam eksperimen yang tinggal.
Atas arahan yang dilihat, model intipati mencapai keputusan yang hampir sama dengan positif yang sepadan model kawalan Dengan prestasi ROUGE dan ChatGPT yang sama, kadar kemenangan pada LLaMA-7B FLANT5-XXL masing-masing ialah 48.6% dan 50.8%. Perkara yang paling diminati oleh penyelidik di sini ialah keupayaan generalisasi mereka pada tugas yang tidak kelihatan, yang perlu diukur melalui dua set data lain. Dalam gesaan ghaib dalam set data latihan Alpaca+, kita dapat melihat bahawa model intisari mempunyai keupayaan generalisasi yang kuat pada gesaan ghaib: berbanding dengan kumpulan kawalan, terdapat 49.7% (LLaMA ) dan 46.2% (FLAN-T5) kadar kemenangan. Pada perpecahan OOD Human yang paling mencabar, kadar kemenangan model utama menurun sedikit kepada 45.8% (LLaMA) dan 42.5% (FLANT5). Tujuan artikel ini adalah untuk memastikan model intisari meniru kefungsian model asal, jadi seseorang mungkin bertanya bila sebenarnya model intipati tidak dapat dibezakan daripada kumpulan kawalan. Rajah 4 di bawah menggambarkan kekerapan ini berlaku: untuk tugas yang dilihat (tetapi input yang tidak kelihatan), model inti adalah setanding dengan kumpulan kawalan hampir separuh masa. Untuk tugas yang tidak kelihatan, jumlah ini menurun kepada 20-25%. Untuk tugas OOD Human, nombor ini turun semula kepada 10%. Walau apa pun, kualiti keluaran model inti adalah sangat tinggi.
Secara keseluruhan, keputusan ini menunjukkan bahawa model intipati boleh memampatkan gesaan dengan pasti, Ini boleh dilakukan walaupun atas gesaan tertentu di luar pengedaran latihan, terutamanya LM kausa penyahkod sahaja seperti LLaMA. Model penyahkod pengekod seperti FLAN-T5 berprestasi lebih teruk Satu sebab yang mungkin adalah kerana topeng inti menyekat aliran perhatian dua arah dalam pengekod, yang lebih mencabar daripada hanya menutup sebahagian daripada sejarah dalam penyahkod autoregresif. Kerja lanjut diperlukan untuk menyiasat hipotesis ini pada masa hadapan. Akhir sekali, kembali kepada salah satu motivasi teras kerja ini: Apakah jenis peningkatan kecekapan yang boleh dibawa oleh gisting? Jadual 2 di bawah menunjukkan keputusan pas ke hadapan tunggal model menggunakan penganalisis PyTorch 2.0 (iaitu satu langkah penyahkodan autoregresif menggunakan token input tunggal), dan Human eval The 252 arahan dalam pemisahan dipuratakan. caching inti dengan ketara meningkatkan kecekapan berbanding model yang tidak dioptimumkan. Penjimatan dalam FLOP sebanyak 40% dan pengurangan masa jam sebanyak 4-7% telah dicapai untuk kedua-dua model.
Lebih penting lagi, walau bagaimanapun, berbanding cache arahan, cache intisari mempunyai lebih rendah kependaman Kelebihan utama selain: memampatkan 26 token menjadi 1 boleh mengosongkan lebih banyak ruang dalam tetingkap konteks input, yang dihadkan oleh pembenaman kedudukan mutlak atau GPU VRAM. Khusus untuk LLaMA-7B, setiap token dalam cache KV memerlukan 1.05MB ruang storan. Walaupun cache KV menyumbang sedikit berbanding jumlah memori yang diperlukan untuk inferens LLaMA-7B pada panjang gesaan yang diuji, senario yang semakin biasa adalah untuk pembangun menyimpan banyak gesaan merentas sebilangan besar pengguna, dan kos storan boleh meningkat dengan cepat. Dengan ruang storan yang sama, cache intipati boleh mengendalikan 26 kali lebih gesaan daripada cache arahan penuh. Kecekapan pengiraan, ingatan dan storan
Atas ialah kandungan terperinci Mampatkan 26 token ke dalam 1 kaedah baharu untuk menjimatkan ruang dalam kotak input ChatGPT. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!