كيف يقلّل Flash Attention حركة البيانات في الذاكرة أثناء الاستدلال المحلي؟

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

يقلّل Flash Attention حركة البيانات في الذاكرة من خلال تقسيم الانتباه الدقيق إلى كتل، بحيث يمكن معالجة الدرجات الوسيطة على الشريحة بدلًا من كتابتها إلى ذاكرة HBM في وحدة معالجة الرسوميات وقراءتها منها بشكل متكرر.

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

تنقل آلية الانتباه القياسية موترات وسيطة كبيرة عبر HBM

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

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

لذلك قد تقضي وحدة معالجة الرسوميات المنزلية وقتًا كبيرًا في نقل البيانات بدلًا من تنفيذ عمليات مفيدة على المصفوفات، ولا سيما عندما يزداد طول السياق.

يقسم Flash Attention المشكلة إلى مجموعات عمل داخل الشريحة

يعالج Flash Attention كتلًا من الاستعلامات والمفاتيح والقيم بحجم يلائم الذاكرة السريعة الموجودة على الشريحة. وتنفّذ كل كتلة عدة خطوات من الانتباه قبل مغادرة البيانات الوسيطة للشريحة.

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

يعتمد حجم الكتلة على موارد العتاد وتنفيذ النواة. وتتمثل الآلية المهمة في محلية البيانات: إعادة استخدام القيم المحمّلة أثناء بقائها قريبة من وحدات الحساب.

يتجنب Softmax الفوري تخزين مصفوفة الدرجات بالكامل

يبدو أن Softmax العادي يتطلب جميع الدرجات الخاصة بالصف قبل التطبيع، ما سيجبر التنفيذ على إنشاء مصفوفة كبيرة. أما Flash Attention فيحتفظ بدلًا من ذلك بإحصاءات تطبيع متراكمة عبر الكتل.

يوضح البرنامج التعليمي المدمج للانتباه في Triton انتباهًا مدمجًا مع حالة Softmax معالجة على مستوى الكتل. ويسمح ذلك باستهلاك كتل الدرجات الجزئية والتخلص منها دون إعادة كتابة كل قيمة وسيطة إلى HBM.

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

يحافظ دمج النوى على قدر أكبر من سلسلة الانتباه ضمن مسار تنفيذ واحد

يمكن دمج حساب الدرجات والتحجيم والقناع والتطبيع وتجميع القيم في نواة منسقة، بدلًا من تشغيل نوى منفصلة تتبادل البيانات الوسيطة الكاملة عبر الذاكرة العامة.

يمكن لواجهة الانتباه بضرب النقاط المُحجّم في PyTorch اختيار تنفيذات مدمجة للانتباه عندما يكون الجهاز ونوع البيانات والشكل والميزات المطلوبة مدعومة.

قد تكون النتيجة معالجة أسرع للموجّه وذاكرة مؤقتة قصوى أقل، لكن المكسب الفعلي يعتمد على ما إذا كانت بيئة التشغيل توجّه التنفيذ فعلًا إلى نواة متوافقة مع Flash.

لا يعني تقليل عمليات الإدخال والإخراج إلغاء ذاكرة KV المؤقتة

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

تصف إرشادات ROCm من AMD أن Flash Attention يحسّن محلية الذاكرة بين التخزين الموجود على الشريحة وذاكرة HBM. ويعالج هذا التحسين كيفية قراءة الانتباه للحالة النشطة وإجراء الحسابات عليها، وليس ما إذا كانت حالة KV التاريخية موجودة.

يمنع هذا التمييز خطأً شائعًا في التخطيط: يمكن لـ Flash Attention تقليل الذاكرة المستخدمة مؤقتًا وعمليات الإدخال والإخراج، بينما يظل خادم السياق الطويل معرضًا لنفاد السعة لأن ذاكرة KV المؤقتة المحتفظ بها تستمر في النمو.

يحدد دعم العتاد والأشكال ما إذا كان سيُستخدم المسار السريع

تتسم نوى Flash بالتخصص. فقد يؤدي بُعد الرأس ونوع البيانات وقناع الانتباه ومعمارية وحدة معالجة الرسوميات وإصدار بيئة التشغيل والميزات الأخرى إلى استخدام تنفيذ بديل.

تتناول مقالة ZimaSpace حول ذاكرة الانتباه مقارنةً بمعلمات النموذج جانب السعة. وينبغي قياس Flash Attention بصورة منفصلة بوصفه تحسينًا لمسار التنفيذ.

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

تتناول Transformer Engine من NVIDIA الواجهات الخلفية المحسّنة للانتباه والتنفيذ المعتمد على العتاد بوصفها جزءًا من منظومة أوسع لاختيار النوى.

مركز التكنولوجيا والذكاء الاصطناعي

المزيد للقراءة

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.