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

ZeRO اور Sharded Optimizers

ZeRO (زیرو ریڈنڈینسی آپٹیمائزر) آپٹیمائزر سٹیٹ، گریڈیئنٹس، اور جی پی یوز میں وزن کو شارڈنگ کر کے ڈیٹا کے متوازی کی فضول میموری ڈپلیکیشن کو ختم کرتا ہے۔

جائزہ

ZeRO (زیرو ریڈنڈینسی آپٹیمائزر) آپٹیمائزر سٹیٹ، گریڈیئنٹس، اور جی پی یوز میں وزن کو شارڈنگ کر کے ڈیٹا کے متوازی کی فضول میموری ڈپلیکیشن کو ختم کرتا ہے۔ یہ آپ کو اعداد و شمار کے ہم آہنگی کی سادگی کے ساتھ بہت زیادہ ماڈلز کی تربیت دینے دیتا ہے لیکن فی GPU میموری کا ایک حصہ۔

ZeRO اور Sharded Optimizers ایک تکنیکی تعمیراتی بلاک ہے جو ماڈل کے معیار، بنیادی ڈھانچے کی لاگت، تاخیر اور پیمانے پر قابل اعتماد کو متاثر کرتا ہے۔

گہرا غوطہ

عام ڈیٹا کی ہم آہنگی میں، ہر GPU آپٹیمائزر سٹیٹ، گریڈیئنٹس، اور پیرامیٹرز کی ایک بے کار مکمل کاپی اسٹور کرتا ہے، جو کہ بہت زیادہ فضول ہے، خاص طور پر ایڈم کے لیے، جہاں آپٹیمائزر سٹیٹ خود ماڈل کے سائز سے کئی گنا زیادہ ہو سکتی ہے۔ ZeRO، جو ڈیپ اسپیڈ میں Microsoft کے ذریعے متعارف کرایا گیا ہے، ان ٹینسرز کو GPUs میں تقسیم کرکے اس فالتو پن کو دور کرتا ہے تاکہ ہر ڈیوائس کے پاس صرف ایک ٹکڑا ہو۔ ZeRO تین ترقی پسند مراحل میں آتا ہے: اسٹیج 1 شارڈز آپٹیمائزر اسٹیٹ، اسٹیج 2 گریڈینٹ شارڈنگ کا اضافہ کرتا ہے، اور اسٹیج 3 خود پیرامیٹرز کو شارڈ کرتا ہے۔ ضرورت کے مطابق، GPUs کمیونیکیشن، کمپیوٹ کے ذریعے گمشدہ ٹکڑوں کو جمع کرتے ہیں، پھر انہیں جاری کرتے ہیں۔ نتیجہ ڈرامائی طور پر کم میموری فی GPU ہے، جس سے ڈیٹا کی ہم آہنگی کے آسان پروگرامنگ ماڈل کو برقرار رکھتے ہوئے، ارب سے ٹریلین پیرامیٹر ٹریننگ کو قابل بنایا جاتا ہے۔

تکنیکی بصیرت

ZeRO میموری کی بچت کے لیے اضافی مواصلات کا کاروبار کرتا ہے۔ اسٹیج 3 میں، ایک پرت کے فارورڈ پاس سے پہلے، ایک آل گیدر اس پرت کے مکمل پیرامیٹرز کو ہر GPU پر جمع کرتا ہے۔ اس کے بعد میموری کو دوبارہ حاصل کرنے کے لیے غیر ملکیتی سلائسز کو ضائع کر دیا جاتا ہے۔ گریڈیئنٹس کم بکھرے ہوئے ہیں لہذا ہر GPU اپنے پیرامیٹرز سے مماثل صرف گریڈینٹ سلائس رکھتا ہے۔ PyTorch کا FSDP (Fully Sharded Data Parallel) اسی آئیڈیا کو مقامی طور پر لاگو کرتا ہے، ماڈیولز کو شارڈ میں لپیٹ کر فلائی پر دوبارہ شارڈ کرتا ہے۔

