SwiGLU
استكشف SwiGLU، دالة التنشيط المتقدمة المستخدمة في النماذج اللغوية الكبيرة (LLMs) و Ultralytics YOLO26. تعلم كيف تعمل آليتها البوابية على تحسين تدريب الشبكات العصبية وكفاءتها.
يُعد SwiGLU (وحدة خطية بوابة Swish) دالة تنشيط متقدمة وكتلة معمارية للشبكات العصبية تعمل على تحسين شبكة التغذية الأمامية (FFN) التقليدية المستخدمة في التعلم الآلي العميق. من خلال الجمع بين خصائص دالة تنشيط Swish السلسة وغير الرتيبة وآلية الوحدة الخطية البوابة (GLU)، توفر SwiGLU توجيهاً ديناميكياً للميزات يعتمد على البيانات. عبر تطبيق إسقاط خطي على المدخلات، وتمرير فرع واحد عبر تنشيط Swish، وضربه عنصرياً بفرع خطي آخر، تكتسب الشبكة قوة تعبيرية فائقة. يتيح هذا لبنى الذكاء الاصطناعي الحديثة التقاط التبعيات المعقدة وغير الخطية بشكل أكثر فعالية بكثير من الطبقات الثابتة القياسية المستخدمة في نماذج التعلم العميق الأقدم.
كيف تعمل SwiGLU#
على عكس شبكات التغذية الأمامية التقليدية التي تقوم ببساطة بتعيين المدخلات إلى بعد أعلى، وتطبيق عدم خطية أساسية، وإسقاطها مرة أخرى إلى الأسفل، تقدم SwiGLU آلية بوابات مضاعفة. يتم تقسيم المدخلات إلى إسقاطين مُعَدَّلين: "بوابة" و"قيمة". يتم تنشيط فرع البوابة باستخدام دالة SiLU / Swish، والتي تحافظ على القيم السلبية الصغيرة وتضمن مشتقات سلسة وغير صفرية في كل مكان تقريبا. ثم يتم ضرب هذه البوابة المُنشَّطة عنصرياً مع فرع القيمة. يتيح هذا الترشيح الديناميكي للشبكة العصبية التحكم الذكي في تدفق المعلومات، وتجنب مشكلات "الخلايا العصبية الميتة" الشائعة في البنى الأقدم مع تثبيت إشارة التدرج أثناء عملية تدريب النموذج، وهو مفهوم تمت دراسته على نطاق واسع في آليات الانتباه.
تمييز SwiGLU عن دوال التنشيط الأخرى#
في حين أن دوال التنشيط القياسية مثل ReLU تستخدم عتبة ثابتة لقص القيم السلبية إلى الصفر، فإن SwiGLU تعدل التنشيطات ديناميكياً بناءً على بيانات المدخلات نفسها. مقارنةً بـ GELU، التي تزن المدخلات بناءً على احتماليتها تحت توزيع غاوسي، تستفيد SwiGLU بشكل محدد من الطبقات الخطية المُعَدَّلة لتعلم كيفية توجيه المعلومات. في جوهرها، لا تُعد SwiGLU مجرد عملية حسابية رياضية عنصرية؛ بل تعمل كمكون هيكلي شامل غالباً ما يحل محل آلية الطبقة المخفية بأكملها داخل كتلة Transformer. للحصول على مقارنة شاملة للخصائص الرياضية، غالباً ما يرجع الباحثون إلى أدلة دالة التنشيط الشاملة.
تطبيقات العالم الحقيقي#
بسبب كفاءتها الحسابية ومكاسب الأداء الكبيرة، أصبحت SwiGLU مكوناً أساسياً في أنظمة الذكاء الاصطناعي الحديثة.
- نماذج اللغات الكبيرة (LLMs): تعتمد تطبيقات الذكاء الاصطناعي التوليدي الرائدة بشكل كبير على SwiGLU. على سبيل المثال، تدمج Meta بنية SwiGLU في بنية Llama 3 الخاصة بها لتعويض طبقات التغذية الأمامية التقليدية القائمة على GeLu، مما يتيح استقراراً أفضل للتدريب والتعامل مع نوافذ سياق هائلة. يتم نشر بنى مشابهة في نموذج لغة المسارات من جوجل (PaLM) وتحليلها على نطاق واسع عبر مناقشات التعلم العميق على Kaggle.
- الرؤية الحاسوبية المتقدمة: تستخدم النماذج متعددة الوسائط وأنظمة الرؤية الحاسوبية المتقدمة SwiGLU داخل كتل المحولات الخاصة بها لمعالجة العلاقات المعقدة بين الصور والنصوص بكفاءة. تستكشف أطر الرؤية المبتكرة، بما في ذلك Ultralytics YOLO26 الأصلي من البداية إلى النهاية، باستمرار الكتل المعمارية المُحسَّنة وضبط المعلمات الفائقة لتحقيق أقصى قدر من كفاءة المعلمات لمهام مثل اكتشاف الكائنات.
تنفيذ SwiGLU في PyTorch#
بالنسبة للمطورين الذين يبنون شبكات مخصصة أو يكيّفون نماذج الرؤية لأجهزة الحافة باستخدام منصة Ultralytics، فإن تنفيذ SwiGLU عبر وثائق PyTorch يعد أمراً مباشراً. (بدلاً من ذلك، قد يستخدم المطورون في الأنظمة البيئية الأخرى تنفيذات TensorFlow). يوضح مقتطف Python الموجز التالي وحدة SwiGLU أساسية باستخدام دالة PyTorch المدمجة F.silu:
import torch
import torch.nn as nn
import torch.nn.functional as F
class SwiGLU(nn.Module):
def __init__(self, in_features, hidden_features):
super().__init__()
# SwiGLU requires two projections: one for the gate, one for the value
self.gate_proj = nn.Linear(in_features, hidden_features)
self.value_proj = nn.Linear(in_features, hidden_features)
self.out_proj = nn.Linear(hidden_features, in_features)
def forward(self, x):
# Element-wise multiplication of the SiLU-activated gate and the linear value
hidden = F.silu(self.gate_proj(x)) * self.value_proj(x)
return self.out_proj(hidden)
# Example usage with a dummy input tensor
module = SwiGLU(in_features=512, hidden_features=1365)
output = module(torch.randn(1, 512))يضمن هذا النهج الهيكلي لكتل التنشيط أن تستخلص البنى العصبية المتطورة تمثيلات أغنى من بيانات التدريب المعقدة، سواء تم تطبيقها على معالجة اللغات الطبيعية (NLP) أو التحليل المكاني في الوقت الفعلي. للحصول على فهم أعمق لبناء النماذج الفعالة وتسريعها، غالباً ما يرجع المطورون إلى الأبحاث الأساسية حول متغيرات GLU الأصلية على arXiv، ومستودعات Meta مفتوحة المصدر، ووثائق تحسين PyTorch لتحقيق أقصى إنتاجية للأجهزة.






