The AI / news

متغيرات الانتباه تحسن كفاءة الذاكرة

متغيرات الانتباه تحسن كفاءة الذاكرة
4 دقيقة للقراءة

يمكن لنموذجين من نوع المحول (transformer) بنفس الحجم أن يكون لهما احتياجات ذاكرة مختلفة جدًا أثناء الاستدلال، أي عند توليد الاستجابات. وفقًا للمقال المصدر، يعود السبب الرئيسي إلى بنية طبقات الانتباه الخاصة بهما: عدد رؤوس المفاتيح-القيم، والتمثيل المخزن لكل رمز (token)، وعدد الرموز السابقة المحتفظ بها في كل طبقة تحدد حجم ذاكرة التخزين المؤقت KV، أي ذاكرة الحالة التي تستخدمها الاستعلام.

عند نشر نقطة تحقق (checkpoint) موجودة، لا نختار متغير الانتباه الذي تستخدمه، سواء كان الانتباه متعدد الرؤوس (MHA)، أو الانتباه المجمع للاستعلامات (GQA)، أو الانتباه متعدد الاستعلامات (MQA)، أو الانتباه بالنافذة المنزلقة، أو الانتباه متعدد الرؤوس الكامن (MLA). تم اتخاذ هذه الخيارات أثناء التدريب. تتمثل المهمة في فحص البنية، وحساب احتياجات الذاكرة، واستخدام تخطيط ذاكرة تخزين مؤقت ونواة انتباه متوافقة. استبدال متغير بآخر لا يضمن سلوكًا متطابقًا، لأن النموذج تم تدريبه مع بنيته الأصلية.

ذاكرة التخزين المؤقت KV، ذاكرة مستمرة

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

لمجموعة من الاستعلامات بنفس الطول، تُعبر عن ذاكرة التخزين المؤقت بالصيغة 2 × B × S × L × T × HKV × D، حيث B هو حجم المجموعة، وS هو عدد البايتات لكل عنصر، وL هو عدد الطبقات، وT هو طول التخزين المؤقت، وHKV هو عدد رؤوس المفاتيح-القيم، وD هو بُعد كل رأس. العامل 2 يتوافق مع المفاتيح والقيم. في الانتباه متعدد الرؤوس الكلاسيكي، يكون عدد رؤوس المفاتيح-القيم مساويًا لعدد الرؤوس، وتزداد ذاكرة التخزين المؤقت خطيًا مع حجم المجموعة وطول التسلسل.

متغيرات تقلل ذاكرة التخزين المؤقت

يمنح الانتباه متعدد الاستعلامات (MQA) جميع رؤوس الاستعلام رأسًا واحدًا مشتركًا للمفاتيح-القيم. يشكل الانتباه المجمع للاستعلامات (GQA) حلًا وسطًا: حيث تتشارك عدة رؤوس استعلام كل رأس مفاتيح-قيم. في مثال المقال، تشكل 32 رأس استعلام و8 رؤوس مفاتيح-قيم أربعة رؤوس استعلام لكل مجموعة. مقارنة بـ MHA، يقلل GQA تخزين ذاكرة التخزين المؤقت وعدد معاملات إسقاطات المفاتيح والقيم بعامل أربعة، ويقلل MQA بعامل 32، وهي عوامل تتوافق مع تقليل عدد رؤوس المفاتيح-القيم في هذا المثال.

يقتصر الانتباه بالنافذة المنزلقة كل رمز على آخر W رمز. يمكن بعد ذلك تنفيذ ذاكرة التخزين المؤقت كذاكرة دائرية سعتها W، مما يحد من ذاكرة الطبقة. بعض النماذج تتبادل بين الطبقات المحلية والطبقات العالمية. في هذه الحالة، لا يمكن تحديد الحد الأقصى لجميع ذاكرة التخزين المؤقت: كل رمز يتجاوز النافذة المحلية يضيف ذاكرة تخزين مؤقت فقط للطبقات ذات الانتباه الكامل. أما الانتباه متعدد الرؤوس الكامن (MLA)، فيضغط تمثيل المفاتيح-القيم في متجه كامن أصغر، مما يقلل من قراءات ذاكرة التخزين المؤقت على حساب حسابات إسقاط إضافية، وهو مقايضة يراها المقال مفضلة عندما يكون فك التشفير محدودًا بعرض النطاق الترددي للذاكرة.

ما يمكن أن يغيره وقت التشغيل

تحدد نقطة التحقق القواعد المنطقية للانتباه، بينما يتحكم محرك الاستدلال في التنفيذ وإدارة الذاكرة. يحسب FlashAttention الانتباه الدقيق عبر البلاطات لتقليل الذاكرة المؤقتة، دون تغيير عدد رؤوس المفاتيح-القيم. يخزن الانتباه المقسم إلى صفحات ذاكرة التخزين المؤقت في كتل بحجم ثابت، والتي لا تكون بالضرورة متجاورة في الذاكرة الفعلية. تعدل دقة ذاكرة التخزين المؤقت عدد البايتات لكل عنصر، ويغير التفريغ (offload) موقع ذاكرة التخزين المؤقت، ويتجنب مشاركة البادئات الكتل المكررة. تغير هذه التقنيات استهلاك الذاكرة الفعلية أو مكانها، ولكنها لا تحل محل متغير الانتباه الذي تعلمه النموذج.

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

S’abonner
Notification pour
guest

0 Commentaires
Le plus ancien
Le plus récent Le plus populaire
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x