قمت بتشغيل نموذج بـ 35 مليار معامل على آيفون الخاص بي (ذكاء اصطناعي محلي)

BBetter Stack
컴퓨터/소프트웨어가전제품/카메라스마트폰/모바일

스크립트

00:00:00هذا النموذج بحجم 35 مليار معلمة يعمل مباشرة على هاتف الآيفون الخاص بي، وأستطيع توليد 11 رمزًا في
00:00:06الثانية بفضل بعض الهندسة الذكية. لم يُصمم هذا النموذج لهذا الغرض أصلًا، وفي هذا الفيديو
00:00:11سأريك بالضبط كيفية القيام بالشيء نفسه. ما أشغّله هنا هو نموذج “مزيج الخبراء” (Mixture of Experts)، وهو
00:00:21بحجم 35 مليار معلمة، وهو كملف عادي بترميز 4 بت يبلغ حجمه نحو 20 جيجابايت وكان يفترض أن ينسكب في الذاكرة العشوائية (RAM)،
00:00:28ولكن عبر مجموعة تقنيات مثل التدفق الفوري للخبراء من القرص الصلب (SSD) عند الطلب، فإن الأوزان التي
00:00:33تستقر فعليًا في الذاكرة تنخفض إلى 1.4 جيجابايت فقط. سأشرح كيف يعمل كل هذا، ثم
00:00:39سنستعرض إعداد الآيفون نفسه. معظم النماذج تستقر بالكامل في الذاكرة العشوائية، ولكن الميزة الرائعة في نموذج
00:00:45مزيج الخبراء هي أن جزءًا صغيرًا فقط يكون نشطًا في أي وقت. هذا يعني أن الأجزاء غير النشطة
00:00:51من النموذج يمكن أن تبقى على القرص الصلب لتنتظر دورها للعمل. الحيلة لتشغيل نماذج أكبر
00:00:56بذاكرة محدودة هي بث هؤلاء الخبراء إلى الذاكرة فقط عند الحاجة إليهم. نحن نشغّل Qwen
00:01:023.5 بالتنويعة ذات الـ 35 مليار معلمة، ورمز A3B في النهاية يعني أن نحو 3 مليارات معلمة فقط
00:01:10تكون نشطة لأي رمز واحد. يحتوي هذا النموذج على 40 طبقة، كل منها يضم 256 خبيرًا صغيرًا بالإضافة إلى خبير مشترك واحد. ويقوم الموجه (Router)
00:01:19باختيار ثمانية من هؤلاء الخبراء لكل رمز، لذا فإن الرمز الواحد يشغّل نحو 3 مليارات فقط من أصل 35 مليارات
00:01:26معلمة في الإجمالي. الآن، النموذج بأكمله مقسم؛ فعادةً ما يستقر كليًا في الذاكرة، لكن هذا
00:01:32لن يتسع فعليًا على آيفون. بدلاً من ذلك، الأجزاء التي يحتاجها كل رمز—مثل المضمنات (Embeddings) والتوجه (Attention) والموجهات
00:01:39والخبير المشترك—تُحمَّل مرة واحدة فقط وتبقى مقيمة في الذاكرة العشوائية طوال الوقت، وحجمها نحو
00:01:441.4 جيجابايت. أما الخبراء، وهم 40 ملفًا بحجم 300 ميجابايت تقريبًا لكل منها وبإجمالي 12 جيجابايت، فتستقر على القرص الصلب. لذا فلكل رمز،
00:01:53يعمل التوجه على معالج الرسومات (GPU)، ثم يختار الموجه 8 خبراء، ويقرأ المحرك هؤلاء الخبراء الثمانية مباشرة من القرص الصلب
00:02:00إلى ذاكرة معالج الرسومات ويشغلهم مع الخبير المشترك نفسه. يحدث هذا في كل طبقة من
00:02:06تلك الطبقات الـ 40، أي 320 عملية قراءة صغيرة لكل رمز واحد. وإذا لم تكن مطلعًا على مفهوم “التوجه”،
00:02:14فهو الجزء من النموذج الذي يراجع كل شيء في المحادثة حتى الآن ويحدد
00:02:19أي الكلمات السابقة مهمة للتنبؤ بالكلمة التالية. يعمل التوجه على كل رمز بغض النظر عن أي شيء،
00:02:25لذا يجب أن يظل في الذاكرة. والخبراء هم الجزء الذي يقوم بالتفكير الفعلي في الرمز بمجرد
00:02:31أن يحدد التوجه السياق. ولكن نظرًا لاستخدام ثمانية خبراء فقط، يمكننا ترك
00:02:36البقية على القرص. لا توجد ذاكرة مؤقتة (Cache) للخبراء في التطبيق إطلاقًا؛ فكل قراءة تمر عبر نظام التشغيل،
00:02:42ويقوم نظام iOS بالاحتفاظ بالخبراء المستخدمين حديثًا في ذاكرة الصفحات المؤقتة الخاصة به ما دام يملك ذاكرة عشوائية فائضة. المطورون
00:02:49أنشأوا في الواقع ذاكرة مؤقتة خاصة بهم بحجم 9.8 جيجابايت ثم حذفوها، وجعل ذلك الأمور أسرع بنسبة 38% لأن
00:02:55أي ذاكرة عشوائية يأخذها التطبيق في أجهزة ماك أو آيفون هي ذاكرة تُسحب من معالج الرسومات ومن ذاكرة الصفحات المؤقتة معًا،
00:03:03وتلك الذاكرة المؤقتة تؤدي معظم العمل هنا. عند سرعة 11 رمزًا في الثانية، لو كان كل خبير يُقرأ من ذاكرة الفلاش،
00:03:09لسيحتاج الهاتف لأكثر من 5 جيجابايت في الثانية من سرعة القراءة، بينما ذاكرة الفلاش في الآيفون تتكفل بـ 1.6 فقط في
00:03:15الثانية، لذا فإن غالبية الخبراء تأتي من الذاكرة العشوائية التي يديرها نظام التشغيل لنا. الحيلة التالية هي التكميم
00:03:22المتدرج (Tiered Quantization). يضغط التكميم أوزان النموذج لتشغل مساحة أقل، ولكنه يقلل أيضًا
00:03:29من دقة تلك الأوزان وبالتالي يؤثر على الذكاء. ولكن في هذا النموذج، يستحوذ نحو 25% من
00:03:35الخبراء على نحو 80% من العمل، لذا يظل الخبراء الأكثر استخدامًا عند 4 بت وتُكمَّم الأجزاء
00:03:41الأقل استخدامًا إلى 2 بت، مما يجعلها أصغر بنسبة 44%. وينكمش الملف بأكمله بنسبة 34% من نحو 19 جيجابايت إلى
00:03:5013 جيجابايت، مما يعني اتساع المزيد منه في ذاكرة الصفحات المؤقتة. على هاتف آيفون 17 الخاص بي، يعمل هذا بقدرة 11 رمزًا في الثانية مع
00:03:57كون النموذج في وضع التفكير. يجب أن أقول رغم ذلك إن الهاتف يسخن حرفيًا بمجرد إلقاء التحية، إذ أمكنني الشعور
00:04:03بارتفاع حرارة الهاتف في يدي، لذا حاول ألا تفجر الهاتف عندما تختبر هذا. أنا في الواقع
00:04:08خائف قليلاً من كتابة أي شيء معقد للغاية لأن هذا قد يذيب يدي فعليًا.
00:04:14المحرك المخصص الذي نشغله هو مشروع يسمى Flash MoE من تطوير دان وودز، وكُتب أصلاً لجهاز
00:04:19ماك بوك، وتوجد نسخة مصغرة مخصصة لـ iOS تسمى Flash iOS تغلف المحرك نفسه داخل تطبيق آيفون،
00:04:26وهذا ما يتيح لي تشغيل الأمر بأكمله على هاتفي. لقد واجهت أيضًا في البداية خطأً برلمجيًا حيث علقت عملية تفكير
00:04:31النموذج في حلقة تكرارية؛ إذ كانت تبدأ بشكل جيد، ثم بعد حوالي 10 كلمات تكرر
00:04:35الرمزين نفسيهما إلى الأبد. ولإصلاح هذا، حدثت دالة تسمى async pre-read weight بحيث تفحص
00:04:41قراءة كل خبير مقابل حجم الخبير نفسه. الخبراء الأقل استخدامًا تأتي بترميز 2 بت وبنصف حجم الخبراء الأنشط،
00:04:48لذا قبل الإصلاح، فشل كل خبير غير نشط في فحص الحجم وتُم تخطيه ضمنيًا. كان النموذج يعمل فعليًا
00:04:54ببنصف عدد الخبراء ولهذا كان يدخل في حلقة تكرارية. وإذا كنتم تستمتعون بهذا الفيديو يا رفاق، فستقدمون لنا
00:04:59معروفًا كبيرًا بالاشتراك في القناة لنتمكن من الاستمرار في إنشاء محتوى مجاني كل يوم. الآن،
00:05:05لإعداد هذا على هاتفك، تحتاج إلى استنساخ المستودع (Repo)، وتطبيق إصلاح القراءة المسبقة الذي ذكرته للتو في
00:05:11مسار metal infer/infer.m، ثم توجيه مشروع Xcode إلى فريقك ومعرّف الحزمة (Bundle ID)، وستحتاج إلى حساب
00:05:18مطور آبل مدفوع لهذا الغرض. قم ببناء نسخة إصدار (Release Build) وتثبيتها على جهاز الآيفون الخاص بك، وتنزيل النموذج المتدرج
00:05:24المجهز مسبقًا والذي يبلغ حجمه حوالي 13 جيجابايت، ثم نفخه إلى التطبيق عبر USB وهو ما ينبغي أن يستغرق نحو سبع دقائق.
00:05:30على الهاتف، افتح تطبيق Flash MoE، وانقر على النموذج، ثم ابدأ الدردشة. وإذا أردت تجربة تشغيل
00:05:36النماذج المحلية على جهاز ماك الخاص بك للحصول على رموز أسرع في الثانية، فشاهد هذا الفيديو التالي. كان معكم وارن من
00:05:43Better Stack، شكرًا جزيلًا لكم على المشاهدة، وبالطبع أراكم في الفيديو القادم.

