Teknologi kompresi kembali berinovasi, memberikan peluang pada model besar untuk masuk ke dalam ponsel

Sumber gambar: Dihasilkan oleh AI Tanpa Batas

Model bahasa besar (LLM), terutama model Transformator terlatih generatif (GPT), telah menunjukkan performa luar biasa pada banyak tugas bahasa yang kompleks. Terobosan ini memunculkan keinginan untuk menjalankan LLM ini secara asli di perangkat seluler untuk melindungi privasi pengguna. Namun, LLM kecil pun terlalu besar untuk dijalankan pada perangkat ini.

Misalnya, LLaMA kecil memiliki parameter 7B dan versi FP16-nya berukuran 14 GB, sedangkan perangkat seluler hanya memiliki DRAM 18 GB. Oleh karena itu, mengompresi LLM melalui pengoptimalan waktu pelatihan (seperti sparsifikasi, kuantisasi, atau pengelompokan bobot) merupakan langkah penting untuk penerapan LLM di perangkat. Namun, pengoptimalan waktu pelatihan LLM sangat mahal karena ukuran model dan overhead sumber daya komputasi. DKM, salah satu algoritma SOTA untuk pengelompokan bobot, memerlukan waktu pelatihan yang berlebihan untuk pengelompokan bobot variabel karena kebutuhan untuk menganalisis interaksi antara semua bobot dan semua kemungkinan opsi pengelompokan.

Oleh karena itu, banyak teknik kompresi LLM yang ada, seperti GTPQ dan AWQ, mengandalkan optimasi pasca-pelatihan. Dalam makalah ini, peneliti mengusulkan teknik optimasi memori untuk mencapai pengelompokan tertimbang waktu pelatihan dan penerapannya di DKM, yang juga dikenal sebagai eDKM.

Teknik yang digunakan dalam artikel ini mencakup orkestrasi tensor lintas perangkat serta unikisasi dan sharding matriks bobot. Saat menggunakan eDKM untuk menyempurnakan model LLaMA 7B dan mengompresnya menjadi 3 bit per faktor bobot, para peneliti mencapai pengurangan jejak memori tumpukan dekoder sekitar 130 kali lipat, yang lebih baik daripada teknologi kompresi 3-bit yang ada.

Meningkatkan efisiensi memori DKM

Seperti yang ditunjukkan pada Gambar 1, pemangkasan, kuantisasi, dan normalisasi merupakan teknik pengoptimalan bobot yang populer.Metode ini mengoptimalkan bobot asli W dan memperoleh bobot

, untuk mengoptimalkan latensi inferensi, akurasi, atau ukuran model. Di antara teknologi-teknologi tersebut, para peneliti dalam artikel ini terutama berfokus pada pengelompokan tertimbang, khususnya algoritma pengelompokan tertimbang DKM.

Pengelompokan bobot adalah diskritisasi bobot nonlinier di mana matriks bobot dikompresi menjadi tabel pencarian dan daftar indeks tabel pencarian presisi rendah yang dapat diproses oleh akselerator inferensi modern. DKM melakukan pengelompokan bobot yang dapat dibedakan dengan menganalisis interaksi antara bobot (dilambangkan dengan W) dan titik pusat (dilambangkan dengan C), dan membuat trade-off antara rasio kompresi dan akurasi.

Oleh karena itu, penggunaan DKM untuk kompresi LLM memberikan hasil berkualitas tinggi. Namun, peta perhatian yang dihasilkan selama proses perhitungan DKM besar, dan kompleksitas memori dari forward/backward pass adalah O (|W||C|) (yaitu matriks pada Gambar 1), yang sangat sulit untuk LLM kompresi. . Misalnya, model LLaMA 7B yang hanya menghitung peta perhatian untuk pengelompokan bobot 4-bit memerlukan setidaknya memori 224 GB.

*Gambar 1: Ikhtisar sistem pengoptimalan bobot. Di DKM, sistem secara internal membuat peta perhatian yang dapat dikelompokkan berdasarkan bobot yang dapat dibedakan. *

