با تبدیل شدن هوش مصنوعی روی دستگاه (On-device AI) به یک الزام استاندارد برای اپلیکیشنهای موبایل، انتخاب مدل زبانی بزرگ (LLM) مناسب حیاتی است. توسعهدهندگان در حال حاضر بین Phi-4-mini مایکروسافت و Llama 3.2 1B متا در حال بحث هستند. اگرچه هر دو مدل برای کارایی طراحی شدهاند، اما عملکرد آنها بسته به طرح کمّیسازی (Quantization) استفادهشده تفاوتهای قابل توجهی دارد.
در این تحلیل، ما تأخیر استنباط (Inference Latency)، حجم حافظه مورد نیاز و کیفیت خروجی این دو مدل را هنگام اجرا روی سختافزارهای موبایل مدرن (بهطور خاص چیپ Apple A15/Bionic و Snapdragon 8 Gen 3) مقایسه میکنیم.
معماری مدل و موارد استفاده هدف
Phi-4-mini یک مدل فشرده است که بر قابلیتهای «عاملی» (Agentic) و چگالی استدلال بالا تمرکزز دارد. این مدل از معماری ترکیب متخصصان (Mixture of Experts - MoE) استفاده میکند که به آن اجازه میدهد تنها زیرمجموعهای از پارامترها را در حین استنباط فعال کند. این ویژگی آن را برای وظایفی که نیاز به تفکر منطقی گامبهگام دارند، بسیار کارآمد میسازد.
Llama 3.2 1B، در مقابل، یک مدل چگال (Dense) است که برای مکالمات عمومی و پشتیبانی چندزبانه بهینه شده است. این مدل از نظر تعداد کل پارامترها کوچکتر است اما فاقد تنظیم دقیق (Fine-tuning) تخصصی استدلال Phi-4 است. برای توسعهدهندگان موبایل، Llama 3.2 اغلب به دلیل سازگاری گسترده با زنجیرههای ابزار موجود انتخاب میشود، در حالی که Phi-4-mini برای وظایفی که هوش به ازای هر پارامتر اهمیت حیاتی دارد، انتخاب میگردد.
استراتژیهای کمّیسازی: INT4 در مقابل FP16
روی دستگاههای موبایل، اجرای مدلها با دقت کامل FP16 اغلب به دلیل محدودیتهای حافظه امکانپذیر نیست. کمّیسازی ضروری است. ما هر دو مدل را با استفاده از روشهای زیر آزمایش کردیم:
- FP16 (خط پایه): حداکثر کیفیت، مصرف حافظه بالا.
- INT8 (فقط وزنها): عملکرد متعادل.
- INT4 (GPTQ/AWQ): حداکثر فشردهسازی، حداقل کاهش کیفیت.
ما دریافتیم که Phi-4-mini در مقایسه با Llama 3.2 1B، دقت قابل توجه بیشتری را تحت کمّیسازی INT4 حفظ میکند. این موضوع به دلیل اینکه معماری Phi حساسیت کمتری به از دست رفتن دقت دارد، یک ویژگی رایج در مدلهای «کوچک اما قدرتمند» است.
نتایج معیارهای عملکردی
ما توکنها در ثانیه (TPS) را در حین استنباط روی یک iPhone 14 Pro اندازهگیری کردیم. نتایج مبادلات (Trade-offs) بین اندازه مدل و تسریع سختافزاری را برجسته میکنند.
مقایسه حجم حافظه مورد نیاز
| مدل | کمّیسازی | مصرف RAM | سرعت استنباط (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 |
نکته کلیدی: 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، تنظیمات مشابه است، اما باید اطمینان حاصل کنید که دستگاه شما هنگام استفاده از کمّیسازی INT4 حداقل 5 گیگابایت RAM آزاد دارد. برای دستگاههای پایینرده، در نظر بگیرید که از نسخه کوچکتر 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 برنده است. با این حال، اگر به هوش بالاتر و قابلیتهای استدلال بهتر نیاز دارید و دستگاههای هدف شما RAM کافی (6 گیگابایت یا بیشتر) دارند، Phi-4-mini حتی هنگام کمّیسازی به INT4، تجربه برتری ارائه میدهد.
برای اپلیکیشنهای موبایل تولیدی، یک رویکرد ترکیبی را در نظر بگیرید: از Llama 3.2 برای وظایف ساده استفاده کنید و برای پرسشهای پیچیده به یک مدل بزرگتر میزبانیشده در ابر (Cloud) بازگردید، یا اگر هوش روی دستگاه یک الزام غیرقابل مذاکره است، Phi-4-mini را پیادهسازی کنید.
با ادامه پیشرفت سختافزار موبایل، شکاف بین این دو مدل باریکتر خواهد شد، اما برای اکنون، درک کارایی کمّیسازی آنها کلید ساخت اپلیکیشنهای موفق هوش مصنوعی روی دستگاه است.