120B parametreli LLM, expert akışıyla Android telefonda çalışıyor
Açık kaynaklı bir Android uygulaması, MoE uzmanlarını flash depodan akıtarak 120B parametreli LLM'i telefon CPU'sunda çalıştırıyor, 30B modeller kullanılabilir hızda.
Bir geliştirici, gpt-oss-120b modelini Q4_K_M kuantizasyonuyla (diskte 60GB) OnePlus 15R telefonda, GPU veya NPU kullanmadan sadece dört CPU çekirdeğiyle 1.3-2.2 tok/s hızında çalıştırmayı başardı. Teknik bir gösteri gibi görünse de aynı yaklaşım Qwen3-30B (5.2 tok/s) ve Gemma-4-26B (4.1 tok/s) gibi modelleri kullanılabilir hızlarda çalıştırıyor.
İşin özü, MoE mimarisinin token başına yalnızca birkaç uzmanı (gpt-oss'ta 128'den 4'ü) aktive etmesinde yatıyor. Paylaşılan ağırlıklar RAM'de kalırken, gereken uzmanlar hesaplama ile örtüşecek şekilde O_DIRECT ile flash depodan tam katman çalışmadan hemen önce okunuyor. Aynı dosyanın düz mmap ile okunması sadece 0.089 tok/s veriyor; akış tekniği yaklaşık 14 kat hız kazandırıyor. Bir CI testi, akışla üretilen çıktının RAM'de tamamen yüklü modelle üretilenle token token birebir aynı olduğunu doğruluyor.
Asıl zorluk akış mekanizması değil, Android'in üretim sırasında RAM'deki ağırlıkları geri almasını engellemekmiş; geliştirme çabasının büyük kısmı buna gitmiş. Proje, vanilla llama.cpp'yi fork etmeden bir alt modül olarak kullanıyor ve tüm genel API'leri koruyor; qwen3moe, qwen2moe, gemma4 ve gpt-oss desteği bugünden mevcut, yeni model eklemek tek satırlık bir değişiklik. Apache-2.0 lisanslı proje ve hazır APK GitHub'da yayınlandı.