Rumah >Peranti teknologi >AI >Apple membenarkan model besar belajar menjadi malas: meludahkan token pertama dengan lebih pantas dan mengekalkan ketepatan
Malas untuk bekerja lebih baik.
Llama 3.1 baru sahaja dikeluarkan, dah cuba ke belum? Walaupun anda mempunyai PC teratas terkini, anda mungkin masih mengalami ketinggalan yang ketara semasa menjalankan versi 8B terkecil. Untuk meningkatkan kecekapan penaakulan model, penyelidik telah menghasilkan pelbagai kaedah, tetapi kebanyakannya akan menyebabkan model itu mengorbankan beberapa ketepatan.
Baru-baru ini, pasukan penyelidik dari Apple dan Meta AI mencadangkan kaedah baharu yang boleh meningkatkan kelajuan inferens peringkat pra-pengisian Llama 2 kepada lebih daripada 2 kali ganda sambil memastikan ketepatan ini tidak menurun dengan ketara beberapa inspirasi untuk pecutan Llama 3.1. Mereka memanggil pendekatan ini LazyLLM, atau Lazy Large Language Model.
Paper Tajuk: Lazyllm: Pemangkasan Token Dinamik Untuk Konteks Lama LLM Inference LLM Alamat: https://arxiv.org/abs/2407.14057
so bagaimana mereka membuat llm malas ? Untuk memahami pendekatan mereka, pertama sekali kita perlu mengetahui rupa proses inferens LLM berasaskan segera standard. Secara ringkas, proses dibahagikan kepada dua peringkat: pra-pengisian dan penyahkodan, seperti yang ditunjukkan dalam Rajah 1.
Peringkat pra-pengisian diikuti dengan peringkat penyahkodan. Pada peringkat ini, model sekali lagi menggunakan KV cache untuk menyahkod token seterusnya secara berulang sehingga kriteria berhenti dipenuhi.
Dalam peringkat pra-penduduk, semua lapisan Transformer akan menggunakan semua token dalam keadaan segera. TTFT boleh menjadi perlahan apabila gesaan panjang kerana LLM berasaskan Transformer terkini adalah dalam dan luas, dan kos perhatian pengkomputeran meningkat secara kuadratik dengan bilangan token dalam gesaan. Sebagai contoh, Llama 2 (versi 7B) menyusun 32 lapisan Transformer dan mempunyai dimensi model 4096. Dalam kes ini, TTFT memerlukan 21 kali masa dinding bagi setiap langkah penyahkodan berikutnya, yang menyumbang kira-kira 23% daripada jumlah masa penjanaan pada penanda aras LongBench.
Oleh itu, untuk menjadikan inferens LLM cekap, mengoptimumkan TTFT adalah langkah yang sangat kritikal.
Walaupun pengoptimuman inferens LLM ialah bidang penyelidikan yang aktif, banyak kaedah memfokuskan pada meningkatkan kelajuan inferens peringkat penyahkodan. Penyelidik telah memberi sedikit perhatian kepada penambahbaikan dalam TTFT. Sesetengah hasil penyelidikan berasaskan mampatan boleh meningkatkan TTFT secara tersirat dengan mengurangkan saiz LLM.
Satu lagi hala tuju penyelidikan adalah untuk menambah baik TTFT di bawah seni bina Transformer statik. Untuk hala tuju penyelidikan ini, persoalan timbul secara semula jadi: Adakah semua token segera penting semasa menjana token pertama?
Rajah 2 menunjukkan keputusan analisis LLM pada penanda aras LongBench.
Adalah dapat dilihat bahawa untuk token yang dijana pertama, skor perhatian token input adalah sangat jarang, yang menunjukkan bahawa banyak token dalam gesaan input adalah berlebihan, dan walaupun ia dialih keluar, ia tidak akan menjejaskan ramalan token seterusnya. Pemerhatian ini adalah asas untuk cadangan LazyLLM pasukan.Kelebihan LazyLLM termasuk rangkaian aplikasi yang luas, tidak memerlukan latihan, dan hasil yang baik. Rajah 3 membandingkan LLM standard dengan LazyLLM.
LazyLLM
Rajah 4 menunjukkan rangka kerja keseluruhan LazyLLM.
Bermula dari konteks yang lengkap, LazyLLM akan mencantas token secara beransur-ansur, dengan itu secara beransur-ansur mengurangkan bilangan pengiraan yang digunakan untuk mendapatkan model akhir. Ambil perhatian bahawa LazyLLM membenarkan model untuk memilih subset token yang berbeza pada langkah penjanaan yang berbeza, walaupun beberapa daripadanya mungkin telah dipangkas dalam langkah sebelumnya. Berbanding dengan pemangkasan statik (yang memangkas semua token sekaligus), pemangkasan dinamik mengoptimumkan ramalan token seterusnya pada setiap langkah generasi, yang membantu mengekalkan prestasi model. Pencantas token progresifSesetengah kajian terdahulu telah berjaya menggunakan pemangkasan token untuk mengoptimumkan inferens LLM. Walau bagaimanapun, kaedah ini memerlukan pengumpulan peta perhatian lengkap yang meramalkan beberapa token pertama untuk menganalisis kepentingan token segera sebelum pemangkasan bermula. Oleh itu, mereka tidak sesuai untuk mengurangkan TTFT kerana mereka masih perlu mengira semua cache KV semasa fasa praisi. Sebagai perbandingan, LazyLLM adalah "sangat malas" dan hanya akan mengira token yang penting untuk meramalkan token seterusnya bermula dari lelaran pertama inferens (langkah pra-pengisian). Dalam pusingan pertama lelaran, masalah utama adalah untuk menentukan kepentingan setiap token. Diilhamkan oleh penyelidikan terdahulu yang menunjukkan bahawa keadaan tersembunyi token berkembang apabila ia melalui lapisan Transformer, penyelesaian pasukan adalah dengan menggunakan pemangkasan token lapisan demi lapisan pada setiap langkah generasi. Secara khusus, mereka menggunakan peta perhatian setiap lapisan untuk menentukan kepentingan token input kepada token yang akan diramalkan. Selepas mengira skor keyakinan token, satu lagi masalah sukar ialah menentukan ambang untuk mencantas token. Secara khusus, untuk lapisan yang berbeza dan tugasan yang berbeza, ambang ini mungkin berubah apabila skor perhatian berubah. Penyelesaian pasukan adalah menggunakan strategi pemilihan persentil top-k. Khususnya, jika skor keyakinan token kurang daripada persentil ke-k token input, ia dipangkas. Sebaik sahaja token dipangkas, ia tidak lagi mengambil bahagian dalam pengiraan semua lapisan berikutnya. Dalam erti kata lain, token yang digunakan oleh lapisan seterusnya adalah subset daripada token yang digunakan oleh lapisan sebelumnya. Eksperimen kemudian menunjukkan bahawa apabila kedudukan lapisan pemangkasan dan bilangan token pemangkasan berbeza, prestasi juga akan berubah. Khususnya, untuk lapisan Transformer yang sama, kerana semakin banyak token dikeluarkan melalui pemangkasan, prestasi model akan berkurangan secara beransur-ansur. Mereka juga mendapati bahawa berbanding pemangkasan pada lapisan awal, prestasi yang lebih baik akan diperoleh apabila pemangkasan pada lapisan kemudian, yang menunjukkan bahawa lapisan kemudian kurang sensitif terhadap pemangkasan token. Untuk mengimbangi kelajuan dan ketepatan yang lebih baik, pasukan menggunakan pemangkasan progresif seperti yang ditunjukkan dalam Rajah 4, mengekalkan lebih banyak token pada lapisan awal dan kemudian secara beransur-ansur mengurangkan bilangan token semasa ia mengalir ke lapisan kemudian. Aux Cache (cache tambahan) Tiada cache KV dalam peringkat pra-pengisian, dan setiap token dinyatakan dalam keadaan tersembunyi. Oleh itu, pemangkasan token progresif boleh dicapai dengan mengalih keluar keadaan tersembunyi token pangkas. Walau bagaimanapun, melanjutkan pemangkasan token progresif kepada langkah penyahkodan berikutnya adalah tidak mudah. Sebabnya ialah setiap langkah penyahkodan mengira perhatian menggunakan cache KV yang dikira dalam peringkat pra-isi. Memandangkan LazyLLM melakukan pemangkasan token progresif dalam peringkat prapenduduk, KV token yang dipangkas pada tahap tertentu tidak akan muncul dalam cache KV peringkat seterusnya. Sebagai peringatan, rangka kerja LazyLLM membenarkan setiap langkah generasi untuk memilih subset token yang berbeza daripada jujukan token input lengkap pada setiap langkah, tidak kira sama ada ia telah dipangkas dalam langkah sebelumnya. Contohnya, dalam langkah penyahkodan seterusnya, token pangkas yang tidak wujud dalam cache KV boleh dipilih semula untuk pengiraan perhatian. Dalam kes ini, model tidak boleh mendapatkan semula cache KV untuk token ini. Penyelesaian intuitif adalah dengan menghantar token ini melalui titik permulaan Transformer. Walau bagaimanapun, ini menghasilkan pengiraan dua kali bagi token yang sama dan akhirnya memperlahankan kelajuan penjanaan keseluruhan. Untuk menyelesaikan masalah ini, pasukan memperkenalkan cache lain sebagai tambahan kepada cache KV asal: Aux Cache (cache tambahan). Jika KV token yang dipangkas (T4 dan T7 dalam Rajah 4) tidak muncul dalam cache KV lapisan berikutnya, keadaan tersembunyinya akan disimpan oleh Aux Cache untuk mendapatkan semula dalam lelaran berikutnya. Seperti yang ditunjukkan dalam Rajah 4, pada setiap langkah penyahkodan, setiap lapisan Transformer mula-mula mendapatkan semula cache KV token yang lalu (jika wujud). Bagi token yang tiada dalam cache KV, keadaan tersembunyinya diambil terus daripada Aux Cache lapisan sebelumnya tanpa perlu melalui lapisan sebelumnya lagi. Aux Cache memastikan bahawa setiap token dikira paling banyak sekali dalam setiap lapisan Transformer, dan juga memastikan LazyLLM adalah lebih pantas daripada LLM standard pada tahap yang paling perlahan. Eksperimen Pasukan menguji pendekatan baharu "malas" ini pada dua model bahasa besar: Llama 2 7B dan XGen 7B. LLM standard yang digunakan untuk perbandingan adalah model pusat pemeriksaan pra-latihan yang dikeluarkan secara terbuka sama tanpa sebarang latihan tambahan. Tanda aras percubaan ialah LongBench, penanda aras berbilang tugas untuk pemahaman kandungan yang panjang. Penanda aras LongBench mengandungi 16 set data yang meliputi 6 tugasan, termasuk Soal Jawab satu dokumen, Soal Jawab berbilang dokumen, ringkasan, pembelajaran beberapa pukulan, tugasan sintesis dan penyelesaian kod. Metrik penilaian ialah keberkesanan dan kecekapan setiap kaedah dari segi pecutan TTFT berbanding pertukaran ketepatan. Keputusan Jadual 1 memberikan keputusan kelajuan dan ketepatan TTFT untuk LazyLLM, LLM standard dan kaedah asas lain. Dalam jadual ini, garis dasar merujuk kepada inferens LLM standard. Penurunan token rawak merujuk kepada melakukan pemangkasan rawak pada token. Pemangkasan token statik merujuk kepada melakukan pemangkasan sekali pada token input berdasarkan kaedah perhatian lapisan Transformer sebelumnya dalam peringkat pra-pengisian. Mampatan Segera ialah kaedah mampatan segera, yang menggunakan LLM untuk mengalih keluar lebihan dalam konteks input. Seperti yang dapat dilihat daripada Jadual 1, LazyLLM secara menyeluruh unggul dalam pecutan TTFT, manakala penurunan ketepatan pada asasnya boleh diabaikan. Perlu diingat bahawa menggunakan LLM untuk memampatkan gesaan adalah intensif secara pengiraan. Oleh itu, walaupun Pemampatan Segera membuat inferens lebih cepat, TTFT sebenar adalah lebih panjang daripada LLM standard. Impak ke atas kelajuan penjanaan keseluruhan Untuk menilai kesan kaedah baharu pada kelajuan penjanaan keseluruhan, pasukan menganalisis peratusan token segera yang digunakan dalam pengiraan dan pecutan penjanaan, lihat Jadual 2. Adalah dapat dilihat bahawa perkadaran token yang digunakan dalam pengiraan LazyLLM sentiasa kurang daripada 100%, yang menunjukkan bahawa LazyLLM tidak menggunakan semua token dalam gesaan pada penghujung penjanaan, tetapi secara teorinya model boleh guna semua token. Ini boleh memberikan pecutan tambahan kepada proses penjanaan keseluruhan untuk tugasan yang berbeza. Kadar buang lapisan berbeza Pasukan juga menganalisis kesan kedudukan lapisan pemangkasan dan bilangan token pemangkasan. Keputusan ditunjukkan dalam Rajah 6. Dapat dilihat apabila pemangkasan dilakukan pada lapisan Transformer yang sama, semakin sedikit token yang tinggal, semakin teruk prestasi model tersebut. Ini juga selaras dengan pemahaman intuitif kami. Di samping itu, berbanding dengan melakukan pemangkasan pada lapisan Transformer yang lebih awal, pemangkasan pada lapisan kemudian akan menghasilkan prestasi yang lebih baik, yang menunjukkan bahawa lapisan kemudiannya kurang sensitif terhadap pemangkasan token. Berdasarkan pemerhatian ini, boleh dikatakan kesan pemangkasan token progresif terbukti. Pertumbuhan KV yang progresif Akhirnya, pasukan juga cuba memahami dalaman model menggunakan logik pemangkasan token. Secara khusus, mereka ingin mengetahui perkadaran terkumpul token segera yang digunakan dan perkadaran sepadan yang tidak digunakan. "Penggunaan token kumulatif" ini boleh ditakrifkan secara sama sebagai saiz cache KV pada setiap langkah. Rajah 7 memberikan penggunaan token segera kumulatif ini untuk setiap peringkat LazyLLM. Hasil ini menyokong hipotesis bahawa banyak token tidak akan pernah dipilih oleh model (walaupun secara teorinya model boleh menggunakan semua token dalam gesaan. Memandangkan model masih boleh mengekalkan ketepatan melaksanakan tugas, ia boleh Kesimpulan: Model boleh membuang token dengan berkesan tanpa menjejaskan kualiti output
Atas ialah kandungan terperinci Apple membenarkan model besar belajar menjadi malas: meludahkan token pertama dengan lebih pantas dan mengekalkan ketepatan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!