ٹیکنیکل گائیڈ

گریڈینٹ چیک پوائنٹنگ

گریڈینٹ چیک پوائنٹنگ (جسے ایکٹیویشن چیک پوائنٹنگ بھی کہا جاتا ہے) ایک میموری سیونگ ٹرک ہے جو فارورڈ پاس کے دوران زیادہ تر انٹرمیڈیٹ ایکٹیویشنز کو پھینک دیتی ہے اور بیک پروپیگیشن کے دوران ان کی دوبارہ گنتی کرتی ہے۔

2 منٹ پڑھیںآخری بار اپ ڈیٹ کیا گیا۔

جائزہ

It lets you train deeper, larger networks by trading extra compute for much lower memory use.

گہرا غوطہ

عصبی نیٹ ورکس کی تربیت عام طور پر فارورڈ پاس کے دوران ہر پرت کی ایکٹیویشن کو اسٹور کرتی ہے کیونکہ بیک پروپیگیشن کو گریڈینٹ کی گنتی کرنے کی ضرورت ہوتی ہے۔ گہرے ماڈلز کے لیے یہ سرگرمیاں میموری پر حاوی ہوتی ہیں۔ اس کے بجائے گریڈینٹ چیک پوائنٹنگ صرف 'چیک پوائنٹ' پرتوں کے ایک ویرل سیٹ پر ایکٹیویشن کو بچاتا ہے اور باقی کو ضائع کر دیتا ہے۔ جب بیک پروپ کسی ایسے خطے تک پہنچ جاتا ہے جس کی ایکٹیویشنز کو چھوڑ دیا گیا تھا، تو یہ صرف اس حصے کے لیے فارورڈ کمپیوٹیشن کو دوبارہ چلاتا ہے تاکہ اسے دوبارہ تخلیق کیا جا سکے، پھر آگے بڑھتا ہے۔ چیک پوائنٹس کے ساتھ تقریباً ہر مربع-روٹ-آف-N پرتوں میں، ایکٹیویشن کے لیے میموری آرڈر N سے گر کر مربع-روٹ-آف-N پر آتی ہے، جب کہ کمپیوٹ صرف ایک اضافی فارورڈ پاس سے بڑھتا ہے (تقریباً 20-30% سست)۔ یہ ایک ہی GPU پر بڑے بیچ سائز یا گہرے ٹرانسفارمرز کو فٹ کرنا ممکن بناتا ہے۔

تکنیکی بصیرت

تکنیک وقت بمقابلہ میموری ٹریڈ آف کا استحصال کرتی ہے۔ تمام ایکٹیویشن کو ذخیرہ کرنا تیز ہے لیکن یادداشت کی بھوک ہے۔ میموری ختم ہونے کی لاگت کے مقابلہ میں جدید ایکسلریٹر پر ان کی دوبارہ گنتی کرنا سستا ہے۔ PyTorch (torch.utils.checkpoint) جیسے فریم ورک ایک ماڈیول کو لپیٹتے ہیں تاکہ اس کا فارورڈ آؤٹ پٹ محفوظ ہو جائے لیکن اس کے انٹرنلز کو پسماندہ کے دوران دوبارہ شمار کیا جاتا ہے۔ چیک پوائنٹ پلیسمنٹ کا انتخاب کرنا: تقریباً sqrt(N) سیگمنٹس کا یکساں وقفہ کل میموری کو کم کرتا ہے جبکہ مجموعی طور پر کمپیوٹ کا صرف ایک اضافی فارورڈ پاس شامل کرتا ہے۔

اسٹریٹجک اثر

لاگت اور بجٹ

فن تعمیر کے فیصلے سالوں تک کارکردگی اور آپریٹنگ لاگت کو آگے بڑھاتے ہیں۔

واضح فیصلے

تکنیکی تعلیم ٹیموں کو صحیح اسٹیک منتخب کرنے میں مدد کرتی ہے، نہ صرف جدید ترین۔

کوالٹی کنٹرول

انجینئرنگ کے بہتر انتخاب پیداوار میں قابل اعتماد واقعات کو کم کرتے ہیں۔

تدریجی چیک پوائنٹنگ کا مستقبل

گریڈینٹ چیک پوائنٹنگ اب بڑے ماڈل ٹریننگ میں معیاری ہے اور یہ تیزی سے خودکار ہوتی جارہی ہے، لائبریریاں آپ کے لیے بہترین چیک پوائنٹ کا انتخاب کرتی ہیں۔ یہ قدرتی طور پر FSDP، مخلوط درستگی، اور ماڈل کے سائز کو اونچا کرنے کے لیے آف لوڈنگ کے ساتھ جوڑتا ہے۔ 'انتخابی' چیک پوائنٹنگ کی توقع کریں جو مہنگے (جیسے توجہ کے میٹرکس) کو کیشڈ رکھتے ہوئے صرف سستے آپریشنز کی دوبارہ گنتی کرے، نیز PyTorch's torch.compile جیسے ٹولز میں کمپائلر سے چلنے والے اپروچز جو خود بخود فیصلہ کرتے ہیں کہ بہترین سپیڈ میموری بیلنس کے لیے دوبارہ گنتی کے مقابلے میں کیا بچانا ہے۔

