تدریجی جمع
گریڈینٹ جمع آپ کو وزن کو اپ ڈیٹ کرنے سے پہلے کئی چھوٹے چھوٹے بیچوں پر گریڈیئنٹس کا خلاصہ کرکے محدود GPU میموری پر بڑے بیچ سائز کی نقل کرنے دیتا ہے۔
جائزہ
It is the standard workaround for training big models when memory is the bottleneck.
گہرا غوطہ
عام طور پر ایک تربیتی مرحلہ ایک بیچ پر کارروائی کرتا ہے، گریڈیئنٹس کی گنتی کرتا ہے، اور فوری طور پر پیرامیٹرز کو اپ ڈیٹ کرتا ہے۔ گراڈینٹ جمع کرنے کے ساتھ، آپ چھوٹے مائیکرو بیچوں پر کئی آگے اور پیچھے والے پاس چلاتے ہیں، ان کے گریڈینٹ کو پیرامیٹر بفرز میں ایک ساتھ شامل کرتے ہیں، اور N مائیکرو بیچز کے بعد صرف آپٹیمائزر سٹیپ (اور گراڈینٹ صفر) کو کال کرتے ہیں۔ مؤثر بیچ کا سائز مائیکرو بیچ کے سائز کے اوقات N بن جاتا ہے، حالانکہ چوٹی میموری میں صرف ایکٹیویشن کا ایک مائیکرو بیچ ہوتا ہے۔ یہ اہمیت رکھتا ہے کیونکہ بہت سی تربیتی ترکیبیں مستحکم اعدادوشمار کے لیے بڑے بیچوں کو فرض کرتی ہیں، اور اس لیے کہ بڑے ٹرانسفارمرز جیسے ماڈلز کسی ایک ڈیوائس پر مکمل ہدف والے بیچ کو فٹ نہیں کر سکتے۔ کیچ: بیچ نارملائزیشن کے اعدادوشمار فی مائیکرو بیچ کے حساب سے کیے جاتے ہیں، اس لیے لیئر نارمل یا گروپ نارمل جوڑی جمع ہونے کے ساتھ بہتر ہے، اور آپ کو سیکھنے کی مؤثر شرح کو درست رکھنے کے لیے نقصان کو درست طریقے سے پیمانہ کرنا چاہیے۔
تکنیکی بصیرت
چونکہ مجموعے کے نقصان کے میلان اضافی ہوتے ہیں، اس لیے N مائیکرو بیچوں پر گریڈینٹ جمع کرنا ریاضی کے لحاظ سے ایک بڑے بیچ کے برابر ہے، بشرطیکہ آپ کی اوسط مناسب ہو۔ نفاذات عام طور پر ہر مائیکرو بیچ کے نقصان کو پسماندہ سے پہلے N سے تقسیم کرتے ہیں، لہذا جمع شدہ میلان پورے موثر بیچ کے اوسط کے برابر ہوتا ہے۔ آپ optimizer.step() اور zero_grad() کو Nth مائیکرو بیچ تک چھوڑ دیتے ہیں، کم چوٹی میموری کے لیے اضافی کمپیوٹ ٹائم ٹریڈ کرتے ہیں۔
اسٹریٹجک اثر
لاگت اور بجٹ
فن تعمیر کے فیصلے سالوں تک کارکردگی اور آپریٹنگ لاگت کو آگے بڑھاتے ہیں۔
واضح فیصلے
تکنیکی تعلیم ٹیموں کو صحیح اسٹیک منتخب کرنے میں مدد کرتی ہے، نہ صرف جدید ترین۔
کوالٹی کنٹرول
انجینئرنگ کے بہتر انتخاب پیداوار میں قابل اعتماد واقعات کو کم کرتے ہیں۔
تدریجی جمع کا مستقبل
گریڈینٹ جمع ایک ڈیفالٹ لیور رہے گا کیونکہ ماڈل کے سائز سنگل ڈیوائس میموری کو پیچھے چھوڑ دیتے ہیں۔ یہ تیزی سے ڈیپ اسپیڈ اور ایف ایس ڈی پی جیسے فریم ورک میں مخلوط درستگی، ایکٹیویشن چیک پوائنٹنگ، زیرو شارڈنگ، اور پائپ لائن کے متوازی کے ساتھ یکجا ہوتا ہے۔ سخت آٹومیشن کی توقع کریں جہاں لائبریریاں میموری بجٹ میں خود کار طریقے سے جمع ہونے کے اقدامات کرتی ہیں، اور معمولی ہارڈ ویئر پر بڑے ماڈلز کو ٹھیک کرنے کے لیے مسلسل اہمیت رکھتی ہے، بشمول صارف GPUs جہاں یہ تربیت کو غیر مقفل کرتا ہے جو کہ دوسری صورت میں ناممکن ہوگا۔
حقیقی دنیا کا نفاذ
سیکڑوں کی ایک موثر کھیپ تک پہنچنے کے لیے 8 یا 16 مائیکرو بیچز سے زیادہ جمع کرکے ایک واحد صارف GPU پر ایک بڑے زبان کے ماڈل کو ٹھیک کرنا۔
ہائی ریزولوشن ویژن یا سیگمنٹیشن ماڈلز کی تربیت جہاں 2 کا بیچ بھی فٹ بیٹھتا ہے، لیکن نسخہ کے لیے 32 کے موثر بیچ کی ضرورت ہے۔
Hugging Face Trainer اور PyTorch Lightning ایک gradient_accumulation_steps کی ترتیب کو بے نقاب کرتا ہے جو محدود VRAM سیٹ اپ میں معمول کے مطابق استعمال ہوتا ہے۔
جمع کے ذریعے مؤثر بیچ سائز کو ملا کر چھوٹے ہارڈ ویئر پر کاغذ کے بڑے بیچ کے نتائج کو دوبارہ تیار کرنا۔
خطرات اور گارڈریلز
ایک بینچ مارک کو بہتر بنانا نظام کی وسیع تر کمزوریوں کو چھپا سکتا ہے۔
بنیادی ڈھانچے اور دیکھ بھال کے اخراجات کو اکثر کم سمجھا جاتا ہے۔
سیکورٹی اور مشاہداتی فرق بڑھ سکتا ہے کیونکہ نظام زیادہ پیچیدہ ہو جاتا ہے۔
نفاذ کا روڈ میپ
نفاذ سے پہلے تاخیر، معیار اور لاگت کے اہداف کی وضاحت کریں۔
حقیقت پسندانہ بوجھ اور ڈیٹا کی شرائط کے تحت بینچ مارک۔
غلطیوں، بڑھے ہوئے، اور صارف کے اثرات کے لیے آلے کی نگرانی۔
اسکیلنگ سے پہلے رول بیک اور واقعہ کے ردعمل کے راستے تیار کریں۔
دریافت کرتے رہیں
Free newsletter
Get the daily AI briefing
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Take the Gradient Accumulation quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
اگلا گائیڈ
غائب اور پھٹنے والے گریڈینٹ
اکثر پوچھے گئے سوالات
What is Gradient Accumulation?
گریڈینٹ جمع آپ کو وزن کو اپ ڈیٹ کرنے سے پہلے کئی چھوٹے چھوٹے بیچوں پر گریڈیئنٹس کا خلاصہ کرکے محدود GPU میموری پر بڑے بیچ سائز کی نقل کرنے دیتا ہے۔ بڑے ماڈلز کو تربیت دینے کے لیے یہ ایک معیاری حل ہے جب میموری رکاوٹ ہے۔
میلان جمع بنیادی طور پر آپ کو کیا کرنے دیتا ہے؟
اپ ڈیٹ کرنے سے پہلے کئی مائیکرو بیچوں پر گریڈیئنٹس کا خلاصہ کرکے، آپ ایک بڑے بیچ کو ایک ساتھ میموری میں رکھے بغیر نقل کرتے ہیں۔
جمع کرنے کے دوران، آپ کب اصلاح کار کے قدم اور صفر کو میلان کہتے ہیں؟
آپ پورے N مائیکرو بیچوں میں گریڈینٹ جمع کرتے ہیں اور سائیکل کے اختتام پر صرف ایک بار اپ ڈیٹ کرتے ہیں۔
کونسی نارملائزیشن پرت میلان جمع کے ساتھ زیادہ صاف طور پر جوڑتی ہے؟
بیچ نارم فی مائیکرو بیچ کے اعدادوشمار کی گنتی کرتا ہے، اس لیے پرت یا گروپ نارمل چھوٹے مائیکرو بیچوں کے ساتھ مماثلت سے بچتا ہے۔