Yolo فيجن شنتشن
شنتشن
انضم الآن
مسرد المصطلحات

SwiGLU

اكتشف SwiGLU، وظيفة التنشيط المتقدمة المستخدمة في LLMs و Ultralytics . تعرف على كيفية تحسين آلية البوابة الخاصة بها لتدريب الشبكات العصبية وكفاءتها.

SwiGLU (Swish Gated Linear Unit) هي وظيفة تنشيط متقدمة وكتلة هندسية للشبكة العصبية تعزز الشبكة التقليدية Feed-Forward Network (FFN) المستخدمة في التعلم الآلي العميق. من خلال الجمع بين الخصائص السلسة وغير المتجانسة لوظيفة التنشيط Swish وآلية Gated Linear Unit (GLU)، توفر SwiGLU توجيهًا ديناميكيًا للميزات يعتمد على البيانات. من خلال تطبيق إسقاط خطي على مدخلات، وتمرير فرع واحد عبر تنشيط Swish ، وضربه عنصرًا بعنصر مع فرع خطي آخر، تكتسب الشبكة قوة تعبيرية فائقة. وهذا يسمح للبنى الحديثة للذكاء الاصطناعي بالتقاط التبعيات المعقدة وغير الخطية بشكل أكثر فعالية بكثير من الطبقات الثابتة القياسية المستخدمة في نماذج التعلم العميق القديمة.

كيف يعمل SwiGLU

على عكس الشبكات التقليدية التي تعمل على توجيه المدخلات إلى بعد أعلى، وتطبق عدم خطية أساسية، ثم تعيدها إلى البعد الأصلي، فإن SwiGLU تقدم آلية بوابة مضاعفة. يتم تقسيم المدخلات إلى إسقاطين معلمين: "بوابة" و"قيمة". يتم تنشيط فرع البوابة باستخدام وظيفة SiLU / Swish، التي تحافظ على القيم السالبة الصغيرة وتضمن مشتقات سلسة غير صفرية في كل مكان تقريبًا. ثم يتم ضرب هذه البوابة المنشطة عنصرًا بعنصر مع فرع القيمة. يسمح هذا التصفية الديناميكية للشبكة العصبية بالتحكم بذكاء في تدفق المعلومات، وتجنب مشاكل "الخلايا العصبية الميتة" الشائعة في البنى القديمة مع تثبيت إشارة التدرج أثناء عملية تدريب النموذج، وهو مفهوم تمت دراسته على نطاق واسع في آليات الانتباه.

التمييز بين SwiGLU ووظائف التنشيط الأخرى

بينما تستخدم وظائف التنشيط القياسية مثل ReLU عتبة ثابتة لقص القيم السالبة إلى صفر، يقوم SwiGLU بضبط التنشيط ديناميكيًا بناءً على البيانات المدخلة نفسها. مقارنةً بـ GELU، الذي يزن المدخلات حسب احتماليتها في ظل توزيع غاوسي، يستفيد SwiGLU بشكل خاص من الطبقات الخطية المعلمة لتعلم كيفية تمرير المعلومات. في جوهره، SwiGLU ليس مجرد حساب رياضي للعناصر؛ بل يعمل كمكون هيكلي شامل غالبًا ما يحل محل آلية الطبقة المخفية بأكملها داخل كتلة Transformer. لإجراء مقارنة شاملة بين الخصائص الرياضية، غالبًا ما يشير الباحثون إلى أدلة وظائف التنشيط الشاملة.

تطبيقات واقعية

نظرًا لكفاءته الحسابية ومكاسبه الكبيرة في الأداء، أصبح SwiGLU مكونًا أساسيًا في أنظمة الذكاء الاصطناعي الحديثة.

تنفيذ SwiGLU في PyTorch

بالنسبة للمطورين الذين يقومون ببناء شبكات مخصصة أو تكييف نماذج الرؤية للأجهزة الطرفية باستخدام منصة 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 لتعظيم إنتاجية الأجهزة.

عزز قوتك مع Ultralytics YOLO

احصل على رؤية الذكاء الاصطناعي المتقدمة لمشاريعك. ابحث عن الترخيص المناسب لأهدافك اليوم.

اكتشف خيارات الترخيص