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 التقليدية، مما يتيح استقراراً أفضل في التدريب والتعامل مع نوافذ سياق ضخمة. يتم نشر معماريات مماثلة في نموذج لغة مسارات جوجل (PaLM) ويتم تحليلها على نطاق واسع عبر مناقشات التعلم العميق في Kaggle.
- رؤية الحاسوب المتقدمة: تستخدم النماذج متعددة الوسائط وأنظمة رؤية الحاسوب المتقدمة تقنية SwiGLU داخل كتل المحولات (transformer blocks) الخاصة بها لمعالجة علاقات الصورة والنص المعقدة بكفاءة. تستكشف أطر الرؤية المبتكرة، بما في ذلك 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 لتعظيم إنتاجية الأجهزة.






