Memahami ukuran LLM

Maud Nalpas
Maud Nalpas

Meskipun "L" dalam Model Bahasa Besar (LLM) menunjukkan skala besar, realitasnya lebih bernuansa. Beberapa LLM berisi triliunan parameter, dan yang lainnya beroperasi secara efektif dengan jauh lebih sedikit parameter.

Lihat beberapa contoh di dunia nyata dan implikasi praktis dari berbagai ukuran model.

Sebagai developer web, kita cenderung menganggap ukuran resource sebagai ukuran download-nya. Ukuran yang didokumentasikan model mengacu pada jumlah parameternya. Misalnya, Gemma 2B menunjukkan Gemma dengan 2 miliar parameter.

LLM mungkin memiliki ratusan ribu, jutaan, miliaran, atau bahkan triliunan parameter.

LLM yang lebih besar memiliki lebih banyak parameter daripada LLM yang lebih kecil, yang memungkinkannya menangkap hubungan bahasa yang lebih kompleks dan menangani perintah yang bernuansa. Model ini juga sering dilatih pada set data yang lebih besar.

Anda mungkin telah memperhatikan bahwa ukuran model tertentu, seperti 2 miliar atau 7 miliar, umum. Misalnya, Gemma 2B, Gemma 7B, atau Mistral 7B. Class ukuran model adalah perkiraan pengelompokan. Misalnya, Gemma 2B memiliki sekitar 2 miliar parameter, tetapi tidak persis.

Kelas ukuran model menawarkan cara praktis untuk mengukur performa LLM. Anggap saja seperti kelas berat dalam tinju: model dalam class ukuran yang sama lebih sebanding. Dua model 2B akan menawarkan performa yang serupa.

Meskipun demikian, model yang lebih kecil dapat memiliki performa yang sama seperti model yang lebih besar untuk tugas tertentu.

Screenshot kotak centang ukuran model HuggingFace.
Class ukuran model di HuggingFace. Class ini bukan standar industri, tetapi muncul secara organik.

Meskipun ukuran model untuk LLM canggih terbaru, seperti GPT-4 dan Gemini Pro atau Ultra, tidak selalu diungkapkan, ukuran model tersebut diyakini berjumlah ratusan miliar atau triliun parameter.

Ukuran model dapat sangat bervariasi. Dalam ilustrasi ini, DistilBERT adalah titik kecil dibandingkan dengan Gemini Pro yang besar.

Tidak semua model menunjukkan jumlah parameter dalam namanya. Beberapa model memiliki akhiran dengan nomor versinya. Misalnya, Gemini 1.5 Pro mengacu pada versi model 1.5 (mengikuti versi 1).

LLM atau tidak?

Kapan model terlalu kecil untuk menjadi LLM? Definisi LLM dapat berubah-ubah dalam komunitas AI dan ML.

Beberapa orang hanya menganggap model terbesar dengan miliaran parameter sebagai LLM sejati, sedangkan model yang lebih kecil, seperti DistilBERT, dianggap sebagai model NLP sederhana. Yang lainnya menyertakan model yang lebih kecil, tetapi tetap canggih, dalam definisi LLM, lagi-lagi seperti DistilBERT.

LLM yang lebih kecil untuk kasus penggunaan di perangkat

LLM yang lebih besar memerlukan banyak ruang penyimpanan dan banyak daya komputasi untuk inferensi. Model ini harus berjalan di server khusus yang canggih dengan hardware tertentu (seperti TPU).

Satu hal yang kami minati, sebagai developer web, adalah apakah model cukup kecil untuk didownload dan dijalankan di perangkat pengguna.

Namun, pertanyaan itu sulit untuk dijawab. Saat ini, tidak ada cara mudah bagi Anda untuk mengetahui "model ini dapat berjalan di sebagian besar perangkat kelas menengah", karena beberapa alasan:

  • Kemampuan perangkat sangat bervariasi di seluruh memori, spesifikasi GPU/CPU, dan lainnya. Ponsel Android kelas bawah dan laptop NVIDIA® RTX sangat berbeda. Anda mungkin memiliki beberapa titik data tentang perangkat yang dimiliki pengguna. Kami belum memiliki definisi untuk perangkat dasar pengukuran yang digunakan untuk mengakses web.
  • Model atau framework tempat model berjalan dapat dioptimalkan untuk berjalan di hardware tertentu.
  • Tidak ada cara terprogram untuk menentukan apakah LLM tertentu dapat didownload dan dijalankan di perangkat tertentu. Kemampuan download perangkat bergantung pada jumlah VRAM yang ada di GPU, di antara faktor lainnya.

