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

مزيج الأعماق (MoD)

اكتشف كيف يعمل Mixture of Depths (MoD) على تحسين كفاءة الذكاء الاصطناعي من خلال توجيه الرموز بشكل ديناميكي. تعرف على كيفية تقليل هذه التقنية لعمليات FLOPs في Ultralytics و LLMs.

في بنى التعلم العميق، تعتبر الكفاءة الحسابية أمراً بالغ الأهمية، خاصة عند معالجة تسلسلات طويلة أو مدخلات عالية الدقة. هناك نهج جديد يوزع موارد الحوسبة ديناميكياً من خلال السماح للشبكة بتحديد أجزاء المدخلات التي تتطلب معالجة كاملة وأجزاء يمكن تجاوزها بأمان في طبقات معينة. تقلل استراتيجية التوجيه الديناميكي هذه من التعقيد الحسابي الإجمالي دون التضحية بقدرة النموذج على التنبؤ أو دقته.

فهم المفهوم

مزيج الأعماق (MoD) هو تقنية معمارية تُطبق بشكل أساسي على بنى المحولات حيث يتعلم النموذج تخطي الحساب ديناميكيًا لرموز معينة في طبقات مختلفة. تعالج المحولات التقليدية كل رمز عبر كل طبقة، سواء كان جزءًا مهمًا من المعلومات أو محتوى حشو. في المقابل، يستخدم نموذج MoD آلية توجيه لتقييم الرموز وتعيين درجة لها. فقط الرموز التي حصلت على أعلى الدرجات — حتى حد السعة المحدد مسبقًا — تمر عبر كتل الحساب الثقيلة، مثل آليات الانتباه أو طبقات التغذية الأمامية الكثيفة . أما الرموز المتبقية فتتجاوز الكتلة عبر الوصلات المتبقية، مما يخلق بشكل فعال "مزيجًا من الأعماق" حيث تخضع الرموز المختلفة لمستويات متفاوتة من عمق المعالجة.

هذه الطريقة، التي شاعت بفضل الأبحاث الحديثة التي أجرتها DeepMind وتم توثيقها بشكل مكثف في مستودع arXiv، تقلل بشكل كبير من إجمالي عدد عمليات النقاط العائمة (FLOPs) المطلوبة أثناء كل من التدريب والاستدلال.

التمييز عن مزيج الخبراء (MoE)

من السهل الخلط بين هذا المفهوم و مزيج الخبراء (MoE). على الرغم من أن كلاهما يستخدم آليات التوجيه، إلا أنهما يحلان مشكلتين مختلفتين:

  • يقوم MoE بتوجيه الرموز إلى شبكات فرعية مختلفة (خبراء) داخل طبقة. يظل العمق الحسابي كما هو بالنسبة لجميع الرموز، ولكن عدد معلمات النموذج يزداد.
  • يقوم MoD بتوجيه الرموز المميزة إما إلى كتلة الحساب أو إلى اتصال تخطي. يظل عدد المعلمات ثابتًا تمامًا، ولكن عمق الحساب ينخفض بالنسبة للرموز المميزة الأقل أهمية، مما يؤدي إلى تحسين زمن الاستدلال بشكل مباشر.

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

تجعل القدرة على حساب الميزانية ديناميكيًا هذه التقنية ذات قيمة عالية في مجالات متعددة من الرؤية الحاسوبية ومعالجة اللغة الطبيعية.

  1. تحسين السياق في نماذج اللغة: نماذج اللغة الحديثة الكبيرة (LLMs) من منظمات مثل OpenAI و Anthropic تقوم بمعالجة نوافذ سياق ضخمة. من خلال استخدام التوجيه العميق الديناميكي ، يمكن لهذه النماذج تخطي الكلمات الهيكلية أو التكرارية، مع الاحتفاظ بالحساب العميق لخطوات الاستدلال المعقدة واستخراج الحقائق.
  2. الرؤية عالية الدقة بالذكاء الاصطناعي: في أنظمة الرؤية المتقدمة مثل نموذج Ultralytics ، تتطلب معالجة الصور الكبيرة للكشف عن الأشياء وتقسيم الصور ذاكرة هائلة. يتيح التوجيه العميق للشبكة تجاوز استخراج الميزات على الخلفيات الموحدة (مثل السماء الفارغة أو الجدران الفارغة )، وتركيز القوة الحاسوبية على الأجسام المعقدة في المقدمة. وهذا أمر بالغ الأهمية لنشر النماذج على أجهزة الذكاء الاصطناعي المتطورة ذات الموارد المحدودة والمحسنة بواسطة مكتبات CUDA .

مثال على التنفيذ

فيما يلي PyTorch مفاهيمي PyTorch يوضح كيف يمكن لآلية التوجيه الأساسية تخطي حساب جزء من الرموز المدخلة، محاكاةً سلوك التوجيه العميق.

import torch
import torch.nn as nn


class MixtureOfDepthsBlock(nn.Module):
    def __init__(self, d_model, capacity_factor=0.5):
        super().__init__()
        self.capacity_factor = capacity_factor
        self.router = nn.Linear(d_model, 1)
        self.heavy_compute = nn.Sequential(nn.Linear(d_model, d_model * 4), nn.GELU(), nn.Linear(d_model * 4, d_model))

    def forward(self, x):
        # x shape: (batch_size, seq_len, d_model)
        seq_len = x.size(1)
        capacity = int(seq_len * self.capacity_factor)

        # 1. Compute routing scores
        scores = self.router(x).squeeze(-1)  # Shape: (batch_size, seq_len)

        # 2. Identify top-k tokens to process
        topk_indices = torch.topk(scores, capacity, dim=1).indices

        # 3. Create an output tensor mirroring the input (residual baseline)
        output = x.clone()

        # 4. Apply heavy computation only to the selected tokens
        for b in range(x.size(0)):
            selected_tokens = x[b, topk_indices[b]]
            processed_tokens = self.heavy_compute(selected_tokens)
            output[b, topk_indices[b]] += processed_tokens

        return output


# Example usage
dummy_input = torch.randn(2, 64, 128)  # Batch=2, Seq=64, Dim=128
mod_block = MixtureOfDepthsBlock(d_model=128, capacity_factor=0.5)
output = mod_block(dummy_input)
print(f"Output shape: {output.shape}")  # Expect (2, 64, 128)

من خلال الاستفادة من أطر عمل مثل PyTorch أو TensorFlow، يمكن للمطورين دمج كتل تحسين النماذج المخصصة هذه. علاوة على ذلك، تساعد أدوات مثل Ultralytics الفرق على إدارة بيانات التدريب اللازمة لتدريب هذه الموجهات بدقة، إلى جانب التكامل السلس مع النظم البيئية للمؤسسات مثل Google AI.

عزز قوتك مع Ultralytics YOLO

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

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