ZeRO اور Sharded Optimizers میں مہارت حاصل کرنا

ZeRO (زیرو ریڈنڈینسی آپٹیمائزر) آپٹیمائزر سٹیٹ، گریڈیئنٹس، اور جی پی یوز میں وزن کو شارڈنگ کر کے ڈیٹا کے متوازی کی فضول میموری ڈپلیکیشن کو ختم کرتا ہے۔ یہ آپ کو اعداد و شمار کے ہم آہنگی کی سادگی کے ساتھ بہت زیادہ ماڈلز کی تربیت دینے دیتا ہے لیکن فی GPU میموری کا ایک حصہ۔ ZeRO اور Sharded Optimizers ایک تکنیکی تعمیراتی بلاک ہے جو ماڈل کے معیار، بنیادی ڈھانچے کی لاگت، تاخیر اور پیمانے پر قابل اعتماد کو متاثر کرتا ہے۔ گہری تفہیم پیدا کرنے کے لیے، ZeRO اور Sharded Optimizers کو ایک آپریٹنگ ماڈل کے طور پر پیش کریں، نہ کہ ایک خصوصیت: مطلوبہ نتائج کی وضاحت کریں، مفروضوں کو واضح کریں، اور اس بات کو الگ کریں کہ سسٹم قابل اعتماد طریقے سے کیا کر سکتا ہے جس کے لیے ابھی بھی ماہرانہ فیصلے کی ضرورت ہے۔

عملی طور پر، ZeRO اور Sharded Optimizers استعمال کرنے والی مضبوط ٹیمیں قابل اعتماد اور لاگت کے خلاف فن تعمیر، ڈیٹا، اور بنیادی ڈھانچے کے انتخاب کو بہتر بناتی ہیں۔ وہ واضح کامیابی کے معیار کی دستاویز کرتے ہیں، حقیقت پسندانہ ڈیٹا اور ورک فلو کے خلاف جانچ کرتے ہیں، اور ایک بار کی بینچ مارک جیت کے بجائے مشاہدہ شدہ ناکامی کے نمونوں کی بنیاد پر اعادہ کرتے ہیں۔ یہ وہ جگہ ہے جہاں نظریاتی تفہیم مصنوعات، پالیسی اور آپریشنز میں پائیدار صلاحیت میں بدل جاتی ہے۔

فن تعمیر کے فیصلے سالوں تک کارکردگی اور آپریٹنگ لاگت کو آگے بڑھاتے ہیں۔ ایک ہی وقت میں، ایک بینچ مارک کو بہتر بنانا نظام کی وسیع تر کمزوریوں کو چھپا سکتا ہے۔ سب سے زیادہ لچکدار طریقہ یہ ہے کہ تجرباتی رفتار کو حکمرانی کے نظم و ضبط کے ساتھ ملایا جائے: پائلٹ چلائیں، شواہد حاصل کریں، فیصلے کے نوشتہ جات شائع کریں، اور ماڈل رویے، صارف کی توقعات، اور ریگولیٹری تقاضوں کے ارتقا کے ساتھ ساتھ حفاظتی اقدامات کو مسلسل اپ ڈیٹ کریں۔

اسٹریٹجک اثر

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

فن تعمیر کے فیصلے سالوں تک کارکردگی اور آپریٹنگ لاگت کو آگے بڑھاتے ہیں۔ اعلیٰ معیار کی تعیناتیوں میں، اس کا ترجمہ قابل پیمائش آپریٹنگ قواعد، ملکیت کی حدود، اور بار بار نظرثانی کی رسومات میں کیا جاتا ہے تاکہ ٹیمیں ابہام کو بڑھانے کے بجائے اعتماد کو بڑھا سکیں۔

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

