قبل أن تنزّل نموذجًا أو تستأجر وحدة GPU، تحتاج إلى معرفة هل يتسع. فذاكرة الاستدلال لها ثلاثة أجزاء: أوزان النموذج، وذاكرة KV المؤقتة التي تنمو مع كل token من السياق، والحمل الإضافي لبيئة التشغيل. تقدّر هذه الحاسبة كل جزء، لتختار دقة وطول سياق ووحدة GPU تعمل معًا.
كيف تعمل
الأوزان: المعاملات × البايتات لكل معامل. نموذج 8B بدقة FP16 (2 بايت لكل معامل) يشغل 16 GB؛ وبدقة 4 بت يشغل نحو 4 GB. وهذا عادةً أكبر الأجزاء، والتكميم هو أقوى وسيلة لتقليصه.
ذاكرة KV المؤقتة: لكل token في السياق، تخزّن كل طبقة متجه مفتاح ومتجه قيمة لكل رأس مفتاح/قيمة. فلكل token يكون الحجم 2 × الطبقات × رؤوس KV × بُعد الرأس × البايتات. اضرب في طول السياق وفي عدد التسلسلات التي تُخدَّم في الوقت نفسه. وقد تجعلها السياقات الطويلة والدفعات الكبيرة تنافس الأوزان.
تستخدم النماذج ذات انتباه الاستعلامات المجمّعة رؤوس مفتاح/قيمة أقل من رؤوس الانتباه، مما يقلل ذاكرة KV المؤقتة كثيرًا. اقرأ num_hidden_layers وnum_key_value_heads وبُعد الرأس من ملف config.json الخاص بالنموذج للحصول على رقم دقيق.
يغطي الحمل الإضافي التنشيطات وسياق CUDA ومخازن الإطار البرمجي المؤقتة. ويُعد هامش 10% إلى 20% هامش تخطيط معقولًا. وقد تحجز محركات التشغيل التي تخصص الذاكرة مسبقًا أكثر من ذلك، فاترك متسعًا.
مثال محلول
نموذج 8B بـ 32 طبقة و8 رؤوس KV وبُعد رأس 128، بدقة FP16 وسياق من 8,192 token: تشغل الأوزان 16 GB وذاكرة KV المؤقتة 1.07 GB (131 KB لكل token). ومع حمل إضافي بنسبة 10% يصبح المجموع نحو 18.8 GB، وهو يتسع في وحدة معالجة رسومات واحدة بسعة 24 GB. وبدقة 4 بت تنخفض الأوزان إلى 4 GB.
أمثلة إضافية
نموذج من 8 مليارات معامل بدقة 4 بت يحتاج إلى نحو 5.6 GB مع سياق 8K، فيتسع في وحدة GPU بسعة 8 GB؛ وبدقة FP16 يحتاج إلى نحو 18.8 GB.
نموذج من 70 مليار معامل بدقة 4 بت يحتاج إلى نحو 39.7 GB، وهو يتسع في وحدة معالجة رسومات واحدة بسعة 48 GB.
أخطاء شائعة
- احتساب الأوزان وحدها ونسيان ذاكرة KV المؤقتة والحمل الإضافي.
- التقليل من تقدير مقدار نمو ذاكرة KV المؤقتة مع السياقات الطويلة والدفعات الأكبر.
- ملء وحدة GPU بنسبة 100% دون أي هامش.
- افتراض أن التكميم لا يؤثر في الجودة أبدًا؛ فاختبره على مهمتك.
أسئلة يطرحها الناس
كم VRAM أحتاج لتشغيل نموذج 7B أو 8B؟
نحو 14 إلى 16 GB للأوزان بدقة FP16، إضافة إلى ذاكرة KV المؤقتة والحمل الإضافي، فتكون وحدة GPU بسعة 24 GB مريحة. ومع التكميم إلى 4 بت تتسع الأوزان في نحو 4 إلى 5 GB، فتستطيع وحدات GPU بسعة 8 GB تشغيلها بسياقات أقصر.
كم VRAM يحتاج نموذج 70B؟
نحو 140 GB للأوزان وحدها بدقة FP16، أي عدة وحدات GPU بسعة 80 GB. وبدقة 4 بت تبلغ الأوزان نحو 35 GB، ويمكن أن تتسع في وحدة معالجة رسومات واحدة بسعة 48 GB مع سياق متواضع، أو أن تُوزَّع على بطاقتين بسعة 24 GB.
لماذا يستهلك السياق الأطول ذاكرة أكبر بكثير؟
تخزّن ذاكرة KV المؤقتة المفاتيح والقيم لكل token في السياق، في كل طبقة. ومضاعفة السياق تضاعف ذاكرة KV المؤقتة، وخدمة عدة مستخدمين في الوقت نفسه تضاعفها مرة أخرى.
هل يضر التكميم بالجودة؟
تكون دقة 8 بت قريبة عادةً من الجودة الكاملة. أما 4 بت فتفقد قليلًا أكثر، بحسب الطريقة والنموذج، لكنها الطريقة المعتادة لتشغيل النماذج الكبيرة على وحدات GPU الاستهلاكية. اختبرها على مهامك أنت.
هل الأمر نفسه في التدريب؟
لا. فالتدريب يخزّن أيضًا التدرجات وحالة المحسِّن، مما يحتاج عادةً إلى أضعاف ذاكرة الأوزان وحدها. هذه الحاسبة مخصصة للاستدلال.