Oleh karena itu, peneliti perlu menggunakan memori CPU untuk menangani kebutuhan memori yang besar tersebut, yaitu menyimpan informasi terlebih dahulu dalam memori CPU dan kemudian menyalinnya kembali ke GPU bila diperlukan. Namun, hal ini akan menghasilkan banyak lalu lintas antara GPU dan CPU (sehingga memperlambat pelatihan) dan memerlukan kapasitas memori CPU yang besar. Artinya, sangat penting untuk mengurangi jumlah transaksi antara CPU dan GPU dan meminimalkan lalu lintas per transaksi. Untuk mengatasi masalah ini, peneliti memperkenalkan dua teknologi pengoptimalan memori baru di PyTorch.

  • Orkestrasi tensor lintas perangkat: Melacak tensor yang disalin di seluruh perangkat untuk menghindari penyalinan yang berlebihan, sehingga mengurangi penggunaan memori dan mempercepat pelatihan.
  • Unikisasi bobot dan pemrosesan sharding: Manfaatkan fakta bahwa bobot 16-bit hanya memiliki 216 nilai unik untuk mengurangi representasi peta perhatian (ditunjukkan pada Gambar 1) dan selanjutnya membaginya menjadi beberapa model pembelajaran.

Orkestrasi tensor lintas perangkat

PyTorch menggunakan penyimpanan data untuk mewakili tensor, yang ditautkan ke tata letak data aktual dan metadata, yang digunakan untuk menyimpan bentuk, jenis, dll. dari tensor. Arsitektur tensor ini memungkinkan PyTorch menggunakan kembali penyimpanan data sebanyak mungkin dan secara efektif mengurangi penggunaan memori. Namun, ketika tensor dipindahkan ke perangkat lain (misalnya dari GPU ke CPU), penyimpanan data tidak dapat digunakan kembali dan tensor baru perlu dibuat.

Tabel 1 mengilustrasikan penggunaan memori tensor saat berpindah antar perangkat PyTorch. Tensor x0 yang dialokasikan pada baris 0 menggunakan 4MB pada GPU. Ketika tampilannya berubah di baris 1, tidak diperlukan memori GPU tambahan karena penyimpanan data yang mendasarinya dapat digunakan kembali (yaitu, x0 dan x1 sebenarnya sama). Namun ketika x0 dan x1 dipindahkan ke CPU seperti pada baris 2 dan 3, meskipun y0 dan y1 dapat berbagi penyimpanan data yang sama di CPU, konsumsi memori CPU menjadi 8MB, yang mengakibatkan redundansi memori CPU, dan meningkatkan GPU- lalu lintas ke CPU.

*Tabel 1: Penyempurnaan LLM mungkin memerlukan penggunaan memori CPU untuk menghilangkan jejak memori pada GPU. Kurangnya manajemen tensor lintas perangkat dapat menyebabkan salinan yang berlebihan di seluruh perangkat (terutama ketika grafik komputasinya rumit), yang sangat merugikan pengoptimalan waktu pelatihan LLM. Misalnya, meskipun x0 dan x1 merupakan tensor yang sama dengan tampilan berbeda, tensor yang dihasilkan y0 dan y1 tidak berbagi penyimpanan data saat disalin ke CPU, sedangkan pada GPU x0 dan x1 berbagi penyimpanan data. *

Untuk mengatasi inefisiensi ini, para peneliti menempatkan lapisan orkestrasi pada Gambar 2(b), dengan warna hitam mewakili penyimpanan data dan metadata aktual, dan abu-abu hanya mewakili metadata. Gambar 2(a) menunjukkan contoh dari Tabel 1, di mana x1 berbagi tata letak data dengan x0, namun y0 dan y1 memiliki penyimpanan data duplikat pada CPU. Seperti yang ditunjukkan pada Gambar 2 (b), dengan menyisipkan lapisan orkestrasi, para peneliti menghindari redundansi ini dan mengurangi lalu lintas GPU-ke-CPU. Para peneliti menggunakan save-tensor-hook di PyTorch untuk mengimplementasikan skema pertukaran tersebut, memeriksa apakah penyimpanan data yang sama telah disalin.