تکنیکی تعلیم ٹیموں کو صحیح اسٹیک منتخب کرنے میں مدد کرتی ہے، نہ صرف جدید ترین۔ اعلیٰ معیار کی تعیناتیوں میں، اس کا ترجمہ قابل پیمائش آپریٹنگ قواعد، ملکیت کی حدود، اور بار بار نظرثانی کی رسومات میں کیا جاتا ہے تاکہ ٹیمیں ابہام کو بڑھانے کے بجائے اعتماد کو بڑھا سکیں۔

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

انجینئرنگ کے بہتر انتخاب پیداوار میں قابل اعتماد واقعات کو کم کرتے ہیں۔ اعلیٰ معیار کی تعیناتیوں میں، اس کا ترجمہ قابل پیمائش آپریٹنگ قواعد، ملکیت کی حدود، اور بار بار نظرثانی کی رسومات میں کیا جاتا ہے تاکہ ٹیمیں ابہام کو بڑھانے کے بجائے اعتماد کو بڑھا سکیں۔

زیرو اور شارڈڈ آپٹیمائزرز کا مستقبل

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

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

ڈیپ اسپیڈ زیرو اسٹیج 2 کا استعمال ایک ملٹی بلین پیرامیٹر لینگویج ماڈل کو ٹھیک کرنے کے لیے جو دوسری صورت میں GPU میموری کو اوور فلو کر دے گا۔

PyTorch FSDP کے ساتھ تربیت، جو تمام GPUs میں پیرامیٹرز، گریڈیئنٹس، اور آپٹیمائزر کی حالت کو شارڈ کرتا ہے اور طلب کے مطابق انہیں فی پرت جمع کرتا ہے۔

CPU میموری پر آپٹیمائزر کی حالت کو آگے بڑھانے کے لیے ZeRO-Offload کا اطلاق کرنا، ایک واحد GPU کو اس کے VRAM سے کئی گنا بڑے ماڈل کو تربیت دینے دیتا ہے۔

GPU اور CPU میموری ختم ہونے پر NVMe اسٹوریج سے پیرامیٹر شارڈز کو اسٹریم کرکے ZeRO-Infinity کے ساتھ ٹریلین پیرامیٹر ماڈل کو اسکیل کرنا۔

نفاذ کے پیٹرنز

عملی طور پر ZeRO اور Sharded Optimizers

ڈیپ اسپیڈ زیرو اسٹیج 2 کا استعمال ایک ملٹی بلین پیرامیٹر لینگویج ماڈل کو ٹھیک کرنے کے لیے جو دوسری صورت میں GPU میموری کو اوور فلو کر دے گا۔

ڈیپ اسپیڈ زیرو اسٹیج 2 کا استعمال کرتے ہوئے ایک ملٹی بلین پیرامیٹر لینگویج ماڈل کو ٹھیک کرنے کے لیے جو بصورت دیگر GPU میموری ٹیموں کو اوور فلو کرے گا تو عام طور پر اس وقت بہتر نتائج حاصل کرتے ہیں جب وہ سامنے کی کوالٹی تھریشولڈز کی وضاحت کرتے ہیں، کنارے کے معاملات کے لیے انسانی ترقی کا راستہ رکھتے ہیں، اور وقت کے ساتھ ساتھ پیداواری فوائد اور غلطی کے اخراجات دونوں کو ٹریک کرتے ہیں۔

عملی طور پر ZeRO اور Sharded Optimizers

PyTorch FSDP کے ساتھ تربیت، جو تمام GPUs میں پیرامیٹرز، گریڈیئنٹس، اور آپٹیمائزر کی حالت کو شارڈ کرتا ہے اور طلب کے مطابق انہیں فی پرت جمع کرتا ہے۔

PyTorch FSDP کے ساتھ تربیت، جو جی پی یوز میں پیرامیٹرز، گریڈیئنٹس، اور آپٹیمائزر کی حالت کو شارڈ کرتی ہے اور انہیں ڈیمانڈ پر فی پرت جمع کرتی ہے، ٹیمیں عام طور پر اس وقت بہتر نتائج حاصل کرتی ہیں جب وہ کوالٹی تھریش ہولڈ کو سامنے رکھتے ہیں، ایج کیسز کے لیے انسانی ترقی کا راستہ رکھتے ہیں، اور وقت کے ساتھ ساتھ پیداواری فوائد اور غلطی کے اخراجات دونوں کو ٹریک کرتے ہیں۔

