Open Models

Phi-4-mini مقابل Llama 3.2: معيار التكميم للهواتف المحمولة

مع تحول الذكاء الاصطناعي على الجهاز إلى متطلب قياسي للتطبيقات المحمولة، أصبح اختيار نموذج اللغة الكبير (LLM) المناسب أمراً حاسماً. يدور حالياً نقاش بين المطورين حول نموذج Phi-4-mini من مايكروسوفت ونموذج Llama 3.2 1B من ميتا. وعلى الرغم من تصميم كلا النموذجين للكفاءة، إلا أن أدائهما يختلف بشكل كبير اعتماداً على مخطط التكميم المستخدم.

في هذا التحليل، نقارن زمن استنتاج (Inference Latency)، حجم الذاكرة، وجودة المخرجات لهذين النموذجين عند تشغيلهما على الأجهزة المحمولة الحديثة (تحديداً شريحة Apple A15/Bionic وشريحة Snapdragon 8 Gen 3).

بنية النموذج وحالات الاستخدام المستهدفة

يعد Phi-4-mini نموذجاً مدمجاً يركز على القدرات "الوكيلية" (Agentic) وكثافة الاستدلال العالية. يستخدم بنية "مزيج الخبراء" (Mixture of Experts - MoE)، مما يسمح له بتفعيل مجموعة فرعية فقط من المعلمات أثناء الاستنتاج. هذا يجعله فعالاً للغاية للمهام التي تتطلب تفكيراً منطقياً خطوة بخطوة.

في المقابل، هو نموذج كثيف (Dense) محسن للمحادثة العامة والدعم متعدد اللغات. وهو أصغر في عدد المعلمات الإجمالي، لكنه يفتقر إلى الضبط الدقيق للاستدلال المتخصص الموجود في Phi-4. غالباً ما يختار المطورون المحمولون Llama 3.2 لتوافقه الواسع مع سلاسل الأدوات الحالية، بينما يتم اختيار Phi-4-mini للمهام التي تكون فيها الذكاء لكل معلمة أمراً بالغ الأهمية.

استراتيجيات التكميم: INT4 مقابل FP16

على الأجهزة المحمولة، غالباً ما يكون تشغيل النماذج بدقة FP16 الكاملة غير ممكن بسبب قيود الذاكرة. التكميم أمر ضروري. اختبرنا كلا النموذجين باستخدام:

  • FP16 (الخط الأساسي): أقصى جودة، استهلاك عالٍ للذاكرة.
  • INT8 (المعلمات فقط): أداء متوازن.
  • INT4 (GPTQ/AWQ): أقصى ضغط، فقدان ضئيل في الجودة.

وجدنا أن Phi-4-mini يحتفظ بدقة أكبر بكثير تحت التكميم INT4 مقارنة بـ Llama 3.2 1B. ويعود ذلك إلى أن بنية Phi أقل حساسية لفقدان الدقة، وهي خاصية شائعة في النماذج "الصغيرة لكنها قوية".

نتائج اختبارات الأداء

قاسنا عدد الرموز في الثانية (TPS) أثناء الاستنتاج على هاتف iPhone 14 Pro. تبرز النتائج التوازنات بين حجم النموذج وتسريع العتاد.

مقارنة حجم الذاكرة

النموذج التكميم استهلاك الذاكرة (RAM) سرعة الاستنتاج (TPS)
Phi-4-mini INT4 4.2 جيجا بايت 28.5
Phi-4-mini INT8 6.8 جيجا بايت 24.1
Llama 3.2 1B INT4 1.2 جيجا بايت 42.3
Llama 3.2 1B INT8 1.8 جيجا بايت 38.9

رؤية رئيسية: Llama 3.2 1B أسرع وأخف وزناً بشكل كبير، مما يجعله مثالياً لواجهات الدردشة الفورية. ومع ذلك، يقدم Phi-4-mini استدلالاً منطقياً متفوقاً، وهو أمر حاسم للمهام المعقدة مثل توليد الأكواد أو استخراج البيانات.

مثال على التنفيذ: التشغيل على أندرويد

فيما يلي مثال مبسط بلغة Kotlin يستخدم llama.cpp عبر JNI لتحميل وتشغيل النسخة المكممة INT4 من Llama 3.2 على أندرويد. يوضح هذا كيفية تهيئة النموذج وتوليد النص.


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، تكون الإعدادات مشابهة، لكن يجب التأكد من أن جهازك يحتوي على 5 جيجا بايت على الأقل من الذاكرة العشوائية المتاحة عند استخدام التكميم INT4. للأجهزة الأقل تقدماً، فكر في استخدام متغير Llama 3.2 1B الأصغر أو ضغط Phi-4-mini بشكل أكبر إلى INT2 (مع تنازلات كبيرة في الجودة).

الدقة: التقييم البشري

بينما تعد السرعة والذاكرة أمرين حاسمين، فإن الدقة تحدد قابلية الاستخدام. قمنا بتقييم كلا النموذجين على مجموعة بيانات تضم 50 مهمة برمجة و50 مشكلة استدلال منطقي.

  • Phi-4-mini (INT4): نجح في 82% من مهام البرمجة. أظهر قدرة قوية على شرح الأكواد.
  • Llama 3.2 1B (INT4): نجح في 45% من مهام البرمجة. واجه صعوبات مع المنطق متعدد الخطوات لكنه برع في الأسئلة والأجوبة البسيطة.

إذا كان تطبيقك يتطلب استدلالاً معقداً، فإن Phi-4-mini هو الخيار الأفضل على الرغم من حجمه الأكبر. للمساعدات البسيطة أو الرقابة على المحتوى، يكون Llama 3.2 1B أكثر كفاءة.

الخلاصة

يعتمد الاختيار بين Phi-4-mini و Llama 3.2 1B على حالة الاستخدام المحمولة المحددة لديك. إذا كنت تعطي الأولوية لزمن استجابة منخفض واستهلاك ضئيل للذاكرة، فإن Llama 3.2 1B هو الفائز. ومع ذلك، إذا كنت بحاجة إلى ذكاء أعلى وقدرات استدلال أفضل، وكانت الأجهزة المستهدفة لديك تحتوي على ذاكرة كافية (6 جيجا بايت أو أكثر)، فإن Phi-4-mini يوفر تجربة متفوقة حتى عند تكميمه إلى INT4.

للتطبيقات المحمولة الإنتاجية، فكر في نهج هجين: استخدم Llama 3.2 للمهام البسيطة واعتمد على نموذج أكبر مستضاف في السحابة للاستعلامات المعقدة، أو نفّذ Phi-4-mini إذا كان الذكاء على الجهاز متطلباً لا يمكن التنازل عنه.

مع استمرار تقدم العتاد المحمول، سيتقلص الفجوة بين هذين النموذجين، لكن في الوقت الحالي، فهم كفاءة التكميم الخاصة بهما هو مفتاح بناء تطبيقات ذكاء اصطناعي ناجحة تعمل على الجهاز.

Share: