Mixture of Depths (MoD)
استكشف كيف يعمل مزيج الأعماق (MoD) على تحسين كفاءة الذكاء الاصطناعي عن طريق توجيه الرموز ديناميكيًا. تعلم كيف تقلل هذه التقنية من عمليات الفاصلة العائمة (FLOPs) في Ultralytics YOLO26 ونماذج LLM.
في بنيات التعلم العميق، تُعد الكفاءة الحسابية أمراً بالغ الأهمية، خاصة عند معالجة التسلسلات الطويلة أو المدخلات عالية الدقة. يخصص نهج مبتكر موارد الحوسبة بشكل ديناميكي من خلال السماح للشبكة بتقرير أجزاء المدخلات التي تتطلب معالجة كاملة وأيها يمكنها تجاوز طبقات معينة بأمان. تعمل استراتيجية التوجيه الديناميكي هذه على تقليل التعقيد الحسابي الإجمالي دون التضحية بالقوة التنبؤية للنموذج أو دقته.
Link to this sectionفهم المفهوم#
خليط الأعماق (MoD) هو تقنية معمارية تُطبق بشكل أساسي على بنيات Transformer حيث يتعلم النموذج تخطي الحسابات ديناميكياً لرموز معينة في طبقات مختلفة. تقوم محولات Transformer التقليدية بمعالجة كل رمز عبر كل طبقة، سواء كان جزءاً مهماً من المعلومات أو محتوى حشوياً. في المقابل، يستخدم نموذج MoD آلية توجيه لتقييم الرموز وتعيين درجة لها. يتم تمرير الرموز ذات الدرجات الأعلى فقط—حتى حد سعة محدد مسبقاً—عبر كتل الحوسبة الثقيلة، مثل آليات الانتباه أو طبقات التغذية الأمامية الكثيفة. تتجاوز الرموز المتبقية الكتلة عبر وصلات متبقية، مما يخلق بشكل فعال "خليطاً من الأعماق" حيث تواجه رموز مختلفة مستويات متفاوتة من عمق المعالجة.
هذه الطريقة، التي شاع استخدامها بواسطة أبحاث DeepMind الأخيرة والموثقة بشكل مكثف في مستودع arXiv، تقلل بشكل كبير من العدد الإجمالي لـ عمليات الفاصلة العائمة (FLOPs) المطلوبة أثناء التدريب والاستدلال.
Link to this sectionالتمييز عن خليط الخبراء (MoE)#
من السهل الخلط بين هذا المفهوم وخليط الخبراء (MoE). في حين أن كلاهما يستخدم آليات توجيه، إلا أنهما يحلان مشكلات مختلفة:
- MoE يوجه الرموز إلى شبكات فرعية مختلفة (خبراء) داخل طبقة واحدة. يظل العمق الحسابي كما هو لجميع الرموز، لكن يزداد عدد معاملات النموذج.
- MoD يوجه الرموز إما إلى كتلة الحساب أو إلى وصلة تجاوز. يظل عدد المعاملات ثابتاً تماماً، ولكن ينخفض العمق الحسابي للرموز الأقل أهمية، مما يحسن مباشرة زمن استجابة الاستدلال.
Link to this sectionتطبيقات العالم الحقيقي#
تجعل القدرة على تخصيص ميزانية الحوسبة ديناميكياً هذه التقنية ذات قيمة عالية عبر مجالات متعددة من رؤية الكمبيوتر ومعالجة اللغات الطبيعية.
-
تحسين السياق في نماذج اللغة: تعالج نماذج اللغة الكبيرة (LLMs) الحديثة من مؤسسات مثل OpenAI وAnthropic نوافذ سياق ضخمة. من خلال توظيف توجيه العمق الديناميكي، يمكن لهذه النماذج تخطي الكلمات الهيكلية أو الحشو المتكرر، مع تخصيص الحوسبة العميقة لخطوات التفكير المعقدة والاستخراج الواقعي.
-
ذكاء اصطناعي للرؤية عالي الدقة: في أنظمة الرؤية المتقدمة مثل نموذج Ultralytics YOLO26، تتطلب معالجة الصور الكبيرة لـ اكتشاف الكائنات وتجزئة الصور ذاكرة هائلة. يسمح توجيه العمق للشبكة بتجاوز استخراج الميزات في الخلفيات الموحدة (مثل السماء الفارغة أو الجدران الخالية)، مع تركيز القوة الحسابية على الكائنات الأمامية المعقدة. هذا أمر حيوي لنشر النماذج على أجهزة ذكاء اصطناعي طرفي محدودة الموارد ومحسنة بواسطة مكتبات تحسين CUDA.
Link to this sectionمثال على التنفيذ#
فيما يلي مقتطف مفاهيمي بلغة 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 Cloud AI.