Namun, kami memiliki beberapa pengetahuan empiris: saat ini, beberapa model dengan beberapa juta hingga beberapa miliar parameter dapat berjalan di browser, di perangkat kelas konsumen.

Contoh:

  • Gemma 2B dengan MediaPipe LLM Inference API (bahkan cocok untuk perangkat khusus CPU). Coba.
  • DistilBERT dengan Transformers.js.

Ini adalah bidang yang baru. Anda dapat mengharapkan lanskap ini berkembang:

  • Dengan inovasi WebAssembly dan WebGPU, dukungan WebGPU akan hadir di lebih banyak library, library baru, dan pengoptimalan, sehingga perangkat pengguna akan semakin mampu menjalankan LLM dengan berbagai ukuran secara efisien.
  • LLM yang lebih kecil dan berperforma tinggi akan semakin umum, melalui teknik pengecilan yang muncul.

Pertimbangan untuk LLM yang lebih kecil

Saat menggunakan LLM yang lebih kecil, Anda harus selalu mempertimbangkan performa dan ukuran download.

Performa

Kemampuan model apa pun sangat bergantung pada kasus penggunaan Anda. LLM yang lebih kecil yang disesuaikan dengan kasus penggunaan Anda mungkin berperforma lebih baik daripada LLM generik yang lebih besar.

Namun, dalam keluarga model yang sama, LLM yang lebih kecil kurang mampu dibandingkan LLM yang lebih besar. Untuk kasus penggunaan yang sama, Anda biasanya perlu melakukan lebih banyak pekerjaan rekayasa perintah saat menggunakan LLM yang lebih kecil.

Screenshot panel Jaringan Chrome DevTools.
Skor Gemma 2B kurang dari skor Gemma 7B.
Sumber: Papan Peringkat LLM Terbuka HuggingFace, April 2024

Ukuran download

Semakin banyak parameter berarti ukuran download yang lebih besar, yang juga memengaruhi apakah model, meskipun dianggap kecil, dapat didownload secara wajar untuk kasus penggunaan di perangkat.

Meskipun ada teknik untuk menghitung ukuran download model berdasarkan jumlah parameter, hal ini dapat rumit.

Mulai awal 2024, ukuran download model jarang didokumentasikan. Jadi, untuk kasus penggunaan di perangkat dan dalam browser, sebaiknya lihat ukuran download secara empiris, di panel Jaringan Chrome DevTools atau dengan alat developer browser lainnya.

Screenshot panel Jaringan Chrome DevTools.
Di panel Jaringan Chrome DevTools, Gemma 2B dan DistilBERT untuk inferensi di dalam browser dan di perangkat dalam aplikasi web. Ukuran download masing-masing adalah 1,3 GB dan 67 MB.

Gemma digunakan dengan MediaPipe LLM Inference API. DistilBERT digunakan dengan Transformers.js.

Teknik penyingkatan model

Ada beberapa teknik untuk mengurangi kebutuhan memori model secara signifikan:

  • LoRA (Low-Rank Adaptation): Teknik penyesuaian yang membekukan bobot yang telah dilatih sebelumnya. Baca selengkapnya tentang LoRA.
  • Pemangkasan: Menghapus bobot yang kurang penting dari model untuk mengurangi ukurannya.
  • Kuantisasi: Mengurangi presisi bobot dari bilangan floating point (seperti, 32-bit) menjadi representasi bit yang lebih rendah (seperti, 8-bit).
  • Distilasi pengetahuan: Melatih model yang lebih kecil untuk meniru perilaku model terlatih yang lebih besar.
  • Berbagi parameter: Menggunakan bobot yang sama untuk beberapa bagian model, sehingga mengurangi jumlah total parameter unik.