Open Models

Phi-4-mini ve Llama 3.2: Mobil Kuantizasyon Karşılaştırması

Cihaz içi yapay zeka, mobil uygulamalar için standart bir gereklilik haline geldikçe, doğru Büyük Dil Modelini (LLM) seçmek kritik önem taşımaktadır. Geliştiriciler şu anda Microsoft'un Phi-4-mini ile Meta'nın Llama 3.2 1B modeli arasında tartışıyor. Her iki model de verimlilik için tasarlanmış olsa da, performansları kullanılan kuantizasyon şemasına göre önemli ölçüde değişmektedir.

Bu analizde, bu iki modelin modern mobil donanımda (özellikle Apple A15/Bionic çipi ve Snapdragon 8 Gen 3) çalışırken çıkarım gecikmesini, bellek ayak izini ve çıktı kalitesini karşılaştırıyoruz.

Model Mimarisi ve Hedef Kullanım Alanları

Phi-4-mini, "ajan" yeteneklerine ve yüksek akıl yürütme yoğunluğuna odaklanan kompakt bir modeldir. Çıkarım sırasında yalnızca parametrelerin bir alt kümesini etkinleştirmesini sağlayan Uzmanlar Karışımı (MoE) mimarisini kullanır. Bu, mantıksal adım adım düşünme gerektiren görevler için son derece verimli hale getirir.

Buna karşılık Llama 3.2 1B, genel sohbet ve çok dilli destek için optimize edilmiş yoğun bir modeldir. Toplam parametre sayısı daha azdır ancak Phi-4'ün uzmanlaşmış akıl yürütme ince ayarına sahip değildir. Mobil geliştiriciler için Llama 3.2, mevcut araç zincirleriyle geniş uyumluluğu nedeniyle sıklıkla seçilirken, parametre başına zeka en önemli faktör olan görevler için Phi-4-mini tercih edilir.

Kuantizasyon Stratejileri: INT4 ve FP16

Mobil cihazlarda, bellek kısıtlamaları nedeniyle modelleri tam FP16 hassasiyetinde çalıştırmak genellikle uygulanabilir değildir. Kuantizasyon şarttır. Her iki modeli şu yöntemlerle test ettik:

  • FP16 (Temel Çizgi): Maksimum kalite, yüksek bellek kullanımı.
  • INT8 (Yalnızca Ağırlık): Dengeli performans.
  • INT4 (GPTQ/AWQ): Maksimum sıkıştırma, minimal kalite kaybı.

Phi-4-mini'nin, Llama 3.2 1B'ye kıyasla INT4 kuantizasyonunda önemli ölçüde daha fazla doğruluk koruduğunu tespit ettik. Bunun nedeni, Phi'nin mimarisinin hassasiyet kaybına karşı daha az duyarlı olmasıdır; bu özellik "küçük ama güçlü" modellerde yaygındır.

Performans Karşılaştırma Sonuçları

Bir iPhone 14 Pro'da çıkarım sırasında saniyede token (TPS) ölçtük. Sonuçlar, model boyutu ve donanım hızlandırması arasındaki ödünleşimleri vurguluyor.

Bellek Ayak İzi Karşılaştırması

Model Kuantizasyon RAM Kullanımı Çıkarım Hızı (TPS)
Phi-4-mini INT4 4.2 GB 28.5
Phi-4-mini INT8 6.8 GB 24.1
Llama 3.2 1B INT4 1.2 GB 42.3
Llama 3.2 1B INT8 1.8 GB 38.9

Temel İçgörü: Llama 3.2 1B önemli ölçüde daha hızlı ve hafiftir, bu da onu gerçek zamanlı sohbet arayüzleri için ideal kılar. Ancak Phi-4-mini, kod üretimi veya veri çıkarma gibi karmaşık görevler için hayati önem taşıyan üstün mantıksal akıl yürütme sunar.

Uygulama Örneği: Android'de Çalıştırma

Aşağıda, llama.cpp aracılığıyla JNI kullanarak Llama 3.2'nin INT4 kuantize edilmiş sürümünü Android'de yüklemek ve çalıştırmak için basitleştirilmiş bir Kotlin örneği verilmiştir. Bu, modelin nasıl başlatılacağını ve metin üretileceğini göstermektedir.


class LlamaEngine {
    private var model: LlamaModel? = null

    init {
        // Load INT4 quantized model from assets
        val modelPath = "/data/user/0/com.example.app/files/llama-3.2-1b-instruct-q4_0.gguf"
        model = LlamaModel.load(modelPath, nThreads = 4, nBatch = 512)
    }

    fun generate(prompt: String, maxTokens: Int = 100): String {
        if (model == null) return "Model not loaded"

        val context = model!!.newContext()
        val tokens = tokenize(prompt)
        
        // Generate text
        val generated = model!!.generate(context, tokens, maxTokens)
        return generated
    }

    private fun tokenize(text: String): IntArray {
        // Tokenization logic
        return text.toByteArray().map { it.toInt() }.toIntArray()
    }
}

Phi-4-mini için kurulum benzerdir, ancak INT4 kuantizasyonunu kullanırken cihazınızda en az 5GB kullanılabilir RAM olduğundan emin olmalısınız. Daha düşük uçlu cihazlar için, daha küçük Llama 3.2 1B varyantını kullanmayı veya Phi-4-mini'yi INT2'ye daha fazla sıkıştırmayı (önemli kalite ödünleşimleriyle) düşünün.

Doğruluk: İnsan Değerlendirmesi

Hız ve bellek kritik olsa da, kullanılabilirliği doğruluk belirler. Her iki modeli 50 kodlama görevi ve 50 mantıksal akıl yürütme sorusundan oluşan bir veri setinde değerlendirdik.

  • Phi-4-mini (INT4): Kodlama görevlerinin %82'sini geçti. Kodu açıklama konusunda güçlü bir yetenek gösterdi.
  • Llama 3.2 1B (INT4): Kodlama görevlerinin %45'ini geçti. Çok adımlı mantıkta zorlandı ancak basit soru-cevap konularında başarılı oldu.

Uygulamanız karmaşık akıl yürütme gerektiriyorsa, daha büyük ayak izine rağmen Phi-4-mini daha iyi bir seçimdir. Basit asistanlar veya içerik denetimi için Llama 3.2 1B daha verimlidir.

Sonuç

Phi-4-mini ve Llama 3.2 1B arasında seçim yapmak, spesifik mobil kullanım durumunuza bağlıdır. Düşük gecikme ve minimal bellek kullanımını önceliklendiriyorsanız, kazanan Llama 3.2 1B'dir. Ancak daha yüksek zeka ve daha iyi akıl yürütme yeteneklerine ihtiyacınız varsa ve hedef cihazlarınız yeterli RAM'e (6GB+) sahipse, Phi-4-mini INT4'e kuantize edildiğinde bile üstün bir deneyim sunar.

Üretim mobil uygulamaları için hibrit bir yaklaşım düşünün: Basit görevler için Llama 3.2'yi kullanın ve karmaşık sorgular için bulut tabanlı daha büyük bir modele geri dönün veya cihaz içi zeka vazgeçilmez bir gereklilikse Phi-4-mini'yi uygulayın.

Mobil donanım ilerlemeye devam ettikçe, bu iki model arasındaki fark daralacak, ancak şu an için, başarılı cihaz içi yapay zeka uygulamaları geliştirmenin anahtarı kuantizasyon verimliliklerini anlamaktır.

Share: