3 poin oleh GN⁺ 2024-07-11 | 1 komentar | Bagikan ke WhatsApp
  • Repositori MobileLLM menyediakan kode pelatihan untuk makalah ICML 2024 “MobileLLM: Optimizing Sub-billion Parameter Language Models for On-Device Use Cases”, yang membahas desain untuk meningkatkan kualitas model bahasa dengan kurang dari 1 miliar parameter
  • Desain model menyusun MobileLLM dengan menggabungkan SwiGLU, struktur yang dalam dan tipis, berbagi embedding, serta grouped-query attention
  • MobileLLM-125M/350M mencapai peningkatan akurasi 2,7%/4,3% dibandingkan model SoTA 125M/350M sebelumnya pada tugas penalaran akal sehat zero-shot, dan versi yang diperbarui juga menunjukkan hasil SoTA pada 600M/1B/1.5B
  • Kode pelatihan memerlukan Python 3.9 dan PyTorch 2.0 atau lebih baru; pretrain.sh dimulai dengan torchrun pada node 1x8 GPU, dan jika jumlah node atau ukuran batch ditingkatkan, learning rate harus dinaikkan secara linear
  • Biaya pelatihan untuk 1T token, berdasarkan 32 GPU NVIDIA A100 80G, membutuhkan sekitar 3 hari untuk 125M, sekitar 6 hari untuk 350M, sekitar 8 hari untuk 600M, sekitar 12 hari untuk 1B, dan sekitar 18 hari untuk 1.5B

Tujuan dan cakupan rilis MobileLLM

Elemen desain model

  • MobileLLM menggabungkan elemen desain berikut
    • Fungsi aktivasi SwiGLU
    • Arsitektur yang dalam dan tipis
    • Berbagi embedding

      • grouped-query attention
      • Pada versi yang diperbarui, filosofi desain ini disebut diperluas juga ke model yang lebih besar, dan menunjukkan hasil SoTA pada MobileLLM-600M/1B/1.5B

Rilis dan kabar model lanjutan

  • Pada 30 Oktober 2024, model MobileLLM dirilis di HuggingFace
  • Pada September 2025, karya lanjutan MobileLLM-R1 dirilis
    • Dengan sekitar 2T token prapelatihan dan total kurang dari 5T token, hasilnya menyamai atau melampaui hasil Qwen3-0.6B dengan 36T token pada MATH, GSM8K, MMLU, dan LiveCodeBench
    • Kode, model, data, dan resep pelatihan dirilis
    • Koleksi HuggingFace tersedia
  • Pada November 2025, MobileLLM-R1.5 dirilis
    • MobileLLM-R1.5-950M melampaui DeepSeek-R1-Distill-Qwen-1.5B pada semua benchmark matematika dan coding yang dievaluasi
    • Jumlah parameternya lebih sedikit, yaitu 0.95B vs 1.5B
  • Pada Januari 2026, MobileLLM-R1 diterima di ICLR 2026

Eksekusi dan konfigurasi pelatihan

  • Persyaratannya adalah Python 3.9, PyTorch 2.0 atau lebih baru, dan pip install -r requirement.txt
  • Prapemrosesan data dilakukan dengan membagi dataset yang sudah ditokenisasi atau menokenisasi dataset sendiri, lalu mendistribusikannya sesuai jumlah total node pelatihan
    • Setiap node terdiri dari 1x8 GPU
    • Struktur data berbentuk file xxx.jsonl di bawah basepath/1, basepath/2, ..., basepath/#nodes
    • Setiap baris jsonl adalah pasangan key-value data tokenisasi dalam bentuk {"token_ids": [1,2,3,4,...]}
    • Kode pelatihan kompatibel dengan metode prapemrosesan data dari LLM360/amber-data-prep
  • pretrain.sh adalah skrip untuk memulai pelatihan dengan torchrun pada konfigurasi node 1x8
    • --nnodes dan pengaturan lain dapat diubah agar sesuai dengan konfigurasi multinode seperti Slurm atau TorchX
    • Learning rate dalam skrip didasarkan pada node 1x8 dan ukuran batch 32
    • Jika jumlah node atau ukuran batch ditingkatkan, learning rate harus ditingkatkan secara linear
  • Prosedur eksekusinya adalah menetapkan --train_data_local_path ke data yang sudah dipraproses di pretrain.sh, menetapkan --input_model_filename ke ./configs/{model_size}/, lalu menjalankan bash pretrain.sh
  • Evaluasi Wiki dijalankan dengan mengunduh model, memperbarui path checkpoint di eval.sh, lalu menjalankan bash eval.sh

