[Terjemahan] Survei Komprehensif tentang Small Language Model (SLM)
(discuss.pytorch.kr)Survei Komprehensif tentang Small Language Model (SLM) (Small Language Models: Survey, Measurements, and Insights)
Pengantar makalah
Perkembangan terbaru model bahasa terbagi ke dalam dua kecenderungan. Yang pertama adalah large language model (LLM), yang dioperasikan di pusat data skala besar dengan menggunakan jutaan GPU. Model-model ini menangani tugas bahasa tingkat lanjut dan bertujuan memecahkan persoalan kompleks seperti sains dengan memanfaatkan kecerdasan buatan. Namun, LLM semacam ini memerlukan biaya tinggi dan sumber daya komputasi yang sangat besar, sehingga tidak realistis untuk diterapkan pada perangkat pribadi.
Sebaliknya, small language model (SLM) dirancang agar dapat diterapkan pada perangkat dengan keterbatasan sumber daya, seperti smartphone, tablet, dan perangkat wearable. Tujuan model bahasa kecil adalah menghadirkan AI yang hemat biaya dan praktis sehingga AI dapat diakses dengan mudah oleh siapa saja. Makalah ini merupakan survei komprehensif pertama tentang SLM, yang menganalisis model-model bahasa kecil yang dipublikasikan dalam beberapa tahun terakhir dari sisi inovasi teknis, kinerja, dan biaya eksekusi di perangkat.
Arsitektur, dataset, dan pelatihan Small Language Model (SLM)
Gambaran umum Small Language Model (SLM)
SLM berukuran lebih kecil dibanding model bahasa dengan parameter besar, tetapi telah membuktikan kinerjanya pada berbagai tugas seperti penalaran commonsense, pemecahan masalah matematika, dan in-context learning. Ini menunjukkan potensi AI yang dapat dijalankan langsung di perangkat.
Dalam penelitian ini, penulis meninjau SLM yang meningkat tajam sejak akhir 2023, lalu memilih 59 SLM berdasarkan kriteria berikut untuk menelaah kinerja dan biayanya:
-
Ukuran model SLM didefinisikan sebagai model antara 100M hingga 5B, dan hanya mencakup model dengan bobot terbuka yang dapat dievaluasi.
-
Demi kinerja yang unggul dan penerapan nyata, hanya model dengan arsitektur transformer decoder-only yang disertakan. Artinya, model berarsitektur seperti RWKV dan Mamba tidak dimasukkan.
-
Karena survei ini berfokus pada pengetahuan dasar yang diperoleh dalam proses pre-training, hanya base model yang dianalisis, dengan mengecualikan model yang hanya menyediakan versi instruct fine-tuned (Microsoft Phi dan StabilityAI StableLM).
-
Selain itu, model turunan hasil fine-tuning dari model pra-latih juga dikecualikan.
Daftar model yang dipilih berdasarkan kriteria di atas adalah sebagai berikut:
Arsitektur model SLM (Model Architecture)
Arsitektur model SLM didasarkan pada transformer dengan beragam variasi. Inti arsitektur transformer adalah Multi-Head Attention (MHA) dan Feed-Forward Neural Network (FFN). MHA memungkinkan model memusatkan perhatian pada bagian-bagian berbeda dari data masukan, sehingga meningkatkan efisiensi pemrosesan paralel. Pada model-model terbaru, terdapat berbagai pendekatan pada mekanisme attention, FFN, dan fungsi aktivasi sebagai berikut:
-
Mekanisme attention (Attention Mechanisms):
- Multi-Head Attention (MHA): mekanisme inti transformer yang memungkinkan perhatian ke beberapa bagian input secara bersamaan.
- Group-Query Attention (GQA): pendekatan yang mengelompokkan beberapa nilai query untuk mengurangi kompleksitas komputasi attention.
- Multi-Query Attention (MQA): pendekatan yang mengurangi kompleksitas komputasi dengan mengizinkan proyeksi key dan value yang berbeda untuk setiap query.
-
Feed-Forward Network (FFN):
- FFN standar (Standard FFN): struktur jaringan sederhana yang terdiri dari dua layer.
- Gated FFN: struktur yang meningkatkan performa dengan menambahkan layer gate.
-
Rasio ekspansi dimensi Feed-Forward Network (The intermediate ratio of the FFN): bilangan yang menyatakan ukuran hidden layer sebagai rasio terhadap ukuran dimensi input, dan umum dipakai untuk menunjukkan rasio ekspansi dimensi. Semakin besar rasio ini, semakin mampu FFN mempelajari pola yang kompleks, tetapi biaya komputasinya juga meningkat. Pada FFN standar, rasio ini umumnya sekitar 4, sedangkan pada gated FFN berada di kisaran 2 hingga 8.
-
Fungsi aktivasi (Activation Functions): pada SLM, yang terutama digunakan adalah ReLU (Rectified Linear Unit), GELU (Gaussian Error Linear Uni), $GELU_{tanh}$, dan SiLU (Sigmoid Linear Unit). Pada 2022, ReLU paling banyak digunakan; pada 2023, GELU dan variannya mendominasi; dan memasuki 2024, SiLU menjadi fungsi aktivasi yang paling luas dipakai.
-
Normalisasi layer (Layer Normalization): normalisasi layer menggunakan LayerNorm dan RMSNorm. RMSNorm semakin banyak digunakan karena membantu meningkatkan stabilitas pelatihan model.
-
Ukuran kosakata (Vocabulary Size): ukuran kosakata mengacu pada jumlah unique token yang dapat dikenali oleh SLM. SLM terbaru umumnya memiliki ukuran kosakata di atas 50 ribu, dan ditemukan bahwa ukuran kosakata yang lebih besar berkorelasi dengan peningkatan performa.
Untuk 59 model yang dipilih sebelumnya, perubahan distribusi dari keenam variasi di atas dari waktu ke waktu dirangkum sebagai berikut:
Dengan meninjau struktur model tersebut, penelitian ini juga dapat mengamati inovasi pada arsitektur model (Model Architecture Innovations):
-
Parameter sharing
- Parameter sharing adalah teknik yang digunakan pada large language model (LLM) untuk menggunakan kembali himpunan bobot yang sama di beberapa layer atau komponen jaringan. Dengan pendekatan ini, jumlah parameter model dapat dikurangi secara signifikan sambil mempertahankan performa, sehingga menghasilkan pelatihan dan inferensi yang lebih efisien.
- Embedding-lm_head sharing: berbagi bobot embedding dengan layer
lm_headterakhir adalah teknik weight sharing yang paling umum. Ini merupakan pembagian pada layer word embedding dan sama sekali tidak terkait dengan RoPE (Rotary Position Encoding). Model seperti Gemma dan Qwen sama-sama menggunakan teknik berbagi ini. - Layer-wise Attention/FFN sharing: pendekatan ini menggunakan kembali himpunan bobot yang sama di beberapa layer model. Ini umum ditemukan pada SLM/LLM yang membuat semua layer transformer berbagi parameter yang sama. Sebagai contoh, MobiLLaMA membagikan bobot FFN di semua blok transformer, dan MobileLLM membagikan bobot Attention dan FFN pada dua blok transformer yang bersebelahan.
-
Layer-wise parameter scaling
- Teknik ini diusulkan dan digunakan dalam OpenELM. SLM konvensional memakai konfigurasi yang sama untuk setiap layer transformer dalam model, sehingga parameter dialokasikan secara seragam antarlayer. Berbeda dengan model tersebut, setiap layer transformer pada OpenELM memiliki konfigurasi yang berbeda-beda (misalnya jumlah head dan dimensi FFN), sehingga tiap layer dalam model dapat menggunakan jumlah parameter yang berbeda. Dengan demikian, OpenELM dapat memanfaatkan available parameter budget dengan lebih baik untuk mencapai akurasi yang lebih tinggi.
-
Nonlinearity compensation
- PanGu-$\pi$ menganalisis model bahasa terbaru untuk mencoba mengatasi feature collapse problem. Masalah feature collapse adalah persoalan dalam pembelajaran representasi berdimensi tinggi seperti pada LLM, ketika model mempelajari fitur yang sama atau sangat mirip untuk berbagai input. Untuk mengatasi masalah ini, PanGu-$\pi$ memungkinkan kompensasi nonlinieritas pada fungsi aktivasi seperti GELU atau ReLU, serta menskalakan besar nilai keluaran layer agar rentang variasi output tetap konstan.
> #### Insight utama: ada 2 pengamatan penting pada struktur model SLM:
> 1. Per Agustus 2024, arsitektur SLM yang umum mengadopsi GQA (Group-Query Attention), Gated FFN dengan fungsi aktivasi SiLU, rasio ekspansi FFN (Intermediate Ratio of FFN) antara 2 hingga 8, RMSNorm, dan ukuran kosakata (Vocabulary Size) lebih dari 50 ribu. Namun, konfigurasi ini sebagian besar ditetapkan secara empiris dan belum melalui verifikasi yang ketat serta terbuka.
> 2. Inovasi pada struktur transformer di SLM masih terbatas. Selain teknik berbagi embedding-lm_head, tidak ditemukan bukti kuat bahwa teknik lain lebih unggul daripada struktur transformer konvensional (Vanilla Transformer). Selain itu, teknik-teknik tersebut juga belum diadopsi atau diteliti secara umum oleh berbagai kelompok riset maupun perusahaan, sehingga masih memerlukan verifikasi lebih lanjut di masa depan.
Dataset pelatihan (Training Dataset)
Performa SLM sangat bergantung pada dataset yang digunakan untuk pelatihan. Studi ini meninjau 12 dataset publik yang digunakan oleh model SLM:
| Nama | Jumlah token | Domain utama | Deskripsi dan kegunaan |
|---|---|---|---|
| The Pile | 825B | sains, makalah akademik, teks web, dokumen hukum | Dataset yang menggabungkan beragam dataset kecil, mencakup teks dari berbagai domain, dan digunakan untuk meningkatkan kemampuan pemahaman model secara keseluruhan. |
| FineWeb-Edu | 1.3T/5.4T | teks pendidikan, buku pelajaran, materi edukasi | Dataset berskala besar yang terdiri dari teks terkait pendidikan yang difilter dari FineWeb, digunakan untuk meningkatkan performa model pada tugas yang berkaitan dengan pembelajaran dan domain pendidikan. |
| StarCoder | 35B | kode Python | Dataset yang berisi kode dalam bahasa pemrograman Python, digunakan untuk melatih model pada tugas pembuatan kode dan tugas terkait pemrograman. |
| Cosmopedia | 25B | teks sintetis, materi edukasi | Dataset yang terdiri dari teks sintetis, mencakup buku pelajaran, posting blog, cerita, artikel WikiHow, dan lainnya, sehingga membantu model mempelajari beragam gaya penulisan dan konteks. |
| RefinedWeb | 5T | dokumen web, artikel berita, blog, dokumentasi teknis | Dataset yang memfilter secara ketat data web berkualitas tinggi yang diekstrak dari CommonCrawl, digunakan untuk mempelajari pengetahuan domain yang luas dalam tugas pemrosesan bahasa alami. |
| RedPajama | 1.2T | data web, berita, media sosial | Mencakup data teks dalam jumlah besar yang diekstrak dari snapshot CommonCrawl, dan digunakan untuk pelatihan model berbasis teks web. |
| Dolma | - | teks bahasa Inggris yang telah dihapus duplikasinya | Korpus bahasa Inggris yang dideduplikasi menggunakan algoritme MinHash, digunakan untuk mengoptimalkan performa model melalui data yang lebih bersih dengan menghilangkan teks duplikat. |
| WuDaoCorpora | 4T | teks bahasa Tionghoa | Korpus skala besar berbasis data bahasa Tionghoa, mencakup 3T token data pelatihan dan 1.08T karakter bahasa Tionghoa, digunakan untuk melatih model bahasa Tionghoa. |
| RoBERTa CCNewsV2 | - | artikel berita | Versi terbaru dari dataset berita CommonCrawl, digunakan untuk tugas pemrosesan bahasa alami berbasis data berita terkini. |
| PushShift Reddit | - | data media sosial (posting Reddit) | Data yang dikumpulkan dari platform yang mengoleksi, menganalisis, dan menyimpan data Reddit, digunakan untuk melatih interaksi media sosial dan model bahasa percakapan. |
| DCLM-baseline | 1.35T | teks web | Korpus terstandardisasi yang diekstrak dari Common Crawl, digunakan sebagai dataset untuk model bahasa pra-latih dan cocok untuk berbagai tugas evaluasi. |
| CulturaX | 6.3T | teks multibahasa | Dataset teks multibahasa berskala sangat besar yang terdiri dari 167 bahasa, digunakan sebagai sumber teks skala besar untuk pelatihan model multibahasa. |
Jika melihat tren penggunaan dataset pra-pelatihan oleh SLM yang menjadi objek studi dari 2022 hingga 2024, hasilnya adalah sebagai berikut:
Pada 2022 dan 2023, dataset pra-pelatihan yang paling luas digunakan adalah The Pile, tetapi belakangan semakin banyak dataset baru yang diusulkan sehingga pilihan yang tersedia menjadi lebih beragam. Memasuki 2024, dataset The Pile sudah tidak lagi digunakan dalam pra-pelatihan SLM, dan dataset seperti RefinedWeb atau RedPajama semakin banyak digunakan. Ini menunjukkan bahwa riset dan upaya rekayasa untuk membangun dataset pra-pelatihan dengan kualitas lebih baik sedang berlangsung secara aktif.
Berikutnya, studi ini meninjau performa SLM berdasarkan dataset pra-pelatihan yang digunakan. SLM yang dirilis dalam 3 tahun terakhir dikelompokkan ke dalam 4 grup berdasarkan ukuran parameter (<1B / 1B-1.4B / 1.5-2B / 2.5B-3B), lalu diurutkan dalam tiap grup berdasarkan akurasi rata-rata (rata-rata dari dua jenis akurasi: penalaran/pemahaman common sense dan pemecahan masalah), dengan hasil sebagai berikut:
Dari hasil ini, dapat dilihat bahwa dua dataset yang baru dirilis, yaitu DCLM(DataComp-LM) dan FineWeb-Edu, menunjukkan performa yang lebih unggul dibandingkan dataset lain. Karakteristik umum dari kedua dataset ini adalah penggunaan penyaringan data berbasis model.
Selain itu, meskipun kemampuan coding bukanlah tugas utama SLM yang dideploy ke perangkat, data coding sering kali tetap dimasukkan dalam dataset pra-pelatihan seperti StarCoder. Hal ini mungkin karena adanya keyakinan umum bahwa data coding dapat membantu meningkatkan kemampuan penalaran model.
Selanjutnya, studi ini meninjau jumlah token yang digunakan dalam pra-pelatihan dan ukuran model serta jumlah token yang digunakan dalam pra-pelatihan dan akurasi rata-rata.
Pertama, menurut Chinchilla Law, yang meneliti hubungan antara ukuran model dan jumlah data pelatihan (jumlah token), rasio optimal antara jumlah parameter model dan jumlah token pelatihan yang diusulkan adalah sekitar 20. Sebagai contoh, untuk model 1B, diperlukan dataset pelatihan dengan skala sekitar 20B token.
Berdasarkan analisis statistik terhadap ukuran dan jumlah token pelatihan SLM yang dirilis dari 2022 hingga 2024 (gambar kiri (a) di bawah), secara umum semakin besar model, semakin banyak token yang digunakan untuk pelatihan, dan model yang lebih baru juga cenderung menggunakan lebih banyak token pelatihan. Hal yang patut diperhatikan adalah bahwa, terlepas dari ukuran modelnya, SLM dilatih dengan jumlah token yang jauh lebih besar daripada yang diusulkan oleh Chinchilla Law (umumnya 1.5T atau lebih).
Saat menganalisis jumlah token yang digunakan SLM dalam pra-pelatihan dan akurasi rata-ratanya (gambar kanan (b) di bawah), secara umum kedua metrik ini menunjukkan korelasi positif, dan hal ini sangat menonjol ketika jumlah token pelatihan di bawah 700B. Namun, ketika token pelatihan melebihi 1T, korelasi tersebut menjadi lemah karena kualitas data pelatihan lebih penting daripada kuantitas token pelatihan.
> #### Insight utama: ada 2 pengamatan utama pada dataset pelatihan SLM:
> - Kualitas data pelatihan sangat penting bagi performa SLM, dan belakangan ini mendapat semakin banyak perhatian dalam riset SLM. Secara umum, dampak kualitas data pada SLM biasanya lebih besar daripada jumlah data dan arsitektur model. Tren penting dalam riset dataset adalah penggunaan penyaringan berbasis model, dengan FineWeb-Edu (1.3T/5.4T) dan DCLM-baseline (4T) sebagai contoh utama. SLM yang dilatih dengan kedua dataset ini menunjukkan performa yang kompetitif dibandingkan SLM yang dilatih dengan dataset tertutup.
> - Belakangan ini, SLM dilatih menggunakan token pelatihan dalam jumlah sangat besar (umumnya 1.5T atau lebih), terlepas dari ukuran modelnya. Dalam beberapa kasus, model yang lebih kecil justru menggunakan lebih banyak data. (Contoh: Qwen2-0.5B menggunakan 12T token, sedangkan Qwen2-1.5B hanya menggunakan 7T token.) Ini berarti model-model tersebut dilatih secara cukup "berlebihan (over-training)" dibandingkan hukum Chinchilla, dan pelatihan berlebihan ini digunakan untuk menerapkan SLM yang lebih kuat dengan menginvestasikan waktu pelatihan yang lebih banyak.
Algoritma Pelatihan (Training Algorithm)
Ada berbagai algoritma untuk pelatihan SLM. Algoritma pelatihan utama mencakup Maximal Update Parameterization (渭P), distilasi pengetahuan (Knowledge Distillation), dan strategi pra-pelatihan dua tahap (Two Stage Pre-training).
-
Maximal Update Parameterization (渭P): Menjamin pelatihan yang stabil terlepas dari lebar layer model dengan mengontrol inisialisasi model (initialization), laju pembelajaran per layer (layer-wise learning rate), besaran aktivasi (activation magnitude), dan sebagainya. Metode ini tidak hanya meningkatkan stabilitas pelatihan, tetapi juga memperbaiki transferabilitas hyperparameter pelatihan seperti laju pembelajaran dari model kecil ke model besar sehingga parameter yang sama dapat digunakan. Cerebras-GPT melatih modelnya dengan teknik ini.
-
Distilasi pengetahuan (Knowledge Distillation): Konsep yang banyak digunakan pada large language model (LLM), yaitu mengekstrak pengetahuan berharga dari model guru yang besar dan kompleks lalu melatihnya ke model siswa yang lebih kecil dan efisien. Teknik knowledge distillation (KD) ini pada dasarnya bekerja dengan meminimalkan perbedaan keluaran kedua model sehingga model siswa dapat mempelajari secara perkiraan perilaku dan prediksi model guru. LaMini-GPT dan Gemma-2 menggunakan teknik ini.
-
Pra-pelatihan dua tahap (Two Stage Pre-training): Sesuai namanya, ini adalah strategi pelatihan yang melatih model melalui dua tahap berbeda. Pertama, pada tahap pra-pelatihan (Pretraining Phase), model dilatih menggunakan data berskala besar dengan kualitas rendah. Proses ini membutuhkan sumber daya komputasi yang lebih besar. Setelah itu, pada tahap annealing (Annealing Phase), data SFT (Supervised Fine-Tuning) berkualitas tinggi dan berfokus pada tugas tertentu dicampurkan ke data pra-pelatihan untuk digunakan bersama. MiniCPM menggunakan teknik ini.
Kemampuan SLM (Capabilities)
Dataset dan Metrik Evaluasi SLM (Evaluation Datasets and Metrics)
Dalam studi ini, 12 dataset untuk mengevaluasi kemampuan SLM dirangkum ke dalam 3 kategori: penalaran commonsense (Commonsense Reasoning), pemecahan masalah (Problem-Solving), dan matematika (Mathematics):
| Nama | Jenis | Deskripsi dan penggunaan |
|---|---|---|
| HellaSwag | Penalaran commonsense | Menguji pemahaman narasi dan mengevaluasi kemungkinan pelengkapan kalimat. |
| TruthfulQA | Penalaran commonsense | Dataset untuk mengevaluasi agar model tidak memberikan informasi yang salah. |
| Winogrande | Penalaran commonsense | Dataset yang mengevaluasi kemampuan penalaran commonsense melalui penyelesaian ambiguitas kata ganti. |
| CommonsenseQA | Penalaran commonsense | Menyajikan masalah penalaran commonsense berbentuk pertanyaan pilihan ganda yang memerlukan pengetahuan sehari-hari. |
| PIQA | Penalaran commonsense | Dataset yang mengevaluasi penalaran commonsense fisik dan interaksi objek. |
| OpenBookQA | Penalaran commonsense | Mencakup masalah sains terbuka yang harus diselesaikan dengan menggabungkan pengetahuan ilmiah dan commonsense. |
| BoolQ | Penalaran commonsense | Mengevaluasi kemampuan penalaran commonsense dan faktual melalui pertanyaan ya/tidak. |
| ARC Easy | Pemecahan masalah | Dataset yang mencakup soal sains sederhana untuk menguji pengetahuan umum dan penalaran. |
| ARC Challenge | Pemecahan masalah | Menyajikan soal ujian sains yang kompleks dan memerlukan integrasi pengetahuan. |
| MMLU | Pemecahan masalah | Dataset yang mengevaluasi kemampuan pemecahan masalah di berbagai bidang akademik. |
| GSM8K | Penalaran matematis | Dataset yang mengevaluasi kemampuan penalaran matematis tingkat sekolah dasar. |
| Minerva Math | Penalaran matematis | Mengevaluasi kemampuan penalaran matematis tingkat lanjut pada berbagai topik. |
Saat evaluasi, metrik utama yang digunakan adalah akurasi (Accuracy), yang dihitung sebagai rasio antara jumlah prediksi yang benar terhadap jumlah keseluruhan dataset evaluasi. Pada bidang penalaran commonsense, pemecahan masalah, dan tugas matematika, evaluasi berfokus pada apakah jawaban yang benar dipilih atau seberapa akurat solusi yang diberikan.
Kemampuan SLM Secara Keseluruhan (Overall Capabilities)
Eksperimen dilakukan pada SLM terpilih untuk tiga tugas鈥攑enalaran commonsense, pemecahan masalah, dan matematika鈥攍alu perkembangan dianalisis seperti pada gambar di bawah. Secara keseluruhan, terlihat peningkatan performa yang signifikan, yakni masing-masing 10.4%, 13.5%, dan 13.5% untuk tiap tugas. Sebagai perbandingan, model open-source large language model LLaMA hanya mencatat peningkatan rata-rata 7.5% dalam periode yang sama:
Secara khusus, keluarga Phi dari Microsoft yang dilatih dengan dataset tertutup menunjukkan performa terbaik di antara semua model, dengan capaian yang sebanding dengan LLaMA 3.1 terbaru berukuran 7B (67.6% pada penalaran commonsense dan 72.4% pada pemecahan masalah). Meski masih ada selisih di bidang matematika, kesenjangan antara SLM dan LLM dalam penalaran umum terus menyempit dengan cepat. Walaupun ada pengecualian seperti Qwen2, secara umum terdapat kecenderungan bahwa performa meningkat seiring bertambah besarnya ukuran model.
Beberapa SLM perintis memang dilatih menggunakan dataset tertutup, tetapi kesenjangan antara model open-source dan model tertutup dalam tugas penalaran commonsense makin menyempit. Sebagai contoh, SmolLM dan DCLM-1B menunjukkan performa yang sangat baik dalam penalaran commonsense berkat dataset berkualitas tinggi seperti DCLM dan FineWeb-Edu (masing-masing mencapai 64.2% dan 63.8%). Namun, pada tugas yang membutuhkan penalaran atau logika kompleks, khususnya matematika, kesenjangannya masih cukup besar karena masih kurangnya dataset berkualitas tinggi.
> #### Insight utama: ada 4 pengamatan utama dalam perkembangan SLM:
> - Dari 2022 hingga 2024, SLM menunjukkan peningkatan performa yang signifikan pada berbagai tugas bahasa. Secara keseluruhan, peningkatannya sangat besar, bahkan melampaui peningkatan LLaMA-7B (versi 1/2/3/3.1). Hasil ini menumbuhkan harapan bahwa berbagai tugas hilir (downstream task) dapat diselesaikan di perangkat (on-device).
> - Keluarga model Phi secara konsisten menunjukkan performa state-of-the-art pada sebagian besar tugas. Phi-3-mini mencapai akurasi yang sebanding dengan Llama-3.1-8B per September 2024. Performa ini diperkirakan berkat rekayasa data Microsoft yang sangat cermat, tetapi bisa juga disebabkan oleh instructive tuning pada dataset tertentu dan potensi overfitting.
> - Secara umum, semakin besar ukuran model, semakin baik pula performanya, meskipun ada kasus pengecualian seperti Qwen2-1.5B. Pengecualian ini menunjukkan bahwa model yang lebih kecil pun dapat menunjukkan performa unggul pada tugas tertentu.
> - Dalam bidang penalaran akal sehat, performa SLM yang dilatih dengan dataset open source semakin memperkecil kesenjangan dengan SLM tertutup. Namun, pada tugas yang memerlukan penalaran kompleks atau logika, masih ada kesenjangan yang cukup besar, sehingga diperlukan dataset yang berfokus pada penalaran matematis.
Kemampuan in-context learning
In-context learning (ICL) adalah kemampuan penting SLM, yaitu kemampuan untuk menjalankan tugas baru berdasarkan konteks input yang diberikan. Eksperimen terhadap kemampuan ICL dilakukan pada 8 jenis tugas, termasuk penalaran akal sehat dan pemecahan masalah, dengan menggunakan berbagai model serta varian berukuran 2B dari masing-masing model. Secara umum, SLM memperoleh manfaat yang cukup besar pada semua tugas. Namun, pada dataset yang relatif sederhana seperti HellaSwag dan PIQA, performanya secara khusus terlihat serupa terlepas dari jumlah contoh ICL (ICL shots). Di luar itu, secara rata-rata, in-context learning dengan 5 contoh (5-shot) meningkatkan performa zero-shot sebesar 2,1% pada semua tugas.
Sebagai contoh yang menonjol, model Gemma2 menunjukkan peningkatan terbesar, dengan akurasi naik 4,8%. Sebaliknya, model LaMini justru mengalami penurunan performa lebih dari 2%. Dari sini muncul hipotesis bahwa LaMini mengalami overfitting pada dataset pelatihan, sehingga pemberian contoh tambahan dapat menimbulkan noise.
Secara umum, dapat dikonfirmasi bahwa semakin besar ukuran model SLM, semakin meningkat pula kemampuan in-context learning (ICL capability)-nya.
> #### Insight utama: ada 2 pengamatan utama pada kemampuan in-context learning SLM:
> - Secara umum, sebagian besar SLM memiliki tingkat tertentu dari kemampuan in-context learning. Namun, kemampuan ini muncul secara berbeda bergantung pada jenis tugas: sebagian besar SLM meningkat secara signifikan pada tugas Arc Challenge, tetapi hanya sedikit pada HellaSwag atau PIQA.
> - Semakin besar ukuran model SLM, semakin kuat kecenderungan kemampuan in-context learning-nya dibandingkan model yang lebih kecil. Beberapa SLM berukuran kecil seperti LaMini bahkan menunjukkan penurunan performa saat menggunakan in-context learning.
Biaya runtime SLM
Biaya runtime SLM mencakup latensi dan penggunaan memori (memory footprint) saat model dijalankan pada perangkat nyata. Penelitian ini mengevaluasi performa runtime SLM dan menganalisis hasil eksperimen pada berbagai perangkat keras. Selain itu, penelitian ini juga menjelaskan pengaruh arsitektur model dan quantization terhadap performa, serta membahas bagaimana SLM dapat dioptimalkan untuk lingkungan real-time.
Untuk mengukur biaya runtime, digunakan dua jenis edge device berikut. Yang pertama adalah Jetson Orin, yang umum digunakan pada edge device seperti drone atau robot kecil, dan yang kedua adalah smartphone, yang umum digunakan sehari-hari oleh banyak orang. Rinciannya sebagai berikut:
| Nama perangkat | Jenis hardware | Spesifikasi |
|---|---|---|
| Jetson Orin NX 16GB | GPU | 1024-core NVIDIA Ampere architecture GPU with 32 tensor cores, 16G DRAM |
| MEIZU 18Pro | CPU | Snapdragon 888, 8G RAM |
Selain itu, karena cara pengukuran jumlah parameter resmi pada tiap model berbeda-beda, penulis menggunakan nilai parameter yang diperoleh dari llama.cpp. Pengukuran dilakukan dengan membagi inferensi ke tahap prefill dan tahap decode, dan kecuali dinyatakan lain, panjang prompt ditetapkan 50 dan panjang generasi token juga ditetapkan 50. Untuk menghindari penurunan performa akibat thermal throttling, pengujian dilakukan dengan interval 10 detik, dan untuk mengukur model yang lebih besar diterapkan 4-bit quantization.
- Pengukuran latensi: Mengukur waktu pembuatan token pertama (prefill) dan waktu pembuatan tiap token berikutnya (decode) sesuai ukuran model.
- Pengukuran penggunaan memori: Mengukur penggunaan KV cache dan buffer memori untuk menganalisis seberapa banyak memori yang ditempati model.
Ikhtisar biaya runtime
Berikut adalah ikhtisar latensi inferensi (inference latency) dan penggunaan memori (memory footprint) SLM yang dibahas dalam penelitian ini:
-
Inference Latency (latensi inferensi): Latensi inferensi SLM dibagi menjadi tiga rentang berdasarkan ukuran model: 0.1-1B, 1-2B, dan 2-3B. Dalam tiap rentang ini, masing-masing model menunjukkan latensi yang serupa. Secara lebih spesifik, pengaruh arsitektur model terhadap latensi juga cukup besar. Misalnya, Qwen2-0.5B menunjukkan waktu token pertama 1,46 kali lebih lama dibanding model lain dengan ukuran serupa, sedangkan Qwen1.5-0.5B justru menunjukkan performa yang mirip dengan model yang lebih besar, OpenELM-1.1B.
- Tahap prefill: Tahap ketika prompt input diproses dan KV cache dibuat, di mana beberapa token diproses secara paralel.
- Tahap decode: Tahap yang memprediksi token berikutnya berdasarkan tiap token yang telah dihasilkan, sehingga memerlukan sumber daya memori yang lebih besar.
-
Memory Footprint (penggunaan memori): Penggunaan memori SLM berbeda-beda tergantung ukuran model dan panjang konteks (context length). Secara khusus, model seperti Bloom-560M dan Gemma-2B menggunakan memori lebih besar karena memiliki ukuran kosakata yang sangat besar (256.000 token). Sebaliknya, seri OpenELM menghemat penggunaan memori dengan mengurangi ukuran KV cache melalui penggunaan GQA (Group-Query Attention).
> #### Insight utama: ada 3 pengamatan utama terkait biaya eksekusi SLM:
> - Selain ukuran model, arsitektur model juga memengaruhi latensi. Misalnya, Qwen1.5-0.5B memiliki parameter 25,4% lebih banyak daripada Qwen2-0.5B, tetapi berjalan 31,9% lebih cepat di Jetson Orin. Ini berarti pengembangan SLM perlu disesuaikan dengan perangkat keras tempat model akan dideploy.
> - Pengaruh arsitektur model terhadap kecepatan inferensi lebih besar pada tahap prefill daripada tahap decode. Ini karena kepadatan komputasi pada tahap prefill lebih tinggi, sedangkan tahap decoding terutama bergantung pada memori (memory-bound). Perbedaan arsitektur model lebih mudah memengaruhi skenario yang langsung dibatasi komputasi (compute-bound). Misalnya, model yang lebih lebar dan lebih dangkal memiliki paralelisme komputasi yang lebih tinggi.
> - Penggunaan memori saat eksekusi umumnya berkorelasi linear dengan ukuran model. Namun, beberapa model dengan ukuran vocabulary yang lebih besar menggunakan memori lebih banyak dibanding model lain dengan ukuran serupa. Sebagai contoh, keluarga model Bloom memiliki ukuran vocabulary 250.880, sekitar 5 hingga 8 kali lebih besar daripada sebagian besar model.
Dampak Kuantisasi dan Perangkat Keras (Impact of Quantization and Hardware)
Pertama, kami mengukur latensi model Phi-1.5 pada lima metode kuantisasi (Q8_0, Q6_K, Q5_K, Q4_K_M, Q3_K) dan sebelum kuantisasi (FP16) untuk melihat dampak kuantisasi terhadap biaya eksekusi SLM:
Pada perangkat mobile, dukungan untuk operasi int8 mungkin terbatas, tetapi overhead akses memori tetap bisa dikurangi secara efektif. Hal ini karena presisi yang lebih rendah menyebabkan kompresi data, yang pada akhirnya meningkatkan pemanfaatan cache. Setiap metode melakukan kuantisasi ke n-bit; Qn_K dan Qn_K_M menggunakan metode k-quant untuk mengkuantisasi model dengan jumlah parameter menengah ke n-bit, sedangkan Qn_0 berarti kuantisasi simetris.
Efek kuantisasi pada tahap Prefill: saat panjang prompt pendek, kuantisasi mengurangi latensi setidaknya 25%. Namun, seiring panjang prompt bertambah, efek ini menurun, dan ketika panjang prompt mendekati 50, metode kuantisasi Q6_K dan Q3_K kadang menunjukkan latensi yang mirip atau bahkan lebih lama daripada model FP16 yang tidak dikuantisasi. Metode Q8_0, Q4_K_M, dan Q5_K memberikan peningkatan performa yang stabil, dengan Q4_K_M menunjukkan hasil terbaik, rata-rata menurunkan latensi sebesar 50%.
Efek kuantisasi pada tahap Decode menunjukkan peningkatan performa yang lebih konsisten, dengan latensi berkurang hingga 75% dan minimal 17%. Selain itu, seperti pada tahap Prefill, metode Q4_K_M adalah yang paling efektif, sedangkan Q6_K paling tidak efisien.
> #### Insight utama: ada 2 pengamatan utama tentang dampak kuantisasi SLM terhadap biaya eksekusi:
> - Manfaat kuantisasi lebih besar pada tahap decode daripada tahap prefill. Pada perangkat mobile, kuantisasi terutama mengurangi overhead akses memori. Karena tahap decode lebih dipengaruhi bandwidth memori, kuantisasi memberikan manfaat yang lebih besar dibanding tahap prefill yang lebih dipengaruhi komputasi.
> - Semakin reguler presisi kuantisasi (Quantization Precision), semakin baik performanya. Kuantisasi 3-bit menawarkan rasio kompresi lebih tinggi daripada kuantisasi 4-bit, tetapi kuantisasi 4-bit memberikan performa yang lebih baik pada tahap prefill maupun decode. Penurunan performa kuantisasi 3-bit disebabkan oleh kurangnya dukungan optimasi perangkat keras untuk bit-width yang tidak reguler, serta overhead tambahan akibat data alignment & padding. Karena itu, meskipun rasio kompresinya lebih rendah, kuantisasi 4-bit lebih efisien. Demikian pula, kuantisasi 5-bit dan 6-bit juga memiliki rasio kompresi lebih tinggi, tetapi menunjukkan latensi inferensi yang mirip atau lebih tinggi daripada kuantisasi 8-bit.
Selanjutnya, kami menguji model Bloom-1B1 pada Jetson Orin NX 16GB (menggunakan GPU) dan Meizu 18 Pro (menggunakan CPU) untuk mengukur pengaruh perangkat keras terhadap biaya eksekusi SLM:
Tahap Prefill: saat panjang prompt pendek, Jetson Orin menunjukkan performa 10 hingga 20 kali lebih cepat daripada Meizu 18 Pro. Selain itu, semakin panjang prompt, semakin jelas keunggulan performa Jetson. Ketika prompt bertambah panjang, waktu yang dibutuhkan kedua perangkat untuk menghasilkan token pertama meningkat secara linear, tetapi Jetson tetap mempertahankan performa yang stabil bahkan pada prompt yang lebih panjang.
Tahap Decode: seiring jumlah token yang dihasilkan bertambah, latensi per token pada Meizu 18 Pro meningkat tajam. Kenaikan latensi ini terutama terlihat dari token pertama hingga token ke-10, lalu setelah itu menjadi stabil. Kenaikan tajam latensi pada Meizu 18 Pro ini disebabkan oleh peningkatan suhu, karena DVFS (Dynamic Voltage and Frequency Scaling) atau thermal throttling menyesuaikan konsumsi daya dan frekuensi sehingga efisiensi komputasi menurun. Sebaliknya, Jetson menunjukkan variasi latensi yang kecil hingga 30 token dihasilkan berkat sistem pendinginan yang lebih efisien, dan peningkatan latensi baru terlihat setelahnya.
> #### Insight utama: ada 2 pengamatan utama tentang pengaruh perangkat keras terhadap biaya eksekusi SLM:
> - Tahap decode menghasilkan tiap token secara berurutan, sedangkan tahap prefill memungkinkan pemrosesan paralel token dalam prompt, sehingga performanya jauh lebih cepat di GPU.
> - Dalam pekerjaan inferensi yang panjang, Jetson menunjukkan stabilitas performa yang lebih baik dibanding smartphone. Ini karena Jetson memiliki struktur perangkat keras yang relatif lebih sederhana sehingga pembuangan panas (heat dissipation) lebih mudah.
Rincian Latensi dan Memori (Latency and Memory Breakdown)
Untuk memecah latensi lebih rinci, kami menganalisis proporsi tiap layer dan operation terhadap total latensi pada model Qwen1.5-0.5B dan Qwen2-0.5B:
Model Qwen1.5-0.5B dan Qwen2-0.5B memiliki ukuran yang mirip, tetapi menunjukkan perbedaan dalam latensi. Melalui analisis rinci latensi tiap model, kami mengukur distribusi waktu yang dihabiskan oleh tiap layer (Embedding, Attention, FFN, LM_Head).
Pada tahap Prefill, pada model Qwen1.5, layer attention mengambil porsi yang lebih besar daripada layer FFN. Ini karena peningkatan ukuran KV cache membuat layer attention membutuhkan lebih banyak komputasi. Sebaliknya, pada model Qwen2, layer FFN mengambil porsi yang lebih besar daripada layer attention. Ini terjadi karena layer FFN pada model Qwen2 lebih lebar.
Pada tahap Decode, proporsi operasi attention pada model Qwen1.5 menjadi semakin besar. Hal ini karena token yang dihasilkan perlu berinteraksi dengan token-token yang telah dihasilkan sebelumnya, sehingga membutuhkan lebih banyak komputasi, dan kecenderungan ini makin jelas ketika ukuran KV cache bertambah. Pada model Qwen2, layer FFN tetap memakan waktu paling banyak, karena lebar komputasi FFN yang lebih besar membuat prosesnya lebih lama.
Jika operator dianalisis, pada kedua model secara umum operasi perkalian matriks-vektor (matrix-vector multiplication, mul_mat_vec_q) menyumbang lebih dari 80% dari total waktu komputasi. Khususnya pada model Qwen2-0.5B, karena layer FFN lebih lebar, operasi mul_mat_vec_q mengambil porsi yang lebih besar.
Selain itu, jika penggunaan memori dianalisis, hasilnya sebagai berikut:
Hasil analisis menekankan bahwa bukan hanya ukuran model, tetapi juga ukuran kosakata (vocabulary size) memiliki dampak besar pada penggunaan memori. Semakin besar ukuran kosakata yang digunakan model, semakin besar pula Compute Buffer yang digunakan pada lapisan output. Sebagai contoh, model Bloom-560M memiliki ukuran kosakata 250.880, sehingga ukuran compute buffer model tersebut mencapai 492MB, yang berarti menggunakan memori 3,5 kali lebih banyak dibandingkan OpenELM-1.1B yang memiliki ukuran kosakata 32.000.
Selain itu, model yang menggunakan GQA (Group-Query Attention) memiliki KV Cache yang lebih kecil dibandingkan model yang menggunakan MHA (Multi-Head Attention). Sebagai contoh, ukuran KV cache pada model OpenELM-3B adalah 164MB, yang sekitar 3,9 kali lebih kecil daripada model StableLM-zephyr-3B.
Ketika panjang konteks (context length) bertambah, Compute Buffer dan KV Cache menjadi faktor penentu utama penggunaan memori model. Pada seri model Qwen2, ketika panjang konteks mencapai 131.072, Compute Buffer dan KV Cache mencakup 83% hingga 87% dari total penggunaan memori. Sebaliknya, pada model Qwen1.5, pada panjang konteks maksimum 32.768, kedua elemen tersebut mencakup 85% hingga 90% dari total memori.
Melalui analisis ini, dapat dipahami dengan jelas pengaruh ukuran kosakata (Vocabulary Size) dan panjang konteks (Context Length) terhadap penggunaan memori SLM; semakin besar ukuran kosakata dan semakin panjang konteks, semakin tajam peningkatan penggunaan memorinya.
Kesimpulan dan arah penelitian mendatang
Sejauh ini, telah dilakukan studi komprehensif dan pengukuran kinerja terhadap small language model (SLM) dengan ukuran mulai dari 100M hingga 5B, serta evaluasi terhadap kinerja model dan biaya eksekusinya. Melalui hal ini, analisis terhadap capaian dan keterbatasan SLM saat ini dilakukan, sekaligus diajukan berbagai topik penelitian yang memerlukan kajian lebih lanjut di masa depan:
-
Co-design and co-optimizations of SLM architecture and device processors.: Kinerja SLM dapat sangat bervariasi tergantung konfigurasi arsitekturnya, bahkan dalam ukuran model yang sama. Sebagai contoh, rasio kedalaman-lebar transformer, jenis attention, dan fungsi aktivasi memiliki pengaruh yang sangat besar terhadap kecepatan eksekusi. Secara khusus, metode untuk melakukan kuantisasi SLM agar dapat berjalan efisien pada prosesor yang dioptimalkan untuk operasi bilangan bulat seperti NPU (Neural Processing Unit) sangat penting. Untuk mencapai trade-off optimal antara akurasi dan kecepatan, desain arsitektur dan optimisasi yang disesuaikan dengan perangkat keras tertentu sangatlah penting, dan menemukan arsitektur yang dioptimalkan untuk kecepatan sebelum pra-pelatihan dapat menjadi salah satu arah penelitian.
-
Constructing high-quality synthetic dataset: Dataset pra-pelatihan yang baru-baru ini diperkenalkan, seperti DCLM dan FineWeb-Edu, telah secara signifikan meningkatkan kinerja SLM. Inovasi utama dari dataset ini adalah penggunaan model yang telah dipra-latih untuk menyaring data berkualitas tinggi dari corpus berskala besar. Penelitian tentang data sintetis masih berada pada tahap awal dan memiliki banyak potensi. Pembangunan proses manajemen data sintetis yang terstandardisasi, seperti deduplikasi data, penyaringan, pencampuran, dan evaluasi, sangat mendesak.
-
A deployment-aware Chinchilla law for model scaling: Menurut hukum Chinchilla, untuk mengoptimalkan kinerja model diperlukan keseimbangan antara ukuran model dan ukuran data pelatihan (jumlah token) dengan rasio sekitar 1:20, tetapi SLM cenderung menggunakan jumlah data pelatihan yang jauh lebih besar karena harus menyesuaikan diri dengan keterbatasan memori perangkat dan kemampuan komputasi. Pendekatan ini efektif sampai tingkat tertentu, tetapi jumlah data pelatihan tidak bisa diperluas tanpa batas, sehingga mencari metode penskalaan data yang optimal masih menjadi masalah yang belum terselesaikan. Selain itu, bukan hanya skala data serta biaya pelatihan dan inferensi yang perlu dipertimbangkan, tetapi juga siklus hidup SLM dan manfaat ekonominya; masalah ini menjadi lebih kompleks ketika sparsity seperti MoE (Mixture-of-Experts) diterapkan.
-
Continual on-device learning for personalization: Ketika SLM diterapkan pada perangkat, data di dalam perangkat (on-device data) dapat dimanfaatkan untuk mencapai kinerja yang lebih baik atau personalisasi tanpa kekhawatiran kebocoran data. Pendekatan pertama untuk ini adalah menggunakan teknik RAG (Retrieval-Augmented Generation) guna menyuntikkan data pribadi ke dalam prompt. Metode ini meningkatkan waktu pembuatan embedding teks dan waktu pemrosesan prompt, serta menimbulkan masalah karena data untuk personalisasi harus disimpan lama di perangkat. Pendekatan kedua adalah melakukan fine-tuning pada SLM, dengan menanamkan pengetahuan yang diperlukan untuk personalisasi ke dalam bobot model dan menghapus data setelah fine-tuning selesai. Namun, fine-tuning on-device mengonsumsi memori dan energi dalam jumlah besar, sehingga dapat menimbulkan masalah sumber daya yang serius. Penelitian dapat dilakukan pada metode seperti penerapan zeroth-order optimization agar nilai aktivasi tidak perlu disimpan di memori, sekaligus memungkinkan pemanfaatan akselerator perangkat keras pada tahap inferensi.
-
Device-cloud SLM-LLM collaboration: Meskipun kemampuan SLM berkembang pesat, kesenjangan dengan large language model (LLM) yang berjalan di cloud masih tetap ada. Untuk mengatasi hal ini, kolaborasi antara perangkat dan cloud akan menjadi topik penelitian yang penting. Secara intuitif, SLM dapat menangani tugas yang mudah diselesaikan di perangkat, sementara LLM di cloud dapat berperan sebagai filter yang menangani tugas yang lebih kompleks. Namun, diperlukan modul pengambilan keputusan untuk membedakan tugas yang dapat ditangani SLM dan yang tidak, dan penelitian tambahan masih diperlukan untuk menemukan bentuk kolaborasi yang tepat antara perangkat dan cloud.
-
Benchmarking SLMs fairly: SLM memiliki masalah overfitting, khususnya pada benchmark yang banyak digunakan seperti GSM8k. Selain itu, banyak SLM dilatih menggunakan dataset tertutup, sehingga sulit untuk membandingkan kinerjanya secara adil. Karena SLM terutama dijalankan secara on-device, model ini akan menjalankan tugas yang berbeda dibandingkan di lingkungan cloud. SLM yang diterapkan pada smartphone cenderung menangani tugas yang sensitif terhadap data pengguna, dan karena tugas khusus semacam ini (ad-hoc task) tidak tercakup dalam benchmark yang ada, ada kemungkinan aspek evaluasi yang penting justru terabaikan.
-
Sparse SLMs: Saat ini hampir tidak ada penelitian yang menerapkan sparsity pada SLM. Ini karena, dibandingkan LLM, SLM diperkirakan memiliki tingkat sparsity yang relatif lebih rendah, sehingga manfaat peningkatan kecepatan atau penghematan memori dari sparsity mungkin terbatas. Selain itu, arsitektur berbasis sparsity seperti MoE (Mixture-of-Experts) dapat meningkatkan kompleksitas komputasi alih-alih mengurangi penggunaan memori, sehingga mungkin tidak cocok untuk perangkat dengan keterbatasan memori. SLM masih dapat diperluas lebih jauh dengan memanfaatkan penyimpanan eksternal smartphone (misalnya memori flash) untuk menyimpan bobot tetap (cold weights) dan memuatnya saat diperlukan, tetapi metode seperti ini memerlukan penelitian lebih lanjut terkait masalah seperti latensi I/O dan bagaimana menjaga kompatibilitas dengan akselerator perangkat keras yang heterogen.
Makalah survei komprehensif tentang small language model: Small Language Models: Survey, Measurements, and Insights
https://arxiv.org/abs/2409.15790
Halaman utama proyek
https://ubiquitouslearning.github.io/TinyLLMLeaderBoard/#/slm
Repositori GitHub
https://github.com/UbiquitousLearning/SLM_Survey
Tulisan ini disusun berdasarkan ringkasan yang dibuat dengan model GPT, sehingga mungkin ada bagian yang dirangkum berbeda dari isi atau maksud naskah aslinya. Jika topik ini menarik bagi Anda, silakan rujuk juga ke naskah sumber! Jika saat membaca Anda menemukan bagian yang terasa janggal atau keliru, mohon beri tahu kami melalui komentar. 馃
鈿狅笍Iklan鈿狅笍: Apakah tulisan yang dirangkum oleh 馃敟Komunitas Pengguna PyTorch Korea馃嚢馃嚪 ini bermanfaat bagi Anda? Jika Anda bergabung sebagai anggota, kami akan mengirimkan tulisan-tulisan utama melalui email馃拰! (Default-nya mingguan, tetapi bisa diubah ke harian.)
Belum ada komentar.