SwiGLU
استكشف SwiGLU، دالة التنشيط المتقدمة المستخدمة في النماذج اللغوية الكبيرة LLMs وفي Ultralytics YOLO26. تعرّف على كيفية تحسين آليتها البوابية لتدريب الشبكات العصبية وكفاءتها.
تعد SwiGLU (وحدة خطية بوابية من نوع Swish) دالة تنشيط متقدمة وكتلة معمارية للـ شبكة عصبية تعزز شبكة التغذية الأمامية (FFN) التقليدية المستخدمة في التعلم الآلي العميق. من خلال الجمع بين الخصائص السلسة وغير الرتيبة لدالة التنشيط Swish وآلية الوحدة الخطية البوابية (GLU)، توفر SwiGLU توجيهاً ديناميكياً للميزات يعتمد على البيانات. وعن طريق تطبيق إسقاط خطي على المدخلات، وتمرير فرع واحد عبر تنشيط Swish، وضربه عنصرياً بفرع خطي آخر، تكتسب الشبكة قوة تعبيرية فائقة. يسمح هذا لمعماريات الذكاء الاصطناعي الحديثة بالتقاط تبعيات معقدة وغير خطية بفعالية أكبر بكثير من الطبقات الساكنة القياسية المستخدمة في نماذج التعلم العميق القديمة.
Link to this sectionكيف تعمل SwiGLU#
على عكس شبكات التغذية الأمامية التقليدية التي تقوم ببساطة بتعيين المدخلات إلى بُعد أعلى، وتطبيق خاصية غير خطية أساسية، وإسقاطها مرة أخرى للأسفل، تُدخل SwiGLU آلية بوابة مضاعِفة. يتم تقسيم المدخلات إلى إسقاطين معلميين: "بوابة" و"قيمة". يتم تنشيط فرع البوابة باستخدام دالة SiLU / Swish، التي تحافظ على القيم السالبة الصغيرة وتضمن مشتقات سلسة وغير صفرية في كل مكان تقريباً. يتم بعد ذلك ضرب هذه البوابة المنشطة عنصرياً بفرع القيمة. يسمح هذا الترشيح الديناميكي للشبكة العصبية بالتحكم بذكاء في تدفق المعلومات، مما يتجنب مشاكل "الخلايا العصبية الميتة" الشائعة في المعماريات القديمة مع تثبيت إشارة التدرج أثناء عملية تدريب النموذج، وهو مفهوم تمت دراسته على نطاق واسع في آليات الانتباه.
Link to this sectionتمييز SwiGLU عن دوال التنشيط الأخرى#
بينما تستخدم دوال التنشيط القياسية مثل ReLU حداً فاصلاً ثابتاً لقص القيم السالبة إلى صفر، تقوم SwiGLU بضبط التنشيطات ديناميكياً بناءً على بيانات الإدخال نفسها. ومقارنةً بـ GELU، التي تزن المدخلات باحتماليتها ضمن توزيع غاوسي، تستفيد SwiGLU تحديداً من طبقات خطية معلمية لتعلم كيفية توجيه المعلومات. في الجوهر، SwiGLU ليست مجرد عملية حسابية عنصرية؛ بل تعمل كمكون هيكلي شامل غالباً ما يحل محل آلية الطبقة المخفية بالكامل داخل كتلة Transformer. للحصول على مقارنة موسعة للخصائص الرياضية، غالباً ما يرجع الباحثون إلى أدلة دوال التنشيط الشاملة.
Link to this sectionالتطبيقات الواقعية#
بفضل كفاءتها الحسابية ومكاسب الأداء الكبيرة، أصبحت SwiGLU مكوناً أساسياً في أنظمة الذكاء الاصطناعي الحديثة.
- النماذج اللغوية الكبيرة (LLMs): تعتمد تطبيقات الذكاء الاصطناعي التوليدي الرائدة بشكل كبير على SwiGLU. على سبيل المثال، تدمج Meta تقنية SwiGLU في معمارية Llama 3 الخاصة بها لتحل محل طبقات التغذية الأمامية التقليدية المعتمدة على GeLU، مما يتيح استقراراً أفضل في التدريب والتعامل مع نوافذ سياق ضخمة. يتم نشر معماريات مشابهة في نموذج Google PaLM اللغوي ويتم تحليلها على نطاق واسع عبر مناقشات التعلم العميق على Kaggle.
- الرؤية الحاسوبية المتقدمة: تستخدم النماذج متعددة الوسائط وأنظمة الرؤية الحاسوبية المتقدمة SwiGLU ضمن كتل Transformer الخاصة بها لمعالجة علاقات الصورة-النص المعقدة بكفاءة. تستكشف أطر العمل البصرية المبتكرة، بما في ذلك Ultralytics YOLO26 الذي يعمل بنظام شامل من البداية إلى النهاية، باستمرار كتل معمارية محسنة وضبط المعاملات الفائقة لزيادة كفاءة المعاملات لمهام مثل كشف الأشياء.
Link to this sectionتنفيذ SwiGLU في PyTorch#
بالنسبة للمطورين الذين يبنون شبكات مخصصة أو يكيفون نماذج الرؤية للأجهزة الطرفية باستخدام منصة Ultralytics، فإن تنفيذ SwiGLU عبر وثائق PyTorch أمر مباشر. (بدلاً من ذلك، قد يستخدم المطورون في بيئات أخرى تنفيذات TensorFlow). يوضح مقتطف Python الموجز التالي وحدة SwiGLU أساسية باستخدام دالة F.silu المدمجة في PyTorch:
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 لزيادة إنتاجية الأجهزة إلى أقصى حد.