핵심 요약

يمكن تشغيل نماذج الذكاء الاصطناعي الضخمة ذات 35 مليار معلمة على أجهزة الآيفون بسرعة 11 رمزًا في الثانية عبر الدمج بين التدفق الفوري للخبراء من القرص الصلب، والتكميم المتدرج، وإدارة ذاكرة نظام iOS.

하이라이트

  • يتيح محرك Flash MoE تشغيل نموذج Qwen 3.5 بـ 35 مليار معلمة على الآيفون بسرعة تصل إلى 11 رمزًا في الثانية.

  • ينخفض استهلاك الذاكرة العشوائية من 20 جيجابايت إلى 1.4 جيجابايت عبر إبقاء التوجه والموجهات فقط في الذاكرة وبث الخبراء من القرص الصلب.

  • يعتمد الرمز الواحد في نموذج Qwen 3.5 A3B على تشغيل 8 خبراء فقط من أصل 256 خبيرًا لكل طبقة، مما ينشط نحو 3 مليارات معلمة فقط.

  • تقليل حجم النموذج بنسبة 34% من 19 جيجابايت إلى 13 جيجابايت بفضل التكميم المتدرج الذي يضغط الخبراء أقل استخدامًا إلى 2 بت ويُبقي الأنشط عند 4 بت.

  • إلغاء ذاكرة التخزين المؤقت الخاصة بالخبراء داخل التطبيق والاعتماد على ذاكرة الصفحات في نظام iOS يرفع السرعة بنسبة 38%.

  • تعديل دالة async pre-read weight لمعالجة الأحجام المختلفة للخبراء يمنع وقوع النموذج في حلقات تكرار لا نهائية.

