اپل چطوری یه LLM سه میلیارد پارامتری رو تو آیفون جا میده
خلاصهٔ کاملتر
ByteByteGo تو این مقاله سراغ یه سوال ساده رفته: اپل چطوری یه مدل با ۳ میلیارد پارامتر رو روی آیفون جا میده؟ مشکل اصلی دو تاست. اول حجم: با دقت ۱۶ بیتی، این پارامترها نزدیک ۶ گیگ جا میگیرن، تازه بدون حساب حافظهی پرامپت و محاسبات و بقیهی اپها. دوم memory bandwidth، یعنی سرعت رسیدن داده از حافظه به پردازنده. حتی پردازندهی قوی هم ممکنه بیشتر وقتش رو منتظر داده بمونه.
راهحل اول quantization هست، یعنی ذخیرهی هر وزن با بیت کمتر. اپل از روشی به اسم palettization استفاده میکنه: وزنهای شبیه گروه میشن، یه جدول کوچیک مقدارهای نماینده رو نگه میداره و هر وزن فقط یه اشارهی کوتاه به اون جدول داره. مثلاً یه اشارهی ۲ بیتی میتونه بین چهار خونهی جدول انتخاب کنه. نسخهی قبلی مدل ترکیبی از ۲ و ۴ بیت بود با میانگین ۳.۷ بیت برای هر وزن، که کل مدل رو به حدود ۱.۳۹ گیگ رسوند.
نسخهی جدیدتر فشردهتره: وزنهای اصلی decoder فقط ۲ بیت و جدول embedding هم ۴ بیت. برای اینکه کیفیت افت نکنه، اپل از quantization-aware training استفاده میکنه، یعنی محدودیتهای فشردهسازی رو موقع آموزش شبیهسازی میکنه تا مدل یاد بگیره باهاشون کار کنه. منطقش اینه که بخشهای حساستر بیت بیشتری لازم دارن و بقیه رو میشه بیشتر فشرده کرد.
مشکل بعدی KV cache هست، یعنی جایی که مدل نتیجهی محاسبات توکنهای قبلی رو نگه میداره تا دوباره حسابشون نکنه. هرچی متن طولانیتر باشه، این کش بزرگتر میشه. اپل با cross-layer KV sharing مدل رو به دو بلوک با نسبت عمق ۵ به ۳ تقسیم میکنه و لایههای بلوک دوم از keys و values آخرین لایهی بلوک اول استفاده میکنن. نتیجهش ۳۷.۵ درصد کاهش مصرف حافظهی کشه.
برای قابلیتهای مختلف مثل خلاصهسازی یا بازنویسی، اپل به جای چند مدل جدا از LoRA استفاده میکنه، یعنی adapterهای کوچیکی که روی مدل پایه سوار میشن و فقط وزنهای خودشون آموزش میبینن. adapterهای rank-16 اپل فقط چند ده مگابایت حجم دارن و میشه بر اساس نیاز لودشون کرد یا عوضشون کرد. اجرا هم بین CPU، GPU و Apple Neural Engine پخش میشه، با دقت روی چیدمان داده و کم کردن کپیهای حافظه.
کارهای سنگینتر به Private Cloud Compute فرستاده میشن. درخواست روی خود دستگاه برای نودهای تأییدشده رمز میشه و طبق گفتهی مقاله، حتی کارمندای اپل هم نمیتونن محتواش رو ببینن. تو سال ۲۰۲۶ اپل AFM 3 Core و AFM 3 Core Advanced رو معرفی کرد. دومی یه مدل sparse با ۲۰ میلیارد پارامتره که هر بار فقط ۱ تا ۴ میلیاردش فعال میشه. کل مدل روی flash میمونه و فقط وزنهای expert لازم به RAM میان. PCC حالا روی GPUهای NVIDIA تو Google Cloud هم اجرا میشه.
نکات کلیدی:
- مدل ۳ میلیارد پارامتری با ۱۶ بیت حدود ۶ گیگ جا میگیره؛ با میانگین ۳.۷ بیت به حدود ۱.۳۹ گیگ رسید
- نسخهی جدید: ۲ بیت برای وزنهای decoder و ۴ بیت برای embedding، با quantization-aware training
- cross-layer KV sharing با نسبت ۵:۳ مصرف حافظهی KV cache رو ۳۷.۵ درصد کم کرده
- adapterهای LoRA با rank-16 فقط چند ده مگابایت حجم دارن و همه روی یه مدل پایه کار میکنن
- AFM 3 Core Advanced یه مدل sparse با ۲۰ میلیارد پارامتره که ۱ تا ۴ میلیاردش در هر لحظه فعاله




