𝗠𝗶𝘅𝘁𝘂𝗿𝗲 𝗼𝗳 𝗘𝘅𝗽𝗲𝗿𝘁𝘀 (𝗠𝗼𝗘): 𝗛𝗼𝘄 𝗜𝘁 𝗪𝗼𝗿𝗸𝘀 𝗮𝗻𝗱 𝗪𝗵𝗲𝗻 𝘁𝗼 𝗨𝘀𝗲 𝗜𝘁
آپ مزید چار GPUs خریدے بغیر ایک 7B ماڈل سے 70B ماڈل تک اسکیل کرنا چاہتے ہیں۔
کوئی آپ کو Mixture of Experts (MoE) کا مشورہ دیتا ہے۔ ان کا دعویٰ ہے کہ آپ کو صرف 7B کمپیوٹ کے ساتھ 70B کارکردگی حاصل ہوگی۔
یہ سننے میں تو بہت آسان اور مفت لگتا ہے، لیکن اس میں ایک پچ (catch) ہے۔
یہ کیسے کام کرتا ہے؟
Llama 3.2 جیسا ایک ڈینس (dense) ٹرانسفارمر ہر ٹوکن کے لیے اپنے 100 فیصد پیرامیٹرز استعمال کرتا ہے۔ اگر آپ 7B سے 70B تک اسکیل کرتے ہیں، تو آپ میموری اور کمپیوٹ دونوں کو 10 گنا بڑھا دیتے ہیں۔
MoE ان دونوں کو الگ کر دیتا ہے۔ ماڈل زیادہ پیرامیٹرز اسٹور کرتا ہے (زیادہ میموری لاگت) لیکن ہر ٹوکن کے لیے ان میں سے صرف ایک حصہ استعمال کرتا ہے (کم کمپیوٹ لاگت)۔
The Trade-off:
• Dense 7B: 7B کل پیرامیٹرز | 7B ایکٹو | 7B کمپیوٹ | 14 GB میموری • Dense 70B: 70B کل پیرامیٹرز | 70B ایکٹو | 70B کمپیوٹ | 140 GB میموری • MoE 45B: 45B کل پیرامیٹرز | ~13B ایکٹو | ~14B کمپیوٹ | ~90 GB میموری
پچ (catch): آپ کو اب بھی ایک بڑے ماڈل کی میموری لاگت ادا کرنی پڑتی ہے۔ آپ Mixtral کو ایک سنگل 24 GB GPU پر نہیں چلا سکتے۔ آپ کو تمام ایکسپرٹس کو رکھنے کے لیے کافی VRAM کی ضرورت ہوتی ہے، یہاں تک کہ ان کے لیے بھی جو استعمال نہیں ہو رہے ہوتے۔
The Architecture:
ایک سپارس (sparse) MoE میں، اسٹینڈرڈ فیڈ فارورڈ نیٹ ورک (FFN) کو متعدد "ایکسپرٹ" FFNs اور ایک لرنڈ روٹر (learned router) سے بدل دیا جاتا ہے۔
- روٹر ایک ٹوکن لیتا ہے۔
- یہ ہر ایکسپرٹ کو ایک اسکور دیتا ہے۔
- یہ ٹاپ-k ایکسپرٹس کا انتخاب کرتا ہے (Mixtral کے لیے، k=2)۔
- یہ ٹوکن کو صرف ان ایکسپرٹس کے ذریعے گزارتا ہے۔
- یہ نتائج کو یکجا کرتا ہے۔
روٹر کوئی دستی شیڈولر (manual scheduler) نہیں ہے۔ یہ ایک لرنڈ لیئر (learned layer) ہے۔ یہ سیکھتا ہے کہ ریاضی کے ٹوکنز کو ایک ایکسپرٹ کے پاس اور کوڈ کے ٹوکنز کو دوسرے کے پاس کیسے بھیجنا ہے۔
The Training Challenge:
سب سے بڑا خطرہ روٹر کولیپس (router collapse) ہے۔ مدد کے بغیر، روٹر ہر ٹوکن کو ممکنہ طور پر ایک ہی دو ایکسپرٹس کے پاس بھیج سکتا ہے۔ وہ ایکسپرٹس مزید بہتر ہو جاتے ہیں، اس لیے روٹر ان کی طرف مزید ٹریفک بھیجتا ہے۔ باقی ایکسپرٹس بیکار ہو جاتے ہیں۔
انجینئرز اس مسئلے کو حل کرنے کے لیے ایک معاون لوڈ بیلنسنگ لاس (auxiliary load-balancing loss) کا استعمال کرتے ہیں۔ اگر ماڈل تمام ایکسپرٹس کو برابر استعمال نہیں کرتا تو یہ اسے سزا (penalize) دیتا ہے۔
When to avoid MoE:
• آپ کو مستقل لیٹنسی (consistent latency) چاہیے: MoE میں رسپانس ٹائم میں زیادہ اتار چڑھاؤ ہوتا ہے۔ • آپ کے پاس محدود VRAM ہے: اگر آپ کے پاس 48 GB سے کم کا صرف ایک GPU ہے، تو ڈینس ماڈلز پر ہی رہیں ۔ • آپ چھوٹے ماڈلز بنا رہے ہیں: اگر آپ کا ماڈل 3B پیرامیٹرز سے کم ہے، تو اوور ہیڈ (overhead) بہت زیادہ ہوگا۔ • آپ کو سادہ انفراسٹرکچر چاہیے: MoE کے لیے پیچیدہ ایکسپرٹ پیراللزم (expert parallelism) اور کسٹم کرنلز (custom kernels) کی ضرورت ہوتی ہے۔
MoE اس وقت بہترین ہوتا ہے جب آپ 30B پیرامیٹرز سے اوپر کے ڈینس بیس لائن کو ہدف بناتے ہیں اور اسے سپورٹ کرنے کے لیے میموری موجود ہو۔
اختیاری سیکھنے کی کمیونٹی: https://t.me/GyaanSetuAi