تسريع الاستدلال على نماذج اللغة الكبيرة ونقل ذاكرة التخزين المؤقت للقيم المفتاحية باستخدام مشاركة ذاكرة CPU-GPU
تواجه نماذج اللغة الكبيرة (LLMs) مثل Llama 3 70B وLlama 4 Scout 109B تحديات كبيرة في الكفاءة أثناء الاستدلال بسبب حجمها الهائل، حيث تتطلب هذه النماذج حوالي 140 غيغابايت و218 غيغابايت من الذاكرة بنظام النصف دقيق (FP16)، ما يتجاوز سعة الذاكرة المتوفرة في معظم وحدات المعالجة الرسومية (GPU). إلى جانب ذلك، يتطلب الاستدلال ذاكرة إضافية لتخزين هيكل "الذاكرة المفتاحية-القيمية" (KV cache)، الذي يرتفع حجمه بشكل خطي مع طول السياق وعدد المستخدمين، حيث يُستهلك نحو 40 غيغابايت فقط لسياق بطول 128 ألف كلمة، مما يزيد من احتمالية حدوث أخطاء نفاد الذاكرة (OOM). لحل هذه المشكلة، تم تطوير أجهزة NVIDIA Grace Hopper وGrace Blackwell، التي تستخدم اتصال NVLink-C2C ذا عرض نطاق عالي (900 جيجابايت/ثانية) ومتزامن من حيث الذاكرة، مما يخلق فضاء عنوان موحدًا بين وحدة المعالجة المركزية (CPU) والـ GPU. هذا التصميم يسمح للـ GPU بالوصول مباشرة إلى الذاكرة المتصلة بالـ CPU (480 غيغابايت من ذاكرة LPDDR) دون الحاجة إلى نسخ يدوية أو نقل بيانات صريح، مما يوسع سعة الذاكرة الفعلية المتاحة. في مثال عملي باستخدام معالج GH200 Grace Hopper Superchip، تم تجربة تحميل نموذج Llama 3 70B، الذي يتطلب 140 غيغابايت، بينما تتوفر فقط 96 غيغابايت من ذاكرة GPU. عند محاولة التحميل، ظهرت رسالة خطأ "OutOfMemoryError"، تؤكد أن الذاكرة المخصصة للـ GPU ممتلئة بالكامل، كما يُظهر أمر nvidia-smi استهلاكًا يقارب 97 غيغابايت من الذاكرة. لتجاوز هذا الحد، تم استخدام ميزة الذاكرة المدارة (managed memory) عبر مكتبة RAPIDS Memory Manager (RMM). بتفعيل الذاكرة الموحدة وتعديل مدير التخصيص في PyTorch ليستخدم RMM، أصبح من الممكن توزيع التخصيصات بين الـ CPU والـ GPU ضمن فضاء عنوان واحد. وباستخدام الأوامر التالية: python import rmm import torch from rmm.allocators.torch import rmm_torch_allocator rmm.reinitialize(managed_memory=True) torch.cuda.memory.change_current_allocator(rmm_torch_allocator) تمكّن النموذج من التحميل بنجاح، حتى مع تجاوز سعة الذاكرة المادية للـ GPU. بعد ذلك، يمكن إرسال مطالبات مثل "أي جبل هو الأعلى في العالم؟" والحصول على استجابة فورية، مما يثبت فعالية هذا النهج. النتيجة تُظهر أن البنية المعمارية الموحدة للذاكرة في أجهزة Grace Hopper وGrace Blackwell تمكّن من تشغيل نماذج لغة ضخمة دون الحاجة إلى إدارة يدوية للبيانات بين الـ CPU والـ GPU، مما يُحسّن الكفاءة ويُبسّط تطوير التطبيقات في بيئات الإنتاج. هذه التقنية تمثل خطوة مهمة نحو تجاوز حدود الذاكرة التقليدية، وتمكين الاستفادة الكاملة من النماذج الحديثة في مجالات مثل الاستدلال، التدريب الدقيق، والحوسبة العلمية.