Memahami ukuran LLM

Maud Nalpas
Maud Nalpas

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

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

Class ukuran dan ukuran LLM

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

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

LLM yang berukuran lebih besar memiliki lebih banyak parameter dibandingkan dengan LLM yang berukuran lebih kecil, sehingga mereka dapat menangkap hubungan bahasa yang lebih kompleks dan menangani perintah yang rumit. Mereka juga sering dilatih pada {i>dataset<i} yang lebih besar.

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

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

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

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

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

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

Tidak semua model menunjukkan jumlah parameter dalam namanya. Beberapa model ditempelkan nomor versinya. Misalnya, Gemini 1.5 Pro merujuk pada model versi 1.5 (mengikuti versi 1).

LLM atau bukan?

Kapan model terlalu kecil untuk menjadi LLM? Definisi LLM bisa sedikit berubah dalam komunitas AI dan ML.

Beberapa di antaranya hanya menganggap model terbesar dengan miliaran parameter sebagai LLM yang benar, sementara model yang lebih kecil, seperti DistilBERT, dianggap sebagai model NLP sederhana. Sebagian lainnya mencakup model yang lebih kecil, tetapi tetap andal, dalam definisi LLM, 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. Aplikasi tersebut harus berjalan di server khusus yang andal dengan hardware spesifik (seperti TPU).

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

Tapi, itu pertanyaan yang sulit untuk dijawab! Mulai hari 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 antara memori, spesifikasi GPU/CPU, dan lainnya. Ponsel Android kelas bawah dan laptop NVIDIA® RTX sangat berbeda. Anda mungkin memiliki beberapa poin data tentang perangkat yang dimiliki pengguna. Kita belum memiliki definisi untuk perangkat dasar yang digunakan untuk mengakses web.
  • Model atau framework yang menjalankannya 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 seberapa banyak 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, pada perangkat tingkat konsumen.

Contoh:

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

Ini adalah bidang yang masih baru. Anda dapat mengantisipasi perkembangan lanskap:

  • Dengan inovasi WebAssembly dan WebGPU, WebGPU mendukung penyelesaian di lebih banyak library, library baru, dan pengoptimalan, mengharapkan perangkat pengguna semakin dapat menjalankan LLM berbagai ukuran secara efisien.
  • Nantikan LLM yang lebih kecil dan berperforma tinggi akan semakin umum, melalui teknik penyingkatan 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 umum yang lebih besar.

Namun, dalam kelompok model yang sama, LLM yang lebih kecil kurang mampu dibandingkan dengan LLM yang lebih besar. Untuk kasus penggunaan yang sama, Anda biasanya harus melakukan lebih banyak pekerjaan engineering yang meminta saat menggunakan LLM yang lebih kecil.

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

Ukuran download

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

Meskipun ada teknik untuk menghitung ukuran download model berdasarkan jumlah parameter, cara ini bisa menjadi rumit.

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

Screenshot panel Jaringan Chrome DevTools.
Di panel Jaringan Chrome DevTools, Gemma 2B dan DistilBERT untuk inferensi dalam browser di perangkat pada 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 persyaratan memori model secara signifikan:

  • LoRA (Low-Rank Adaptation): Teknik fine tuning ketika bobot yang dilatih sebelumnya dibekukan. Baca selengkapnya tentang LoRA.
  • Pemangkasan: Menghapus bobot yang kurang penting dari model untuk mengurangi ukurannya.
  • Kuantisasi: Mengurangi presisi bobot dari angka floating point (seperti 32-bit) ke representasi bit yang lebih rendah (misalnya, 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.