3 puan yazan GN⁺ 2024-07-11 | 1 yorum | WhatsApp'ta paylaş
  • 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ünde torchrun ile 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

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/#nodes altında xxx.jsonl dosyaları bulunacak şekilde düzenleniyor
    • Her jsonl satı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ında torchrun ile eğitimi başlatan bir betik
    • --nnodes ve 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.sh içinde --train_data_local_path değerini ön işlenmiş veriye ayarlayıp --input_model_filename değerini ./configs/{model_size}/ olarak belirledikten sonra bash pretrain.sh çalıştırmak şeklinde
  • Wiki değerlendirmesi için model indirilip eval.sh içindeki checkpoint yolu güncellendikten sonra bash 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
    • SpinQuant: LLM Quantization with Learned Rotations, ICLR 2025 — Paper, Code
    • LLM-QAT: Data-Free Quantization Aware Training for Large Language Models — Paper, Code
  • Sonraki adım olarak MobileLLM-R1 ve MobileLLM-R1.5 modelleri gösteriliyor
  • MobileLLM şu anda FAIR NC lisansı kullanıyor

1 yorum

 
GN⁺ 2024-07-11
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

    • Daha küçük dil modelleri, konuşma tanıma sisteminin bir parçası olarak da faydalı olabilir. Belirsiz veya gürültülü durumlarda hangi kelimenin söylendiğini daraltmaya yardımcı olabilirler
    • Böyle bir modelin Instagram uygulamasına gömüldüğünü ve cihaz üzerindeki hesaplamayla reklam hedefleme için kullanıldığını hayal edin. Böylece Facebook çok daha fazla veriyi, daha düşük maliyetle ve çok daha düşük dava riskiyle görebilir
      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
    • Raspberry Pi’nin bir sonraki aşama yerel LLM’ler için doğru hedef olup olmadığından emin değilim; WebLLM gibi bir motor üzerinden web dağıtımı da düşünülmeli https://github.com/mlc-ai/web-llm
      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
    • Llama-3-8b Raspberry Pi’de iyi çalışıyor
  • 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

    • Bu diyalog gerçekten ilginç olur mu? Diyalog miktarını artırabilirsiniz, ama oyuncunun ilgi duyacağı bir temel olur mu emin değilim. Örneğin köylüler yerel manzaradan veya diğer NPC’lerle ilişkilerinden söz edebilir, ama anlattıkları şeyler oyunda gerçekte var olmayabilir. Bence NPC’ler var olmayan şeyleri uydurmaya başlarsa tuhaf hissettirebilir
      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
    • NPC’lerin daha fazla arka plan hikâyesi ve daha karmaşık davranışları olması ilginç olurdu. Ancak herhangi bir şey davranışı etkileyebileceği için test etmek neredeyse imkânsız olur gibi görünüyor
  • Ş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

  • 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

    • Meta FAIR’in başka bir araştırması, doğruluğu korurken performansı artırmak için aslında derin katmanları budamak gerektiğini öne sürüyor https://arxiv.org/html/2403.17887v1
      Ö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
    • Google’ın EfficientT5 makalesindeki sonuçları hatırlatıyor https://arxiv.org/abs/2109.10686. Orada buna “DeepNarrow” deniyor
  • Bir şeyi mi kaçırıyorum bilmiyorum ama bilgi damıtma gibi şeyler burada yardımcı olmaz mı?

    • Makalede bunun denendiği yazıyor: https://arxiv.org/abs/2402.14905
      İ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

    • Eğer LM-head'in sadece ters çevrilmiş embedding matrisi olduğu kastediliyorsa, bu zaten GPT-2'de yapılmıştı.
      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

    • Model eğitimi işletim sistemine bağlı değildir. RAM ihtiyacı boyuta göre değişir ve bu ölçekte, daha az GPU RAM ile fine-tuning yapmak çok daha kolay olur diye düşünüyorum.
      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

    • tiny-agent gibi dar alanlı işler için fine-tuning yapılabilir gibi görünüyor https://bair.berkeley.edu/blog/2024/05/29/tiny-agent/
      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
    • E-posta okuma, e-postaya yanıt verme, takvim planlama, servis API'lerini kullanma gibi şeyler.
      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
    • Siri benzeri bir yerel ajan basit görevleri halledebilir, daha karmaşık istekleri ise yönlendirebilir
    • Cihazla ilgili görevlere göre fine-tuning yapılabilir. Yani cihazdaki uygulama veya servislerin sunduğu her işlev, küçük model tarafından da fiilen kullanılabilir.
      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
    • Telefonda Google AI'ı denedim; tarayıcı açıkken sayfayı okumasını istedim, bana internete erişemediğini söyledi.
      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