عملی طور پر ZeRO اور Sharded Optimizers

CPU میموری پر آپٹیمائزر کی حالت کو آگے بڑھانے کے لیے ZeRO-Offload کا اطلاق کرنا، ایک واحد GPU کو اس کے VRAM سے کئی گنا بڑے ماڈل کو تربیت دینے دیتا ہے۔

CPU میموری پر آپٹیمائزر اسٹیٹ کو آگے بڑھانے کے لیے ZeRO-Offload کا اطلاق کرنا، ایک واحد GPU کو اس کی VRAM ٹیموں سے کئی گنا بڑے ماڈل کو تربیت دینے دینا، عام طور پر اس وقت بہتر نتائج حاصل کرتے ہیں جب وہ سامنے کے معیار کی حد کو متعین کرتے ہیں، کنارے کے معاملات کے لیے انسانی ترقی کا راستہ رکھتے ہیں، اور وقت کے ساتھ ساتھ پیداواری فوائد اور غلطی کے اخراجات دونوں کو ٹریک کرتے ہیں۔

عملی طور پر ZeRO اور Sharded Optimizers

GPU اور CPU میموری ختم ہونے پر NVMe اسٹوریج سے پیرامیٹر شارڈز کو اسٹریم کرکے ZeRO-Infinity کے ساتھ ٹریلین پیرامیٹر ماڈل کو اسکیل کرنا۔

NVMe سٹوریج سے پیرامیٹر شارڈز کو سٹریم کر کے ZeRO-Infinity کے ساتھ ایک ٹریلین پیرامیٹر ماڈل کو سکیل کرنا جب GPU اور CPU میموری ختم ہو جاتی ہے تو ٹیمیں عام طور پر بہتر نتائج حاصل کرتی ہیں جب وہ کوالٹی تھریش ہولڈ کو سامنے رکھتے ہیں، ایج کیسز کے لیے انسانی ترقی کا راستہ رکھتے ہیں، اور وقت کے ساتھ ساتھ پیداواری فوائد اور غلطی کے اخراجات دونوں کو ٹریک کرتے ہیں۔

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

!

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

!

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

!

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

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

1

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

نفاذ سے پہلے تاخیر، معیار اور لاگت کے اہداف کی وضاحت کریں۔ ہر قدم کو ثبوت کے دروازے کے طور پر دیکھیں: اگر معیار پر پورا نہیں اترتے ہیں، تو رول آؤٹ کو روک دیں، خلا کو بند کریں، اور تب ہی استعمال کو بڑھا دیں۔

2

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

حقیقت پسندانہ بوجھ اور ڈیٹا کی شرائط کے تحت بینچ مارک۔ ہر قدم کو ثبوت کے دروازے کے طور پر دیکھیں: اگر معیار پر پورا نہیں اترتے ہیں، تو رول آؤٹ کو روک دیں، خلا کو بند کریں، اور تب ہی استعمال کو بڑھا دیں۔

3

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

غلطیوں، بڑھے ہوئے، اور صارف کے اثرات کے لیے آلے کی نگرانی۔ ہر قدم کو ثبوت کے دروازے کے طور پر دیکھیں: اگر معیار پر پورا نہیں اترتے ہیں، تو رول آؤٹ کو روک دیں، خلا کو بند کریں، اور تب ہی استعمال کو بڑھا دیں۔

4

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

اسکیلنگ سے پہلے رول بیک اور واقعہ کے ردعمل کے راستے تیار کریں۔ ہر قدم کو ثبوت کے دروازے کے طور پر دیکھیں: اگر معیار پر پورا نہیں اترتے ہیں، تو رول آؤٹ کو روک دیں، خلا کو بند کریں، اور تب ہی استعمال کو بڑھا دیں۔

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