LLM dipandang sebagai teknologi penting untuk mengembangkan produk dan layanan inovatif, perusahaan-perusahaan terkemuka melakukan investasi besar di dalamnya untuk memanfaatkan teknologi baru ini dalam produk/layanan mereka dan memberikan nilai lebih baik kepada penggunanya. Namun, terdapat masalah besar dalam pelatihan dan penyajian model bahasa berukuran besar ini, mahal. Menurut beberapa artikel [1] [2] biaya pelatihan model besar ini dapat berkisar dari jutaan hingga miliaran dolar. Mahal bukan?!

Tapi mengapa tidak menggunakan model yang sudah tersedia? Lagipula, mereka telah dilatih mengenai triliunan token, yang seharusnya mencakup semua kasus penggunaan, bukan? Tidak terlalu. Untuk tugas khusus, kami mungkin perlu menyempurnakan model ini pada kumpulan data tertentu. Menyempurnakan model untuk tugas-tugas khusus mirip dengan perbedaan antara mengendarai mobil di jalan biasa versus mengemudi di trek balap. Ini seperti Anda seorang pengemudi berpengalaman yang tahu cara menavigasi jalan-jalan kota dan jalan raya dengan mudah. Namun, saat berkendara di trek balap profesional, dinamikanya berubah. Anda memerlukan pelatihan tambahan, teknik khusus, dan pengetahuan tentang tata letak dan kondisi lintasan untuk mengoptimalkan performa Anda dan bersaing dengan pembalap terampil. Beberapa putaran latihan dan Anda sudah siap!

Mengingat banyaknya parameter, mungkin tidak mungkin untuk melatih ulang semua parameter pada kumpulan data khusus. Tidak hanya itu, bayangkan sebuah organisasi yang ingin menggunakan LLM untuk mata pelajaran hukum dan kedokteran. Untuk mendapatkan keahlian domain yang lengkap, kami mungkin ingin melatih dua model berbeda, satu model yang sepenuhnya menyempurnakan data hukum dan satu lagi data medis. Sekarang, kami memiliki dua model untuk dilayani; jika kami memperluas kasus penggunaan, kami memiliki n model untuk dilayani. Melayani jutaan atau miliaran parameter tidaklah murah.

Upaya telah dilakukan untuk meningkatkan efisiensi pelatihan dan pelayanan LLM. Ada beberapa penelitian dalam mengurangi biaya dengan tetap menjaga akurasi. Salah satu caranya adalah dengan menambahkan lapisan tambahan ke model dan hanya melatih lapisan ini. Dengan cara ini model yang telah dilatih sebelumnya dapat disimpan dalam memori dan hanya lapisan tambahan untuk setiap tugas yang perlu disimpan dalam memori. Hal ini sangat meningkatkan efisiensi operasional dalam melayani model-model ini. Sayangnya, teknik ini biasanya menghasilkan trade-off antara efisiensi dan kualitas model.

Ada teknik lain yang bertujuan untuk mengatasi masalah ini; Adaptasi Peringkat Rendah (LoRA). Diterbitkan oleh Microsoft, proposal ini mengusulkan untuk membekukan bobot model yang telah dilatih sebelumnya dan memasukkan matriks dekomposisi peringkat yang dapat dilatih ke dalam setiap lapisan arsitektur transformator, sehingga sangat mengurangi jumlah parameter yang dapat dilatih untuk tugas-tugas hilir. Apa yang dimaksud dengan 'peringkat matriks'?

Definisi: Pangkat matriks mengacu pada jumlah baris atau kolom yang bebas linier dalam matriks.

Or

Ini juga dapat didefinisikan sebagai urutan minor bukan nol yang paling tinggi.

Saat membaca makalah saya membaca artikel ini untuk menyegarkan ingatan saya tentang bagaimana kita dapat menghitung pangkat suatu matriks. Saya juga menyarankan Anda membaca tentang SVD dan teknik dekomposisi serupa.

Makalah ini menyebutkan ide yang didefinisikan oleh Aghajanyan et al.

Ini menyatakan

model bahasa yang telah dilatih sebelumnya memiliki “dimensi intrinsik” yang rendah dan masih dapat belajar secara efisien meskipun ada proyeksi acak ke subruang yang lebih kecil

Apa yang kita maksud dengan ini? Artinya, jika ada 4 faktor yang menjadi sandaran penyelesaian suatu masalah, maka ada 2 faktor yang memberikan kontribusi besar terhadap penyelesaian tersebut. Berikut penjelasan sederhana yang dihasilkan oleh LLM:

Misalkan kita memiliki fungsi tujuan untuk proses manufaktur yang bertujuan meminimalkan biaya produksi. Tujuannya mungkin untuk menemukan nilai optimal untuk berbagai parameter seperti kuantitas produksi, jam kerja, dan penggunaan bahan mentah, untuk meminimalkan biaya keseluruhan.

Sekarang, dimensi intrinsik dari fungsi tujuan ini mewakili jumlah minimum parameter yang diperlukan untuk mendapatkan solusi yang memuaskan atau berbiaya rendah. Dalam hal ini, mari kita asumsikan bahwa setelah menganalisis permasalahan, ditemukan bahwa kuantitas produksi dan jam kerja merupakan faktor utama yang berkontribusi terhadap biaya.

Menerapkan ini pada jaringan saraf, saat kita menyempurnakan model, kita memperbarui seluruh matriks (dalam kasus lapisan padat) selama operasi penerusan. Biaya komputasi bergantung langsung pada dimensi matriks. LoRa menyarankan untuk membatasi pembaruan pada matriks ini dengan matriks dekomposisi peringkat rendah.

Matriks bobot manakah yang harus diterapkan pada LoRa? Makalah ini hanya berfokus pada penerapan LoRa pada bobot perhatian; di sini kita masih memiliki matriks kueri, kunci, nilai & keluaran.

Mari kita lihat beberapa angka dari eksperimen mereka. Penulis pertama-tama menetapkan anggaran, dan mengusulkan anggaran untuk memodifikasi sekitar 18 juta parameter (untuk GPT-3 175B); untuk mengadaptasi satu matriks, anggaran memungkinkan peringkat 8, sedangkan untuk dua matriks, anggaran memungkinkan peringkat 4 dan peringkat 2 untuk keempat matriks. Berikut adalah hasil yang sama:

Tapi bagaimana cara membandingkannya dengan teknik lain?

Penulis menyarankan untuk menyesuaikan rberdasarkan kumpulan data yang berbeda untuk hasil yang optimal.

Jika kita mempertimbangkan GPT-3 175B, 18M seharusnya memakan waktu hingga 35Mb (FP16). Praktisnya, jika kita menggunakan LoRa untuk 100 tugas, diperlukan 350GB (basis) + 35MB * 100 ≈ 354GB. Namun, FT biasa membutuhkan 100 * 350GB ≈ 35TB (Yang BESAR).

Beri tahu saya jika Anda telah menggunakan teknik ini dan membandingkannya dengan penyesuaian rutin pada kasus penggunaan di dunia nyata!

Saya harus mengatakan, makalah ini benar-benar merupakan pembuka halaman bagi saya, dan saya harap Anda menganggap tulisan saya sama menariknya. Saya ingin mendengar pendapat Anda mengenai hal ini, atau jika ada poin menarik lainnya dari makalah ini yang menarik perhatian Anda, jangan ragu untuk membagikannya kepada saya. Mari selami diskusi ini!

Tautan: Kertas, Git