اكتشف SwiGLU، وظيفة التنشيط المتقدمة المستخدمة في LLMs و Ultralytics . تعرف على كيفية تحسين آلية البوابة الخاصة بها لتدريب الشبكات العصبية وكفاءتها.
SwiGLU (Swish Gated Linear Unit) هي وظيفة تنشيط متقدمة وكتلة هندسية للشبكة العصبية تعزز الشبكة التقليدية Feed-Forward Network (FFN) المستخدمة في التعلم الآلي العميق. من خلال الجمع بين الخصائص السلسة وغير المتجانسة لوظيفة التنشيط Swish وآلية Gated Linear Unit (GLU)، توفر SwiGLU توجيهًا ديناميكيًا للميزات يعتمد على البيانات. من خلال تطبيق إسقاط خطي على مدخلات، وتمرير فرع واحد عبر تنشيط Swish ، وضربه عنصرًا بعنصر مع فرع خطي آخر، تكتسب الشبكة قوة تعبيرية فائقة. وهذا يسمح للبنى الحديثة للذكاء الاصطناعي بالتقاط التبعيات المعقدة وغير الخطية بشكل أكثر فعالية بكثير من الطبقات الثابتة القياسية المستخدمة في نماذج التعلم العميق القديمة.
على عكس الشبكات التقليدية التي تعمل على توجيه المدخلات إلى بعد أعلى، وتطبق عدم خطية أساسية، ثم تعيدها إلى البعد الأصلي، فإن SwiGLU تقدم آلية بوابة مضاعفة. يتم تقسيم المدخلات إلى إسقاطين معلمين: "بوابة" و"قيمة". يتم تنشيط فرع البوابة باستخدام وظيفة SiLU / Swish، التي تحافظ على القيم السالبة الصغيرة وتضمن مشتقات سلسة غير صفرية في كل مكان تقريبًا. ثم يتم ضرب هذه البوابة المنشطة عنصرًا بعنصر مع فرع القيمة. يسمح هذا التصفية الديناميكية للشبكة العصبية بالتحكم بذكاء في تدفق المعلومات، وتجنب مشاكل "الخلايا العصبية الميتة" الشائعة في البنى القديمة مع تثبيت إشارة التدرج أثناء عملية تدريب النموذج، وهو مفهوم تمت دراسته على نطاق واسع في آليات الانتباه.
بينما تستخدم وظائف التنشيط القياسية مثل ReLU عتبة ثابتة لقص القيم السالبة إلى صفر، يقوم SwiGLU بضبط التنشيط ديناميكيًا بناءً على البيانات المدخلة نفسها. مقارنةً بـ GELU، الذي يزن المدخلات حسب احتماليتها في ظل توزيع غاوسي، يستفيد SwiGLU بشكل خاص من الطبقات الخطية المعلمة لتعلم كيفية تمرير المعلومات. في جوهره، SwiGLU ليس مجرد حساب رياضي للعناصر؛ بل يعمل كمكون هيكلي شامل غالبًا ما يحل محل آلية الطبقة المخفية بأكملها داخل كتلة Transformer. لإجراء مقارنة شاملة بين الخصائص الرياضية، غالبًا ما يشير الباحثون إلى أدلة وظائف التنشيط الشاملة.
نظرًا لكفاءته الحسابية ومكاسبه الكبيرة في الأداء، أصبح SwiGLU مكونًا أساسيًا في أنظمة الذكاء الاصطناعي الحديثة.
بالنسبة للمطورين الذين يقومون ببناء شبكات مخصصة أو تكييف نماذج الرؤية للأجهزة الطرفية باستخدام
منصة Ultralytics، تنفيذ SwiGLU عبر
PyTorch هو أمر بسيط. (بدلاً من ذلك،
قد يستخدم المطورون في أنظمة بيئية أخرى
TensorFlow).
يوضح Python الموجز التالي 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 لتعظيم إنتاجية الأجهزة.