Biaya pelatihan

  • Saat melatih MobileLLM dengan 1T token, waktu yang dibutuhkan berdasarkan 32 GPU NVIDIA A100 80G adalah sebagai berikut
    • 125M: sekitar 3 hari
    • 350M: sekitar 6 hari
    • 600M: sekitar 8 hari
    • 1B: sekitar 12 hari
    • 1.5B: sekitar 18 hari

Hasil penalaran akal sehat zero-shot

  • MobileLLM-125M mencatat rata-rata 46.3 pada arc_easy, arc_challenge, boolq, piqa, siqa, hellaswag, obqa, dan winogrande
    • OPT-125M mencatat 42.6, GPT-neo-125M 42.9, dan Pythia-160M 42.5
    • MobileLLM-LS-125M memiliki rata-rata 47.0
  • MobileLLM-350M mencatat rata-rata 51.3
    • OPT-350M mencatat 43.9 dan Pythia-410M 46.6
    • MobileLLM-LS-350M memiliki rata-rata 52.1
  • MobileLLM-600M mencatat rata-rata 54.3
    • Qwen1.5-500M mencatat 48.8, BLOOM-560M 44.2, dan MobiLlama-800M 50.7
  • MobileLLM-1B mencatat rata-rata 57.3
    • Pythia-1B mencatat 48.7, MobiLlama-1B 55.2, Falcon-1B 56.3, BLOOM-1.1B 46.9, dan TinyLlama-1.1B 54.2
  • MobileLLM-1.5B mencatat rata-rata 59.4
    • GPT-neo-1.3B mencatat 50.6, OPT-1.3B 52.3, BLOOM-1.7B 49.6, dan Qwen1.5-1.8B 56.5
    • GPT-neo-2.7B mencatat 52.8, OPT-2.7B 55.1, Pythia-2.8B 55.8, dan BLOOM-3B 52.3

Proyek terkait dan lisensi

  • Kode ini sebagian berbasis repositori HuggingFace Transformers, dan repositori tersebut menggunakan Apache License
  • Proyek terkait yang disebutkan adalah sebagai berikut
    • SpinQuant: LLM Quantization with Learned Rotations, ICLR 2025 — Paper, Code
    • LLM-QAT: Data-Free Quantization Aware Training for Large Language Models — Paper, Code
  • Sebagai langkah berikutnya, MobileLLM-R1 dan model MobileLLM-R1.5 disebutkan
  • MobileLLM saat ini menggunakan lisensi FAIR NC