타임라인

آلية بث أوزان الخبراء وتقليل استهلاك الذاكرة

  • تشغيل نموذج مزيج الخبراء بحجم 35 مليار معلمة يحتاج عادة إلى ذاكرة عشوائية كبيرة تتجاوز سعة الهواتف الذكية.
  • ينخفض حجم الأوزان المستقرة في الذاكرة العشوائية إلى 1.4 جيجابايت فقط باستخدام تقنية التدفق الفوري من القرص الصلب.
  • بقاء الأجزاء غير النشطة من النموذج على القرص الصلب يتيح استدعاءها فقط عند الحاجة إليها.

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

معمارية Qwen 3.5 وتقسيم المكونات بين RAM وSSD

  • ينشط نحو 3 مليارات معلمة فقط لكل رمز من إجمالي 35 مليار معلمة في نموذج Qwen 3.5 A3B.
  • يحتوي النموذج على 40 طبقة تضم كل منها 256 خبيرًا صغيرًا وخبيرًا مشتركًا واحدًا.
  • تستقر المضمنات والتوجه والموجهات بحجم 1.4 جيجابايت في הـ RAM، بينما توجد ملفات الخبراء بحجم 12 جيجابايت على القرص.

يختار الموجه الخاص بالنموذج 8 خبراء فقط لكل رمز، مما يتطلب إجراء 320 عملية قراءة صغيرة من القرص الصلب إلى ذاكرة معالج الرسومات لكل رمز عبر الطبقات الـ 40. تُحتفظ المكونات الأساسية مثل التوجه في الذاكرة العشوائية باستمرار لأنها تقيم السياق الكامل للمحادثة، بينما تُقرأ أوزان الخبراء الثمانية المُختارين لحظيًا لتنفيذ التفكير الفعلي.