حقیقی دنیا کا نفاذ

پرت ایکٹیویشنز کو رد کرکے اور دوبارہ کمپیوٹنگ کرکے ایک ہی GPU پر بڑے بیچ سائز والے گہرے ٹرانسفارمر کو تربیت دینا۔

ہائی ریزولوشن امیجز پر فائن ٹیوننگ ویژن ماڈلز جہاں ایکٹیویشن میپس بصورت دیگر GPU میموری کو اوور فلو کر دیں گے۔

ہگنگ فیس ٹرانسفارمرز gradient_checkpointing=True کو فعال کرتے ہوئے فائن ٹیوننگ کے دوران بلین پیرامیٹر ماڈلز کو فٹ کر سکتے ہیں۔

چیک پوائنٹنگ کو FSDP کے ساتھ جوڑنا تاکہ پیرامیٹرز اور ایکٹیویشن دونوں چھوٹے رکھے جائیں، بہت بڑے لینگویج ماڈلز کی تربیت کو قابل بنایا جائے۔

خطرات اور گارڈریلز

ایک بینچ مارک کو بہتر بنانا نظام کی وسیع تر کمزوریوں کو چھپا سکتا ہے۔

بنیادی ڈھانچے اور دیکھ بھال کے اخراجات کو اکثر کم سمجھا جاتا ہے۔

سیکورٹی اور مشاہداتی فرق بڑھ سکتا ہے کیونکہ نظام زیادہ پیچیدہ ہو جاتا ہے۔

نفاذ کا روڈ میپ

1

نفاذ سے پہلے تاخیر، معیار اور لاگت کے اہداف کی وضاحت کریں۔

2

حقیقت پسندانہ بوجھ اور ڈیٹا کی شرائط کے تحت بینچ مارک۔

3

غلطیوں، بڑھے ہوئے، اور صارف کے اثرات کے لیے آلے کی نگرانی۔

4

اسکیلنگ سے پہلے رول بیک اور واقعہ کے ردعمل کے راستے تیار کریں۔

دریافت کرتے رہیں

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 Checkpointing 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 Checkpointing?

گریڈینٹ چیک پوائنٹنگ (جسے ایکٹیویشن چیک پوائنٹنگ بھی کہا جاتا ہے) ایک میموری سیونگ ٹرک ہے جو فارورڈ پاس کے دوران زیادہ تر انٹرمیڈیٹ ایکٹیویشنز کو پھینک دیتی ہے اور بیک پروپیگیشن کے دوران ان کی دوبارہ گنتی کرتی ہے۔ یہ آپ کو میموری کے بہت کم استعمال کے لیے اضافی کمپیوٹ ٹریڈنگ کے ذریعے گہرے، بڑے نیٹ ورکس کو تربیت دینے دیتا ہے۔

میموری کو بچانے کے لیے گریڈینٹ چیک پوائنٹ بنیادی طور پر کیا تجارت کرتا ہے؟

گریڈینٹ چیک پوائنٹنگ بیکورڈ پاس کے دوران ضائع شدہ ایکٹیویشنز کو دوبارہ گنتی ہے، کافی حد تک کم میموری کے بدلے میں اضافی کمپیوٹ خرچ کرتی ہے۔

ایکٹیویشنز عام طور پر فارورڈ پاس کے دوران کیوں محفوظ کی جاتی ہیں؟

بیک پروپ فارورڈ پاس سے انٹرمیڈیٹ ایکٹیویشنز کا استعمال کرتے ہوئے گریڈیئنٹس کی گنتی کرتا ہے، لہذا ان کا دستیاب ہونا ضروری ہے جب تک کہ ان کی دوبارہ گنتی نہ کی جائے۔

تقریباً ایکٹیویشن میموری کا پیمانہ کیسے ہوگا اگر چیک پوائنٹس کو N-پرت کے نیٹ ورک میں ہر sqrt(N) پرتوں کو رکھا جائے؟

ہر مربع-روٹ-آف-N پرتوں کے بارے میں چوکیوں کا فاصلہ رکھنے سے ذخیرہ شدہ ایکٹیویشن میموری آرڈر N سے نیچے آرڈر sqrt(N) تک کم ہو جاتی ہے۔

اچھی طرح سے رکھی گئی گریڈینٹ چیک پوائنٹنگ عام طور پر تقریباً کتنی اضافی کمپیوٹ کا اضافہ کرتی ہے؟

چیک پوائنٹ کی اچھی جگہ کے ساتھ، اوور ہیڈ تقریباً ایک اضافی فارورڈ پاس ہوتا ہے، اکثر 20-30% سست روی کے آس پاس۔

PyTorch میں، عام طور پر ماڈیول پر گریڈینٹ چیک پوائنٹ لگانے کے لیے کون سی افادیت استعمال ہوتی ہے؟

torch.utils.checkpoint ایک ماڈیول کو لپیٹتا ہے تاکہ اس کی اندرونی ایکٹیویشنز کو بیکورڈ کے دوران اسٹور کیے جانے کی بجائے دوبارہ شمار کیا جائے۔