1 komentar

 
GN⁺ 2024-07-11
Komentar Hacker News
  • Model kecil memang sedikit membaik, tetapi sepertinya masih belum cukup untuk dipakai pada tujuan yang sama seperti model online. Meski begitu, kemajuan bertahap itu sendiri tetap bagus
    Model 1,5 miliar parameter terlihat seperti lompatan yang cukup besar, dan model yang lebih besar juga unggul dengan selisih besar. Saya tidak tahu kenapa mereka tidak membuatnya lebih besar. Model yang lebih efisien dan muat di perangkat keras setingkat Raspberry Pi bisa mengubah permainan. Kalau tidak salah, TinyLlama 7B juga nyaris hanya sekadar bisa dijalankan

    • Model bahasa yang lebih kecil juga tampaknya berguna sebagai bagian dari sistem pengenalan suara. Dalam situasi ambigu atau bising, model bahasa dapat membantu mempersempit kata mana yang sebenarnya diucapkan
    • Bayangkan model seperti ini ditanamkan ke dalam aplikasi Instagram, lalu dipakai untuk penargetan iklan dengan komputasi di perangkat pengguna. Dengan begitu, Facebook bisa melihat jauh lebih banyak data dengan biaya lebih rendah dan risiko tuntutan hukum yang jauh lebih kecil
      Untuk penggunaan seperti ini, membandingkan model kecil dengan model cloud tidak terlalu adil. Sedikit kenaikan akurasi pada model kecil pun sudah berarti dan bisa langsung berdampak ke pendapatan
    • Saya tidak yakin Raspberry Pi adalah target yang tepat untuk tahap berikutnya dari LLM lokal, dan distribusi web melalui mesin seperti WebLLM juga layak dipertimbangkan https://github.com/mlc-ai/web-llm
      Walaupun model 7B “berjalan baik” di Raspberry Pi, menurut saya pribadi model 7B masih agak besar untuk diunduh dan dijalankan lewat antarmuka berbasis web. Sebaliknya, model 125M yang lumayan bisa dijalankan di halaman web, dan waktu unduh serta biaya bandwidth ke browser lokal juga tidak berlebihan
    • Llama-3-8b berjalan baik di Raspberry Pi
  • Apakah benar harus ada di perangkat mobile? Memang penggunaan yang niche, tetapi kalau tidak terlalu boros sumber daya, sepertinya bisa dipakai untuk membuat dialog NPC di game jadi lebih menarik
    Lebih bagus lagi kalau bisa disetel entah bagaimana agar percakapan memengaruhi perilaku atau aksi NPC

    • Apakah dialog itu benar-benar akan menarik? Jumlah percakapan memang bisa ditambah, tetapi masih diragukan apakah ada landasan yang cukup untuk membuat pemain tertarik. Misalnya, penduduk desa bisa berbicara tentang pemandangan lokal atau hubungan mereka dengan NPC lain, tetapi hal-hal yang mereka gambarkan mungkin sebenarnya tidak ada di dalam game. Secara pribadi, menurut saya akan terasa aneh kalau NPC mulai mengarang hal-hal yang tidak ada
      Saya bisa membayangkan LLM dilatih dengan data game agar NPC dapat menjelaskan dunia game yang benar-benar ada. Tetapi saya tidak tahu perlu skala sebesar apa agar itu menjadi lebih murah daripada sekadar menyuruh manusia menulis dialog. Mungkin di skala Ubisoft itu memungkinkan. Setahu saya, Ubisoft juga pernah meneliti penulisan dengan AI, tetapi terutama untuk penggunaan yang sangat repetitif dan nyaris seperti noise, misalnya teriakan saat pertempuran
    • Akan menarik kalau NPC punya lebih banyak latar belakang cerita dan perilaku yang lebih kompleks. Hanya saja, karena apa pun bisa memengaruhi perilaku, pengujiannya tampak hampir mustahil
  • Saat ini aplikasi apa yang bisa menjalankan model seperti ini di iPhone? Yang saya tahu hanya MLC, tetapi di sana cuma ada tiga model lama

  • Saya penasaran sejauh mana pendekatan lebih dalam dan lebih tipis bisa didorong. Pada titik tertentu, jika seluruh FFN muat di cache L2, rasanya akan ada titik performa yang melonjak cukup besar

    • Riset lain dari Meta FAIR justru mengisyaratkan bahwa untuk meningkatkan performa sambil mempertahankan akurasi, kita malah perlu memangkas lapisan dalam https://arxiv.org/html/2403.17887v1
      Kalau begitu, seharusnya ada batas pada jaringan kecil tempat pendekatan ini berhenti efektif. Kalau tidak, hasilnya saling bertentangan. Atau mungkin ini berarti model-model baru ini masih bisa ditingkatkan jauh lebih banyak
    • Ini mengingatkan saya pada hasil di paper Google EfficientT5 https://arxiv.org/abs/2109.10686. Di sana mereka menyebutnya “DeepNarrow”
  • Mungkin ada yang saya lewatkan, tetapi bukankah sesuatu seperti distilasi pengetahuan bisa membantu di sini?

    • Di paper disebutkan mereka sudah mencobanya: https://arxiv.org/abs/2402.14905
      Deep link HTML ke bagian terkait: https://ar5iv.labs.arxiv.org/html/2402.14905#S3.SS5
      “Sampai saat ini, kami melatih model kecil dari nol dengan menggunakan token berikutnya sebagai hard label. Kami juga mengeksplorasi distilasi pengetahuan (KD)... Sayangnya, KD meningkatkan waktu pelatihan (2,6~3,2x lebih lambat), dan menunjukkan akurasi yang mirip atau lebih rendah dibanding pelatihan berbasis label (lihat lampiran untuk detail).”
  • Saat ini saya benar-benar membutuhkan pengenalan suara on-device mirip wake-word. Model apa yang memiliki WER terendah sambil tetap bisa berjalan di Raspberry Pi 4B? Saya sedang melihat openWakeWord untuk sistem inventaris DIY

  • Untuk model kecil, tampaknya berbagi embedding/pengikatan bobot antara linear head dan token embedding paling besar mengurangi ukuran. Saya penasaran apakah ada riset yang berjalan untuk menguranginya lebih jauh dari situ

    • Jika yang dimaksud adalah LM-head hanyalah matriks embedding yang dibalik, itu sebenarnya sudah dilakukan di GPT-2
      Sayangnya, yang saya temukan soal ini hanya sebatas bahwa model besar mendapat keuntungan dari lapisan terpisah. Namun saya melihatnya dari komentar di suatu Discord, jadi tidak ada makalah yang bisa dibaca, dan secara naluri pribadi saya rasa ini seharusnya juga bekerja pada model besar. Pada akhirnya GPT-3 juga hanyalah GPT-2 yang diperbesar
      Dalam eksperimen pribadi saya, ketika model diberi tugas yang lebih sulit, hasil belajarnya justru lebih baik. Bobot yang diikat bisa jadi salah satunya, prediksi multi-token juga bisa begitu, dan bitnet juga bisa dilihat seperti itu. Dropout juga sama
  • Bagaimana kalau bukan AI generatif di desktop, melainkan AI desktop saja. Akan bagus jika ia bisa mengatur semua file, email, dan catatan saya lalu mencari informasi dari data saya

  • Bagus. Apakah ini juga bisa dipakai untuk melatih model untuk Windows PC? RAM saya tidak banyak

    • Pelatihan model tidak bergantung pada sistem operasi. RAM bergantung pada ukurannya, dan untuk skala seperti ini saya rasa akan jauh lebih mudah melakukan fine-tuning dengan GPU RAM yang lebih sedikit
      Meski begitu, tujuan akhirnya kemungkinan besar adalah mengunduh model seperti ini, atau membayar biaya fine-tuning lalu mendapatkannya, kemudian menggunakannya lewat chip jaringan saraf yang dioptimalkan
      Sekarang ini lebih mirip soal kapan hal itu akan terjadi. Sertifikasi Windows terbaru pun sudah mensyaratkan semacam chip jaringan saraf, dan Google Pixel 8 Pro saya juga bisa meng-host model kecil. Pixel memang bukan ponsel murah, tetapi prosesor pendamping akan jauh lebih murah daripada GPU besar
  • Menarik, tapi saya penasaran apa kegunaannya selain autocompletion yang lebih baik

    • Sepertinya bisa di-fine-tune untuk tugas domain sempit seperti tiny-agent https://bair.berkeley.edu/blog/2024/05/29/tiny-agent/
      Saya suka pendekatan yang tampaknya sedang ditempuh Apple. Tugas sehari-hari ditangani oleh model kecil yang sudah di-fine-tune, dan hal yang tidak bisa ditangani dengan yakin diteruskan ke model besar di luar perangkat. Rasanya kita bisa membuat set pelatihan yang mencakup contoh ketika jawaban berkepercayaan rendah harus diberikan, lalu menambahkan output yang pada dasarnya berarti “minta bantuan” dan melatih model untuk memilih opsi itu. Kalau modelnya kecil, beberapa bisa dijalankan secara paralel, dan model lain bisa merutekan permintaan ke ahli yang tepat
    • Hal-hal seperti membaca email, membalas email, menjadwalkan agenda, menggunakan API layanan
      Pada dasarnya semua tugas yang memerlukan tindakan, bukan pengetahuan. Jika saya berkata “beri tahu istri saya bahwa saya terlambat”, ia akan menanganinya dengan berbicara ke suatu layanan melalui cara ajaib yang sudah disiapkan
      Siri cukup baik untuk otomatisasi rumah tanpa internet, tetapi Google Assistant lama dan Alexa sama sekali tidak begitu, dan rasanya tidak pernah bisa secara offline. Ini memungkinkan asisten yang benar-benar bekerja dengan pendekatan local-first
    • Agen lokal seperti Siri bisa menangani tugas sederhana, lalu merutekan permintaan yang lebih kompleks
    • Bisa di-fine-tune untuk tugas yang terkait dengan perangkat. Dengan kata lain, model kecil pada dasarnya juga bisa menggunakan semua fungsi yang dimiliki aplikasi atau layanan pada perangkat
      Ia bisa meneruskan permintaan pengguna ke aplikasi terkait dalam bentuk bahasa alami, lalu mengoordinasikan aplikasi-aplikasi tersebut. Permintaan yang melampaui kemampuan perangkat bisa dikirim ke model cloud. Ini kuat karena bisa mengubah cara kita berinteraksi dengan perangkat
    • Saya menguji Google AI di ponsel, dan saat saya memintanya membacakan halaman ketika browser sedang terbuka, ia menjawab bahwa ia tidak bisa mengakses internet
      Asisten AI yang saya inginkan harus 1) memahami bahasa Inggris dan bahasa ibu saya, 2) tahu bahwa ia berjalan di Android atau KDE/Linux dan memahami perintah seperti “buka bagian aplikasi di pengaturan Android”, “bacakan halaman yang terbuka di browser”, “bacakan teks dari popup yang sedang terbuka sekarang”, serta terintegrasi dengan sistem operasi lewat API publik. Perusahaan AI besar bisa bersaing dengan menjual asisten yang lebih baik, terutama bagi pengguna multibahasa
      3) modelnya harus kecil, dan tidak perlu tahu pengetahuan seperti geografi, sejarah, atau band musik. Untuk tugas yang ditanyakan pengguna, cukup ada opsi untuk meneruskannya ke mesin pencari atau LLM online