توضح هذه المقالة كيفية تحليل آليات الانتباه في PyTorch باستخدام مسارات المحلل لتحديد الاختناقات في الأداء وفرص التحسين. تقارن بين تنفيذ الانتباه البسيط و Scaled Dot Product Attention (SDPA) المدمج في PyTorch لتوضيح سلوك النواة.
- يتضمن الانتباه السببي البسيط عدة نوى بما في ذلك matmul، والتوسع، والقناع، وsoftmax، ونسخ ذاكرة غير متوقع ناتج عن عمليات خارج المكان.
- استبدال masked_fill بـ masked_fill_ في المكان يزيل نواة نسخ الذاكرة غير الضرورية من مسار GPU.
- تقوم وظيفة SDPA في PyTorch بإرسال تلقائي إلى أسرع خلفية متاحة (مثل Flash Attention أو cuDNN) بناءً على أنواع الإدخال والأجهزة.
- يكشف تحليل خلفيات SDPA الفردية عن توقيعات نوى مميزة، مما يسمح للمطورين بالتحقق من التنفيذ النشط.
يساعد فهم مسارات المحلل المستخدمين على تحسين نماذج المحولات من خلال القضاء على عمليات الذاكرة الزائدة والاستفادة من خلفيات الانتباه الفعالة في PyTorch.