إدارة الذاكرة عبر نظام iOS والتكميم المتدرج

  • إلغاء ذاكرة التخزين المؤقت المخصصة للتطبيق والاعتماد على ذاكرة صفحات iOS زاد السرعة بنسبة 38%.
  • تتولى الذاكرة العشوائية التي يديرها نظام التشغيل توفير معظم سرعة القراءة المطلوبة والتي تتجاوز 5 جيجابايت في الثانية.
  • ضغط الخبراء الأقل استخدامًا إلى 2 بت والأكثر استخدامًا إلى 4 بت قلص حجم النموذج الكلي إلى 13 جيجابايت.

استهلاك الذاكرة العشوائية المباشر بواسطة التطبيق يسحب المساحة المتاحة لمعالج الرسومات وذاكرة الصفحات المؤقتة. يُنجم عن الاعتماد المباشر على إدارة نظام iOS للذاكرة الفائضة توفير سرعات قراءة أعلى مما تدعمه ذاكرة الفلاش البالغة 1.6 جيجابايت في الثانية. يعتمد التكميم المتدرج على واقع أن 25% من الخبراء ينجزون 80% من العمل، مما يسمح بضغط الخبراء الباقين بنسبة 44% دون تدهور كبير في الذكاء.

إصلاح الحلقة التكرارية وخطوات التثبيت على الآيفون

  • يعمل محرك Flash MoE المخصص عبر تطبيق Flash iOS الموجه لأجهزة الآيفون.
  • تعديل دالة async pre-read weight يمنع يتخطي الخبراء المكممين بـ 2 بت ودخول النموذج في حلقات تكرار.
  • يتطلب التثبيت حساب مطور آبل مدفوع وبناء التطبيق عبر Xcode بنسخة Release.

يسبب عدم تحقق المحرك من حجم ملفات الخبراء المكممة بدقة 2 بت تخطيها أثناء القراءة، مما يفرغ نصف عدد الخبراء ويؤدي لتكرار الرموز نهائيًا. يُعالج التعديل في المسار metal infer/infer.m هذه المشكلة برمجيًا. يتطلب تشغيل النموذج نقل ملف البيانات البالغ حجمه 13 جيجابايت إلى تطبيق Flash MoE عبر وصلة USB بعد تثبيت البناء المخصص.

커뮤니티 글

아직 글이 없습니다. 이 영상에 대한 첫 번째 글을 작성해 보세요!

이 영상에 대해 글쓰기