MobileLLM: Cihaz Üstü Kullanım Senaryoları İçin Alt Milyar Parametreli Dil Modellerinin Optimize Edilmesi
(github.com/facebookresearch)- MobileLLM deposu, ICML 2024 makalesi “MobileLLM: Optimizing Sub-billion Parameter Language Models for On-Device Use Cases” için eğitim kodunu sunuyor ve 1 milyarın altındaki parametreli dil modellerinin kalitesini artıran tasarımları ele alıyor
- Model tasarımı, SwiGLU, derin ve ince yapı, gömme paylaşımı ve grouped-query attention'ı birleştirerek MobileLLM'i oluşturuyor
- MobileLLM-125M/350M, zero-shot sağduyu muhakemesi görevlerinde mevcut 125M/350M SoTA modellere kıyasla sırasıyla %2.7/%4.3 doğruluk artışı elde etti; güncellenmiş sürüm ise 600M/1B/1.5B'de de SoTA sonuçlar gösteriyor
- Eğitim kodu Python 3.9 ve PyTorch 2.0 veya üzerini gerektiriyor;
pretrain.sh, 1x8 GPU düğümündetorchrunile başlatılıyor ve düğüm sayısı ya da batch boyutu artırılırsa öğrenme oranının doğrusal olarak yükseltilmesi gerekiyor - 1T token bazında eğitim maliyeti, 32 adet NVIDIA A100 80G GPU üzerinde 125M için yaklaşık 3 gün, 350M için yaklaşık 6 gün, 600M için yaklaşık 8 gün, 1B için yaklaşık 12 gün ve 1.5B için yaklaşık 18 gün sürüyor
MobileLLM'in amacı ve yayımlanan kapsam
- MobileLLM, cihaz üstü kullanım senaryoları için alt milyar parametreli dil modellerini optimize etmeye yönelik eğitim kodlarını içeren bir depo
- Temel makale MobileLLM: Optimizing Sub-billion Parameter Language Models for On-Device Use Cases olup ICML 2024'te yayımlandı
- Temel hedef, 1 milyardan az parametreyle de yüksek kaliteli LLM'ler üretmek için çeşitli tasarım unsurlarını bütünlüklü biçimde değerlendirmek
Model tasarım unsurları
- MobileLLM şu tasarım unsurlarını birleştiriyor
- SwiGLU aktivasyon fonksiyonu
- derin ve ince mimari
-
gömme paylaşımı
- grouped-query attention
- Güncellenen sürüm, bu tasarım yaklaşımının daha büyük modellere de genişletildiğini belirtiyor ve MobileLLM-600M/1B/1.5B ile SoTA sonuçlar gösteriyor
Yayım ve sonraki model haberleri
- 30 Ekim 2024'te MobileLLM modelleri HuggingFace üzerinde yayımlandı
- Eylül 2025'te devam çalışması MobileLLM-R1 yayımlandı
- Yaklaşık 2T ön eğitim tokenı ve toplam 5T'nin altında token ile MATH, GSM8K, MMLU, LiveCodeBench'te Qwen3-0.6B'nin 36T tokenlık sonuçlarına yetişiyor veya onları aşıyor
- Kod, model, veri ve eğitim reçetesi yayımlandı
- HuggingFace koleksiyonu sunuluyor
- Kasım 2025'te MobileLLM-R1.5 yayımlandı
- MobileLLM-R1.5-950M, değerlendirilen tüm matematik ve kodlama benchmark'larında DeepSeek-R1-Distill-Qwen-1.5B'yi geride bırakıyor
- Parametre sayısı ise 0.95B'ye karşı 1.5B ile daha düşük
- Ocak 2026'da MobileLLM-R1, ICLR 2026'ya kabul edildi
Çalıştırma ve eğitim yapılandırması
- Gereksinimler Python 3.9, PyTorch 2.0 veya üzeri ve
pip install -r requirement.txt - Veri ön işleme, tokenize edilmiş veri kümelerini bölmek veya kendi veri kümesini tokenize ettikten sonra toplam eğitim düğümü sayısına göre dağıtmak şeklinde ilerliyor
- Her düğüm 1x8 GPU yapılandırmasına sahip
- Veri yapısı,
basepath/1,basepath/2, ...,basepath/#nodesaltındaxxx.jsonldosyaları bulunacak şekilde düzenleniyor - Her
jsonlsatırı,{"token_ids": [1,2,3,4,...]}biçiminde tokenize veri anahtar-değer çiftinden oluşuyor - Eğitim kodu, LLM360/amber-data-prep içindeki veri ön işleme yöntemiyle uyumlu
pretrain.sh, 1x8 düğüm yapılandırmasındatorchrunile eğitimi başlatan bir betik--nnodesve diğer ayarlar değiştirilerek Slurm veya TorchX gibi çok düğümlü yapılandırmalara uyarlanabiliyor- Betikteki öğrenme oranı, 1x8 düğüm ve 32 batch boyutu temel alınarak ayarlanmış
- Düğüm sayısı veya batch boyutu artırılırsa öğrenme oranı doğrusal olarak artırılmalı
- Çalıştırma adımları,
pretrain.shiçinde--train_data_local_pathdeğerini ön işlenmiş veriye ayarlayıp--input_model_filenamedeğerini./configs/{model_size}/olarak belirledikten sonrabash pretrain.shçalıştırmak şeklinde - Wiki değerlendirmesi için model indirilip
eval.shiçindeki checkpoint yolu güncellendikten sonrabash eval.shçalıştırılıyor
Eğitim maliyeti
- MobileLLM'i 1T token ile eğitirken 32 adet NVIDIA A100 80G GPU üzerinde gereken süreler şöyle
- 125M: yaklaşık 3 gün
- 350M: yaklaşık 6 gün
- 600M: yaklaşık 8 gün
- 1B: yaklaşık 12 gün
- 1.5B: yaklaşık 18 gün
Zero-shot sağduyu muhakemesi sonuçları
- MobileLLM-125M, arc_easy, arc_challenge, boolq, piqa, siqa, hellaswag, obqa, winogrande ortalamasında 46.3 elde ediyor
- OPT-125M 42.6, GPT-neo-125M 42.9, Pythia-160M 42.5
- MobileLLM-LS-125M ortalama 47.0
- MobileLLM-350M ortalama 51.3 elde ediyor
- OPT-350M 43.9, Pythia-410M 46.6
- MobileLLM-LS-350M ortalama 52.1
- MobileLLM-600M ortalama 54.3 elde ediyor
- Qwen1.5-500M 48.8, BLOOM-560M 44.2, MobiLlama-800M 50.7
- MobileLLM-1B ortalama 57.3 elde ediyor
- Pythia-1B 48.7, MobiLlama-1B 55.2, Falcon-1B 56.3, BLOOM-1.1B 46.9, TinyLlama-1.1B 54.2
- MobileLLM-1.5B ortalama 59.4 elde ediyor
- GPT-neo-1.3B 50.6, OPT-1.3B 52.3, BLOOM-1.7B 49.6, Qwen1.5-1.8B 56.5
- GPT-neo-2.7B 52.8, OPT-2.7B 55.1, Pythia-2.8B 55.8, BLOOM-3B 52.3
İlgili projeler ve lisans
- Kod kısmen HuggingFace Transformers deposunu temel alıyor; ilgili depo Apache License kullanıyor
- İlgili projeler olarak şunlar sunuluyor
- Sonraki adım olarak MobileLLM-R1 ve MobileLLM-R1.5 modelleri gösteriliyor
- MobileLLM şu anda FAIR NC lisansı kullanıyor
1 yorum
Hacker News görüşleri
Küçük modeller biraz iyileşmiş, ama çevrimiçi modellerle aynı kullanım amaçları için hâlâ yetersiz görünüyor. Yine de kademeli ilerlemenin kendisi iyi
1,5 milyar parametreli model oldukça büyük bir sıçrama gibi görünüyor ve daha büyük modelleri de açık farkla geçiyor. Neden daha da büyük yapılmadığını bilmiyorum. Raspberry Pi düzeyinde donanıma sığan daha verimli bir model oyunun kurallarını değiştirebilir. Yanlış hatırlamıyorsam TinyLlama 7B de zar zor çalışıyor
Bu kullanım alanında küçük modelleri bulut modelleriyle karşılaştırmak adil değil. Küçük modelin doğruluğunda küçük bir artış bile anlamlı olabilir ve doğrudan gelire dönüşebilir
7B model Raspberry Pi’de “iyi çalışsa” bile, bana göre web tabanlı bir arayüzden indirip çalıştırmak için 7B biraz büyük. Buna karşılık düzgün bir 125M model bir web sayfasında çalışabilir ve yerel tarayıcıya indirme süresi ile bant genişliği maliyeti de aşırı olmaz
Bunun mutlaka mobil cihazlarda olması mı gerekiyor? Niş bir kullanım alanı olsa da, çok kaynak tüketmiyorsa oyunlarda NPC diyaloglarını daha ilginç hâle getirmek için kullanılabilir
Daha da iyisi, bir şekilde ayarlanıp diyalogların NPC’nin davranışlarını veya eylemlerini etkileyebilmesi olurdu
NPC’lerin gerçek oyun dünyasını anlatması için oyun verisiyle bir LLM eğitmeyi hayal edebiliyorum. Ama bunun insanlara diyalog yazdırmaktan daha ucuz olması için ne kadar ölçek gerekeceğini bilmiyorum. Belki Ubisoft ölçeğinde mümkündür. Bildiğim kadarıyla Ubisoft da yapay zekayla yazı üretimini araştırıyordu, ama daha çok savaş sırasında atılan nidalar gibi son derece tekrar eden ve fiilen gürültü sayılabilecek kullanım alanları için
Şu anda iPhone’da bu tür modelleri çalıştırabilen hangi uygulamalar var? Bildiğim tek şey MLC, ama onda da sadece eski 3 model var
https://llm.mlc.ai/docs/deploy/android.html
Bunun daha derin ve daha ince hâle getirilmesi ne kadar ileri götürülebilir merak ediyorum. Bir noktada tüm FFN L2 önbelleğine sığarsa performansın epey sıçradığı bir bölge olabilir gibi geliyor
Öyleyse bu yaklaşımın işe yaradığı küçük ağlar için bir sınır noktası olmalı. Yoksa sonuçlar birbiriyle çelişiyor. Ya da bu yeni modellerin çok daha fazla geliştirilebileceği anlamına geliyor olabilir
Bir şeyi mi kaçırıyorum bilmiyorum ama bilgi damıtma gibi şeyler burada yardımcı olmaz mı?
İlgili bölümün HTML derin bağlantısı: https://ar5iv.labs.arxiv.org/html/2402.14905#S3.SS5
“Şimdiye kadar bir sonraki token’ı sert etiket olarak kullanıp küçük modeli sıfırdan eğittik. Bilgi damıtmayı (KD) da araştırdık... Ne yazık ki KD eğitim süresini artırdı (2,6~3,2 kat daha yavaş) ve etiket tabanlı eğitime benzer veya daha düşük doğruluk gösterdi (ayrıntılar eklerde).”
Şu anda gerçekten cihaz üzerinde wake-word benzeri konuşma tanıma ihtiyacım var. Raspberry Pi 4B’de çalışabilecek ve WER değeri en düşük olan model hangisi? DIY envanter sistemi için openWakeWord’e bakıyorum
Küçük modellerde boyutu en çok azaltan şeyin, lineer head ile token embedding arasındaki embedding paylaşımı/ağırlık bağlama olduğu görülüyor. Bundan daha da küçültmeye yönelik araştırmalar sürüyor mu merak ediyorum
Ne yazık ki bununla ilgili bulabildiğim tek şey, büyük modellerin ayrı bir katmandan fayda sağladığı yönündeydi. Ama bunu bir yerde Discord'da görmüştüm; okunacak bir makale yok. Yine de kişisel sezgim bunun büyük modellerde de işe yaraması gerektiği yönünde. Sonuçta GPT-3 de GPT-2'nin büyütülmüş haliydi.
Kendi deneylerimde, modele daha zor görevler verdiğimde daha iyi öğrendiğini gördüm. Bağlı ağırlıklar bunlardan biri olabilir; çoklu token tahmini de öyle olabilir, bitnet de öyle görülebilir. Dropout da aynı şekilde
Masaüstünde üretken yapay zeka değil de doğrudan masaüstü yapay zeka olsa nasıl olurdu? Tüm dosyalarımı, e-postalarımı, notlarımı düzenlese ve kendi verilerim içinde bilgi aramama yardımcı olsa harika olurdu
Güzel. Bu, Windows PC için model eğitmekte de kullanılabilir mi? RAM'im çok fazla değil
Yine de nihai hedef büyük olasılıkla bu tür modelleri indirip kullanmak ya da fine-tuning maliyetini ödeyip edinmek ve ardından optimize edilmiş sinir ağı çipleri üzerinden çalıştırmak olacak.
Şu an daha çok meselenin bunun ne zaman gerçekleşeceği olduğunu düşünüyorum. En yeni Windows sertifikasyonu bile zaten bir tür sinir ağı çipi gerektiriyor ve benim Google Pixel 8 Pro'm da küçük modelleri barındırabiliyor. Pixel ucuz bir telefon değil ama yardımcı işlemciler büyük bir GPU'dan çok daha ucuz olacaktır
İlginç ama, daha iyi otomatik tamamlama dışında kullanım alanı ne olur merak ediyorum
Apple'ın yöneldiği gibi görünen yaklaşımı seviyorum. Gündelik işleri fine-tuning yapılmış küçük bir model hallediyor, güvenle çözemediği şeyleri ise cihaz dışındaki büyük bir modele devrediyor. Düşük güvenilirlikte cevap vermesi gereken örnekleri içeren bir eğitim seti oluşturup, fiilen “yardım iste” anlamına gelen bir çıktı ekleyerek bu seçeneği seçmeyi öğretebileceğinizi düşünüyorum. Küçük modeller söz konusuysa birkaçını paralel çalıştırmak ve başka bir modelin istekleri uygun uzmana yönlendirmesini sağlamak da mümkün olabilir
Temelde bilgi değil eylem gerektiren her iş. “Eşime geç kalacağımı haber ver” dediğinizde, önceden ayarlanmış sihirli bir yöntemle bir servisle konuşup bunu halletmesi gibi.
Siri internetsizken bile ev otomasyonunu oldukça iyi yapabiliyor ama eski Google Assistant ve Alexa hiç böyle değildi; sanırım çevrimdışı çalışabildikleri bir dönem de olmadı. Bu da yerel öncelikli iyi çalışan bir asistanı mümkün kılıyor
Kullanıcı isteklerini doğal dil biçiminde ilgili uygulamalara iletebilir ve uygulamaları koordine edebilir. Cihazın yeteneklerini aşan istekler bulut modeline gönderilebilir. Cihazla etkileşim biçimini değiştirebileceği için güçlü bir yaklaşım
Benim istediğim yapay zeka asistanı 1) İngilizceyi ve ana dilimi anlamalı, 2) Android ya da KDE/Linux üzerinde çalıştığını bilmeli ve “Android ayarlarında uygulamalar bölümünü aç”, “Tarayıcıda açık olan sayfayı oku”, “Şu anda açık olan açılır penceredeki metni oku” gibi komutları anlayıp işletim sistemiyle herkese açık API'ler üzerinden entegre olmalı. Büyük yapay zeka şirketleri, özellikle çok dilli kullanıcılar için daha iyi asistan satarak rekabet edebilir.
3) Model küçük olmalı; coğrafya, tarih, müzik grupları gibi bilgileri bilmek zorunda değil. Kullanıcının sorduğu görevleri bir arama motoruna veya çevrimiçi bir LLM'e yönlendirme seçeneği olsa yeterli