يتيح تفريغ المعالجة إلى وحدة المعالجة المركزية تشغيل نموذج كبير الحجم عبر تخزين جزء من أوزانه في ذاكرة الوصول العشوائي للنظام، بدلًا من اشتراط بقاء النموذج بأكمله في ذاكرة المسرّع.
على خادم ذكاء اصطناعي منزلي، يمكن أن يحوّل ذلك نموذجًا يفشل تحميله على وحدة معالجة رسومات واحدة إلى خدمة محلية قابلة للاستخدام. والمقابل مباشر: ينخفض الضغط على ذاكرة الفيديو، لكن ذاكرة المعالجة المركزية وحركة البيانات عبر PCIe أو الوصلات البينية، وأحيانًا تنفيذ المعالجة المركزية، تصبح جزءًا من مسار الاستدلال. تفريغ المعالجة هو أولًا أسلوب لزيادة السعة، ولا يصبح أسلوبًا لتحسين الأداء إلا عندما تكون هرمية الذاكرة سريعة بما يكفي.
يفشل النموذج الكبير عندما لا يتمكن الجهاز السريع من استيعاب حالته المطلوبة
يحتاج النموذج المحلي إلى مساحة للأوزان، إضافةً إلى ذاكرة KV المؤقتة، والتفعيلات، والمخازن المؤقتة، والحجوزات الخاصة بوقت التشغيل. وإذا لم يتمكن المسرّع من استيعاب الحالة المقيمة المطلوبة، فقد يفشل التحميل قبل بدء الاستدلال المفيد.
تتعامل Hugging Face Accelerate مع استدلال النماذج الكبيرة بوصفه مشكلة لتوزيع أوزان النموذج عبر مستويات الذاكرة المتاحة. ويضيف التفريغ إلى وحدة المعالجة المركزية ذاكرة النظام العشوائية بوصفها مستوى تخزين أبطأ لحالة النموذج.
يصبح النموذج قابلًا للتشغيل لأن جزءًا أقل منه يجب أن يبقى في ذاكرة الفيديو في اللحظة نفسها، وليس لأن المسرّع اكتسب ذاكرة فعلية إضافية.
تبقى الأوزان المُفرَّغة في ذاكرة النظام حتى الحاجة إلى طبقتها
يمكن لبيئة التشغيل إبقاء موترات معاملات محددة على وحدة المعالجة المركزية، بينما تكون الطبقة الحالية أو مجموعة الطبقات النشطة على وحدة معالجة الرسومات. ومع تقدم التنفيذ، تُنقل الأوزان المطلوبة إلى المسرّع، ويمكن إعادة الأوزان القديمة أو حذفها من ذاكرة الجهاز.
يمكن لـ DeepSpeed ZeRO-Inference إبقاء أوزان النموذج في ذاكرة وحدة المعالجة المركزية أو NVMe وبثها طبقةً تلو الأخرى إلى وحدة معالجة الرسومات. ويخفض ذلك ذروة الإقامة في ذاكرة المسرّع، مع جعل نقل الأوزان جزءًا من التنفيذ.
يمكن أيضًا أن يكون توزيع الطبقات ثابتًا: فتبقى بعض الطبقات على وحدة المعالجة المركزية وتُنفَّذ هناك، بينما تبقى طبقات أخرى على وحدة معالجة الرسومات. وتستبدل كلتا الاستراتيجيتين ضغط ذاكرة الجهاز بمسارات ذاكرة ونقل أبطأ.
يصبح مسار PCIe أو الذاكرة الموحدة جزءًا من معالجة كل رمز
إذا كان يجب أن تعبر الأوزان PCIe أثناء التنفيذ الأمامي، فإن زمن النقل وعرض النطاق يقعان مباشرةً ضمن المسار الحرج للاستدلال. أما النموذج الذي يتسع بالكامل في ذاكرة الفيديو، فيمكنه إعادة استخدام الأوزان المقيمة بسرعة الجهاز؛ بينما قد يضطر النموذج المُفرَّغ إلى جلب موترات كبيرة مرارًا.
توثّق PyTorch الذاكرة المضيفة المثبّتة وسلوك النقل من وحدة المعالجة المركزية إلى وحدة معالجة الرسومات، موضحةً سبب كون نقل البيانات بين المضيف والجهاز مجالًا منفصلًا للأداء عن العمليات الحسابية على وحدة معالجة الرسومات.
ولهذا يمكن لتفريغ المعالجة إلى وحدة المعالجة المركزية أن يحوّل تعطل نفاد الذاكرة إلى نموذج يعمل، لكنه أبطأ. تُحل السعة أولًا، وقد ينخفض معدل الإنتاجية بشدة.
تزيد ذاكرة النظام السعة، لكنها لا تضمن السرعة
يلزم توفر ذاكرة وصول عشوائي كافية لاستيعاب الجزء المُفرَّغ، إلى جانب نظام التشغيل، وذاكرة التخزين المؤقت للصفحات، والحاويات، وقواعد البيانات، وخدمات الخادم المنزلي الأخرى. وبمجرد امتداد النموذج إلى مساحة التبديل، قد تصبح الإعدادات البطيئة غير عملية.
توثّق Linux استرداد الذاكرة والتبديل بوصفهما جزءًا من هرمية ذاكرة النظام. ويتنافس النموذج المُفرَّغ مع كل عملية أخرى على ميزانية ذاكرة الوصول العشوائي نفسها.
ينبغي للخادم المنزلي الذي يشغّل أيضًا وحدة تخزين شبكية وفهرسًا للصور وقاعدة بيانات للوسائط أن يترك هامشًا فعليًا، بدلًا من تحديد الذاكرة اعتمادًا على حجم ملف النموذج وحده.
يحلّ التكميم والتفريغ أجزاءً مختلفة من مشكلة ملاءمة النموذج
يقلل التكميم عدد البايتات التي تستخدمها الأوزان، ما قد يقلص الإقامة في ذاكرة وحدة معالجة الرسومات ووحدة المعالجة المركزية، ويخفض حجم البيانات المنقولة. أما التفريغ فيغيّر موضع وجود هذه البايتات أثناء التنفيذ.
توثّق NVIDIA NeMo تقنيات التكميم اللاحق للتدريب بتنسيقات FP8 وINT8 وINT4 لتقليل ذاكرة النموذج. وقد يتسع النموذج المكمّم بالكامل في وحدة معالجة الرسومات ويتجنب التفريغ؛ بينما قد يحتاج نموذج أكبر إلى استخدام التقنيتين معًا.
يتمثل التسلسل الصحيح في تحديد الدقة المقبولة وجودة النموذج أولًا، ثم اختيار موضعه. فقد يؤدي تفريغ تمثيل كبير بلا داعٍ إلى هدر عرض النطاق.
استخدم التفريغ إلى وحدة المعالجة المركزية عندما يكون تشغيل النموذج أهم من ذروة الإنتاجية
تتمثل أفضل حالة استخدام في نموذج محلي يُشغَّل أحيانًا ويتجاوز سعة ذاكرة الفيديو، لكنه يظل يقدم زمن استجابة مقبولًا عندما يعيش جزء من حالته في ذاكرة الوصول العشوائي. ويصبح أقل جاذبية لخدمة تفاعلية متعددة المستخدمين، حيث يجب أن يعبر كل رمز رابطًا بطيئًا مرارًا.
يُعد دليل ZimaSpace حول تحديد ذاكرة ومسرّع وحدة التخزين الشبكية للذكاء الاصطناعي طبقة التخطيط: ينبغي التعامل مع التفريغ بوصفه خيارًا احتياطيًا للسعة ضمن عبء العمل الكامل للخادم المنزلي.
قِس استخدام ذاكرة الفيديو، واستخدام ذاكرة الوصول العشوائي، وحجم البيانات المنقولة بين المضيف والجهاز، والوقت حتى ظهور الرمز الأول، وعدد رموز الإخراج في الثانية، وتأثير ذلك في خدمات الاستضافة الذاتية الأخرى. فالإعداد الذي يحمّل النموذج تقنيًا لكنه يفرض استخدام مساحة التبديل أو يوقف وحدة التخزين الشبكية ليس مناسبًا عمليًا.
يتناول شرح ZimaSpace حول إقامة النموذج وإخلائه المفاضلة القريبة: إذ إن تحرير ذاكرة المسرّع يزيد السعة المتاحة للأعمال الأخرى، لكنه قد يجعل الطلب التالي يتحمل تكلفة التحميل أو النقل مرة أخرى.
الأسئلة الشائعة
هل يدمج التفريغ إلى وحدة المعالجة المركزية ذاكرة الوصول العشوائي وذاكرة الفيديو في مجمّع ذاكرة سريع واحد؟
لا. فهو يتيح لبيئة التشغيل توزيع حالة النموذج عبر المستويين، لكن ذاكرة وحدة المعالجة المركزية وذاكرة الفيديو تختلفان في عرض النطاق وزمن الاستجابة. وقد تصبح عمليات النقل بينهما عنق الزجاجة الرئيسي في الاستدلال.
هل ستجعل إضافة المزيد من ذاكرة الوصول العشوائي النموذج المُفرَّغ أسرع؟
فقط عندما يعاني النظام الحالي نقصًا في ذاكرة الوصول العشوائي، أو يعتمد على الترحيل، أو لا يستطيع إبقاء الحالة المُفرَّغة المقصودة مقيمة. أما الذاكرة الإضافية غير المستخدمة فلا تلغي تكاليف PCIe أو تنفيذ وحدة المعالجة المركزية.
هل التفريغ إلى SSD هو نفسه التفريغ إلى وحدة المعالجة المركزية؟
لا. يضيف التفريغ إلى القرص مستوى تخزين أبطأ حتى عندما تكون ذاكرة الوصول العشوائي غير كافية. وقد يوسع السعة أكثر، لكن صفحات النموذج يجب أن تعبر التخزين وذاكرة النظام عادةً قبل تنفيذها على المسرّع.
مركز التكنولوجيا والذكاء الاصطناعي
المزيد للقراءة

هل يمكن للكاميرات المنزلية مزامنة الأحداث دون خدمات الوقت السحابية؟
شرح يعتمد أولًا على الآلية لوقت الكاميرا دون سحابة، ومقايضاته المتعلقة بالموارد المشتركة، وثلاثة أسئلة شائعة حول توزيع الاستعلامات، وبروتوكول عملي للتحقق.

هل يمكن لخدمة ذكاء اصطناعي محلية اكتشاف طبقات النموذج التالفة قبل الاستدلال؟
شرح يركز أولًا على الآلية لاكتشاف تلف طبقة النموذج، ومقايضاته المتعلقة بالموارد المشتركة، وثلاثة أسئلة شائعة حول توزيع الاستعلامات، وبروتوكول عملي للتحقق.

هل يمكن استعادة نظام RAG دون إعادة توليد كل التضمينات؟
شرح قائم على الآلية لاستعادة RAG دون إعادة التضمين، ومقايضاته المتعلقة بالموارد المشتركة، وثلاثة أسئلة شائعة حول توزيع الاستعلامات، وبروتوكول عملي للتحقق.