Namun, menggunakan skema seperti itu untuk memeriksa apakah tensor yang sama ada pada perangkat target memerlukan biaya yang mahal. Pada contoh Gambar 2(b), peneliti tidak menyalin x1 ke CPU, namun hanya mengembalikan referensi ke y0 dan operasi tampilan antara x1 dan y0.

*Gambar 2: Ketika orkestrasi tensor lintas perangkat diterapkan pada situasi di Tabel 1, duplikasi di sisi CPU dapat dihindari, sehingga menghemat memori dan lalu lintas. *

Menavigasi grafik komputasi akan menambah siklus komputasi tambahan, dan menyimpan salinan yang tidak diperlukan dapat mengimbangi overhead ini. Para peneliti menemukan bahwa pencarian dalam 4 lompatan sudah cukup untuk mendeteksi semua kasus yang memenuhi syarat dalam grafik komputasi implementasi DKM asli.

Unikisasi dan sharding bobot

Di sebagian besar pelatihan LLM, bobot umumnya menggunakan penyimpanan 16 bit (seperti BF16 atau FP16), yang berarti meskipun terdapat miliaran parameter di LLM, hanya terdapat 216 koefisien unik karena lebar bit. Hal ini memberikan peluang untuk secara signifikan memampatkan peta perhatian antara bobot dan titik pusat, seperti yang ditunjukkan pada Gambar 3.

Gambar 3: Unikisasi dan sharding bobot

Hasil eksperimen

Akurasi LLM

Artikel ini membandingkan eDKM dengan skema kompresi berbasis kuantisasi lainnya, termasuk: RTN, SmoothQuant, GPTQ, AWQ, dan LLM-QAT. Untuk eDKM, peneliti juga melakukan kompresi 8-bit pada lapisan embedding. Akhirnya dicapai kesimpulan sebagai berikut:

  • eDKM memungkinkan model LLaMA 7B terkompresi 3-bit mengungguli semua skema kompresi 3-bit lainnya.
  • eDKM memiliki akurasi terbaik pada benchmark ARC-e pada konfigurasi 3 bit dan 4 bit.
  • Performa eDKM sangat kompetitif pada benchmark PIQA dan MMLU yang menggunakan model kompresi 4-bit.

Eksperimen ablasi

Dalam eksperimen ablasi, para peneliti mengukur trade-off antara jejak memori dan kecepatan maju-mundur kompresi 3-bit menggunakan lapisan perhatian di tumpukan dekoder LLaMA 7B sebagai contoh. Orkestrasi tensor lintas-perangkat saja mengurangi jejak memori sebesar 2,9 kali dengan overhead runtime yang sangat sedikit, sedangkan modul sharding dan unikisasi masing-masing menghemat 23,5 kali dan 16,4 kali. Ketika semua teknologi digabungkan, eDKM menghasilkan penghematan sekitar 130 kali lipat. Meskipun langkah-langkah ini memerlukan komputasi tambahan dan overhead komunikasi, overhead runtime dapat diabaikan karena lalu lintas antara GPU dan CPU berkurang secara signifikan.

Lihat Asli
Halaman ini mungkin berisi konten pihak ketiga, yang disediakan untuk tujuan informasi saja (bukan pernyataan/jaminan) dan tidak boleh dianggap sebagai dukungan terhadap pandangannya oleh Gate, atau sebagai nasihat keuangan atau profesional. Lihat Penafian untuk detailnya.
  • Hadiah
  • Komentar
  • Bagikan
Komentar
0/400
Tidak ada komentar
Perdagangkan Kripto Di Mana Saja Kapan Saja
qrCode
Pindai untuk mengunduh aplikasi Gate
Komunitas
Bahasa Indonesia
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)