یہ ایک مہمان پوسٹ ہے جو میٹا کی PyTorch ٹیم کے ساتھ مل کر لکھی گئی ہے اور اس کا تسلسل ہے۔ حصہ 1 اس سیریز کے، جہاں ہم AWS پر PyTorch 2.0 چلانے کی کارکردگی اور آسانی کا مظاہرہ کرتے ہیں۔
مشین لرننگ (ML) کی تحقیق نے ثابت کیا ہے کہ بڑے لینگویج ماڈل (LLMs) کو نمایاں طور پر بڑے ڈیٹاسیٹس کے ساتھ تربیت یافتہ ماڈل کے معیار کو بہتر بناتا ہے۔ گزشتہ چند سالوں میں، موجودہ نسل کے ماڈلز کے سائز میں نمایاں اضافہ ہوا ہے، اور ان کے لیے جدید آلات اور بنیادی ڈھانچے کی ضرورت ہوتی ہے تاکہ اسے موثر اور پیمانے پر تربیت دی جائے۔ PyTorch Distributed Data Parallelism (DDP) ڈیٹا کو پیمانے پر سادہ اور مضبوط انداز میں پروسیس کرنے میں مدد کرتا ہے، لیکن اس کے لیے ماڈل کا ایک GPU پر فٹ ہونے کی ضرورت ہوتی ہے۔ PyTorch Fullly Sharded Data Parallel (FSDP) لائبریری ڈیٹا کے متوازی کارکنوں میں بڑے ماڈلز کو تربیت دینے کے لیے ماڈل شارڈنگ کو فعال کر کے اس رکاوٹ کو توڑتی ہے۔
تقسیم شدہ ماڈل ٹریننگ کے لیے ورکر نوڈس کے ایک جھرمٹ کی ضرورت ہوتی ہے جو اسکیل کر سکتے ہیں۔ ایمیزون لچکدار کبیرنیٹس سروس (Amazon EKS) ایک مقبول Kubernetes-conformant سروس ہے جو AI/ML ورک بوجھ کو چلانے کے عمل کو بہت آسان بناتی ہے، جس سے یہ زیادہ قابل انتظام اور کم وقت لگتا ہے۔
اس بلاگ پوسٹ میں، AWS نے Meta کی PyTorch ٹیم کے ساتھ اس بات پر تبادلہ خیال کیا ہے کہ PyTorch FSDP لائبریری کو AWS پر بغیر کسی رکاوٹ کے Amazon EKS کا استعمال کرتے ہوئے ڈیپ لرننگ ماڈلز کی لکیری اسکیلنگ حاصل کرنے کے لیے کیسے استعمال کیا جائے۔ AWS ڈیپ لرننگ کنٹینرز (DLCs)۔ ہم 7 کے ساتھ Amazon EKS کا استعمال کرتے ہوئے ٹریننگ 13B، 70B، اور 2B Llama16 ماڈلز کے مرحلہ وار نفاذ کے ذریعے اس کا مظاہرہ کرتے ہیں۔ ایمیزون لچکدار کمپیوٹ کلاؤڈ (ایمیزون ای سی 2) p4de.24xlarge مثالیں (ہر ایک 8 NVIDIA A100 Tensor Core GPUs کے ساتھ اور ہر GPU 80 GB HBM2e میموری کے ساتھ) یا 16 EC2 p5.48x بڑا مثالیں (ہر ایک 8 NVIDIA H100 Tensor Core GPUs کے ساتھ اور ہر GPU 80 GB HBM3 میموری کے ساتھ)، تھرو پٹ میں قریب لکیری اسکیلنگ کو حاصل کرنا اور بالآخر تیز تر تربیتی وقت کو فعال کرنا۔
درج ذیل اسکیلنگ چارٹ سے پتہ چلتا ہے کہ p5.48x بڑی مثالیں 87 نوڈ کلسٹر کنفیگریشن میں FSDP Llama2 فائن ٹیوننگ کے ساتھ 16% اسکیلنگ کی کارکردگی پیش کرتی ہیں۔
ایل ایل ایم کی تربیت کے چیلنجز
مختلف قسم کے ایپلی کیشنز میں کارکردگی اور درستگی کو بڑھانے کے لیے کاروبار تیزی سے مختلف کاموں کے لیے LLMs کو اپنا رہے ہیں، جن میں ورچوئل اسسٹنٹس، ترجمہ، مواد کی تخلیق، اور کمپیوٹر ویژن شامل ہیں۔
تاہم، حسب ضرورت استعمال کے کیس کے لیے ان بڑے ماڈلز کو تربیت دینے یا ٹھیک کرنے کے لیے بہت زیادہ ڈیٹا اور کمپیوٹ پاور کی ضرورت ہوتی ہے، جو ایم ایل اسٹیک کی مجموعی انجینئرنگ پیچیدگی میں اضافہ کرتی ہے۔ یہ ایک واحد GPU پر دستیاب محدود میموری کی وجہ سے بھی ہے، جو اس ماڈل کے سائز کو محدود کرتا ہے جسے تربیت دی جا سکتی ہے، اور تربیت کے دوران استعمال ہونے والے فی GPU بیچ کے سائز کو بھی محدود کرتی ہے۔
اس چیلنج سے نمٹنے کے لیے مختلف ماڈل متوازی تکنیکیں جیسے ڈیپ اسپیڈ زیرو اور PyTorch FSDP آپ کو محدود GPU میموری کی اس رکاوٹ کو دور کرنے کی اجازت دینے کے لیے بنایا گیا تھا۔ یہ ایک شارڈڈ ڈیٹا متوازی تکنیک کو اپنا کر کیا جاتا ہے، جہاں ہر ایکسلریٹر میں صرف ایک ٹکڑا ہوتا ہے (a شارڈ) پورے ماڈل کی نقل کی بجائے ایک ماڈل کی نقل کی، جو تربیتی کام کی یادداشت کے اثرات کو ڈرامائی طور پر کم کرتی ہے۔
یہ پوسٹ ظاہر کرتی ہے کہ آپ ایمیزون EKS کا استعمال کرتے ہوئے Llama2 ماڈل کو ٹھیک کرنے کے لیے PyTorch FSDP کا استعمال کیسے کر سکتے ہیں۔ ہم اسے ماڈل کی ضروریات کو پورا کرنے کے لیے کمپیوٹ اور GPU کی صلاحیت کو بڑھا کر حاصل کرتے ہیں۔
FSDP کا جائزہ
PyTorch DDP ٹریننگ میں، ہر GPU (کہا جاتا ہے a کارکن PyTorch کے تناظر میں) ماڈل کی ایک مکمل کاپی رکھتا ہے، بشمول ماڈل کے وزن، گریڈیئنٹس، اور آپٹیمائزر سٹیٹس۔ ہر کارکن ڈیٹا کے ایک بیچ پر کارروائی کرتا ہے اور، پسماندہ پاس کے اختتام پر، ایک استعمال کرتا ہے۔ تمام کم مختلف کارکنوں میں گریڈیئنٹس کو ہم آہنگ کرنے کے لیے آپریشن۔
ہر GPU پر ماڈل کی نقل رکھنے سے ماڈل کے سائز کو محدود کر دیا جاتا ہے جسے DDP ورک فلو میں ایڈجسٹ کیا جا سکتا ہے۔ FSDP ماڈل پیرامیٹرز، آپٹیمائزر سٹیٹس، اور ڈیٹا کے متوازی کارکنوں میں گریڈیئنٹس کو شارڈنگ کر کے اس حد پر قابو پانے میں مدد کرتا ہے جبکہ ڈیٹا کے ہم آہنگی کی سادگی کو بھی برقرار رکھتا ہے۔
اس کا مظاہرہ مندرجہ ذیل خاکہ میں کیا گیا ہے، جہاں DDP کے معاملے میں، ہر GPU کے پاس ماڈل اسٹیٹ کی مکمل کاپی ہوتی ہے، بشمول آپٹیمائزر اسٹیٹ (OS)، گریڈیئنٹس (G)، اور پیرامیٹرز (P): M(OS + G) + پی)۔ FSDP میں، ہر GPU ماڈل سٹیٹ کا صرف ایک ٹکڑا رکھتا ہے، بشمول آپٹیمائزر سٹیٹ (OS)، گریڈیئنٹس (G)، اور پیرامیٹرز (P): M (OS + G + P)۔ FSDP کے استعمال کے نتیجے میں تمام کارکنوں میں DDP کے مقابلے میں نمایاں طور پر چھوٹا GPU میموری فوٹ پرنٹ ہوتا ہے، بہت بڑے ماڈلز کی تربیت کو فعال کرنا یا تربیتی ملازمتوں کے لیے بڑے بیچ سائز کا استعمال کرنا۔
تاہم، یہ کمیونیکیشن اوور ہیڈ کی بڑھتی ہوئی قیمت پر آتا ہے، جسے FSDP آپٹیمائزیشن کے ذریعے کم کیا جاتا ہے جیسے کہ اوور لیپنگ کمیونیکیشن اور کمپیوٹیشن کے عمل جیسے خصوصیات کے ساتھ پیشگی بازیافت. مزید تفصیلی معلومات کے لیے رجوع کریں۔ مکمل طور پر مشترکہ ڈیٹا متوازی (FSDP) کے ساتھ شروع کرنا.
FSDP مختلف پیرامیٹرز پیش کرتا ہے جو آپ کو اپنی تربیتی ملازمتوں کی کارکردگی اور کارکردگی کو ٹیون کرنے کی اجازت دیتا ہے۔ FSDP کی کچھ اہم خصوصیات اور صلاحیتوں میں شامل ہیں:
- ٹرانسفارمر ریپنگ پالیسی
- لچکدار مخلوط صحت سے متعلق
- ایکٹیویشن چیک پوائنٹ
- مختلف نیٹ ورک کی رفتار اور کلسٹر ٹوپولاجی کے مطابق شارڈنگ کی مختلف حکمت عملی:
- FULL_SHARD - شارڈ ماڈل پیرامیٹرز، گریڈیئنٹس، اور آپٹیمائزر اسٹیٹس
- HYBRID_SHARD - نوڈس میں ایک نوڈ DDP کے اندر مکمل شارڈ؛ ماڈل (HSDP) کی مکمل نقل کے لیے لچکدار شارڈنگ گروپ کی حمایت کرتا ہے۔
- SHARD_GRAD_OP - شارڈ صرف گریڈیئنٹس اور آپٹیمائزر اسٹیٹس
- NO_SHARD - ڈی ڈی پی کی طرح
FSDP کے بارے میں مزید معلومات کے لیے، رجوع کریں۔ Pytorch FSDP اور AWS کے ساتھ موثر بڑے پیمانے پر تربیت.
درج ذیل اعداد و شمار سے پتہ چلتا ہے کہ FSDP دو ڈیٹا متوازی عمل کے لیے کیسے کام کرتا ہے۔
حل جائزہ
اس پوسٹ میں، ہم نے Amazon EKS کا استعمال کرتے ہوئے ایک کمپیوٹ کلسٹر قائم کیا، جو AWS کلاؤڈ اور آن پریمیسس ڈیٹا سینٹرز میں Kubernetes کو چلانے کے لیے ایک منظم سروس ہے۔ بہت سے گاہک Kubernetes پر مبنی AI/ML ورک لوڈز کو چلانے کے لیے Amazon EKS کو اپنا رہے ہیں، اس کی کارکردگی، اسکیل ایبلٹی، وشوسنییتا، اور دستیابی کے ساتھ ساتھ AWS نیٹ ورکنگ، سیکیورٹی اور دیگر خدمات کے ساتھ اس کے انضمام سے فائدہ اٹھا رہے ہیں۔
ہمارے FSDP استعمال کیس کے لیے، ہم استعمال کرتے ہیں۔ کیوب فلو ٹریننگ آپریٹر Amazon EKS پر، جو ایک Kubernetes-آبائی پروجیکٹ ہے جو ML ماڈلز کے لیے فائن ٹیوننگ اور اسکیل ایبل تقسیم شدہ تربیت کی سہولت فراہم کرتا ہے۔ یہ مختلف ML فریم ورکس کو سپورٹ کرتا ہے، بشمول PyTorch، جسے آپ PyTorch ٹریننگ جابز کو پیمانے پر تعینات اور ان کا نظم کرنے کے لیے استعمال کر سکتے ہیں۔
Kubeflow ٹریننگ آپریٹر کے PyTorchJob کسٹم وسیلہ کو استعمال کرتے ہوئے، ہم Kubernetes پر ورکر ریپلیکس کی قابل ترتیب تعداد کے ساتھ تربیتی جابز چلاتے ہیں جو ہمیں وسائل کے استعمال کو بہتر بنانے کی اجازت دیتا ہے۔
ذیل میں ٹریننگ آپریٹر کے چند اجزاء ہیں جو ہمارے Llama2 فائن ٹیوننگ کے استعمال کے معاملے میں کردار ادا کرتے ہیں:
- ایک سنٹرلائزڈ Kubernetes کنٹرولر جو PyTorch کے لیے تربیتی ملازمتوں کو تقسیم کرتا ہے۔
- PyTorchJob، PyTorch کے لیے Kubernetes کا ایک حسب ضرورت وسیلہ، جو Kubeflow ٹریننگ آپریٹر کے ذریعے فراہم کیا گیا ہے، تاکہ Kubernetes پر Llama2 تربیتی ملازمتوں کی وضاحت اور تعیناتی کی جا سکے۔
- etcd، جو PyTorch ماڈلز کی تقسیم شدہ تربیت کو مربوط کرنے کے لیے ملاقات کے طریقہ کار کے نفاذ سے متعلق ہے۔ یہ
etcd
سرور، ملاقات کے عمل کے ایک حصے کے طور پر، تقسیم شدہ تربیت کے دوران حصہ لینے والے کارکنوں کے ہم آہنگی اور ہم آہنگی کی سہولت فراہم کرتا ہے۔
مندرجہ ذیل خاکہ حل کے فن تعمیر کی وضاحت کرتا ہے۔
زیادہ تر تفصیلات آٹومیشن اسکرپٹس کے ذریعہ خلاصہ کی جائیں گی جو ہم Llama2 مثال کو چلانے کے لئے استعمال کرتے ہیں۔
ہم اس استعمال کے معاملے میں درج ذیل کوڈ حوالہ جات استعمال کرتے ہیں:
Llama2 کیا ہے؟
Llama2 متن اور کوڈ کے 2 ٹریلین ٹوکنز پر پہلے سے تربیت یافتہ LLM ہے۔ یہ آج دستیاب سب سے بڑے اور سب سے زیادہ طاقتور LLMs میں سے ایک ہے آپ Llama2 کو مختلف کاموں کے لیے استعمال کر سکتے ہیں، بشمول نیچرل لینگویج پروسیسنگ (NLP)، ٹیکسٹ جنریشن، اور ترجمہ۔ مزید معلومات کے لیے رجوع کریں۔ لاما کے ساتھ شروع کرنا.
Llama2 تین مختلف ماڈل سائز میں دستیاب ہے:
- Llama2-70b - یہ 2 بلین پیرامیٹرز کے ساتھ Llama70 کا سب سے بڑا ماڈل ہے۔ یہ سب سے طاقتور Llama2 ماڈل ہے اور اسے انتہائی ضروری کاموں کے لیے استعمال کیا جا سکتا ہے۔
- Llama2-13b - یہ ایک درمیانے سائز کا Llama2 ماڈل ہے، جس میں 13 بلین پیرامیٹرز ہیں۔ یہ کارکردگی اور کارکردگی کے درمیان ایک اچھا توازن ہے، اور اسے مختلف کاموں کے لیے استعمال کیا جا سکتا ہے۔
- Llama2-7b - یہ سب سے چھوٹا Llama2 ماڈل ہے، جس میں 7 بلین پیرامیٹرز ہیں۔ یہ سب سے زیادہ موثر Llama2 ماڈل ہے، اور اسے ایسے کاموں کے لیے استعمال کیا جا سکتا ہے جن کے لیے اعلیٰ سطح کی کارکردگی کی ضرورت نہیں ہے۔
یہ پوسٹ آپ کو ایمیزون ای کے ایس پر ان تمام ماڈلز کو ٹھیک کرنے کے قابل بناتی ہے۔ EKS کلسٹر بنانے اور اس پر FSDP جابز چلانے کا ایک سادہ اور قابل تولید تجربہ فراہم کرنے کے لیے، ہم استعمال کرتے ہیں aws-do-eks پروجیکٹ مثال پہلے سے موجود EKS کلسٹر کے ساتھ بھی کام کرے گی۔
ایک اسکرپٹڈ واک تھرو دستیاب ہے۔ GitHub کے باکس سے باہر کے تجربے کے لیے۔ درج ذیل حصوں میں، ہم آخر سے آخر تک کے عمل کی مزید تفصیل سے وضاحت کرتے ہیں۔
حل کے بنیادی ڈھانچے کی فراہمی
اس پوسٹ میں بیان کردہ تجربات کے لیے، ہم p4de (A100 GPU) اور p5 (H100 GPU) نوڈس والے کلسٹرز استعمال کرتے ہیں۔
p4de.24xlarge نوڈس کے ساتھ کلسٹر
p4de نوڈس کے ساتھ ہمارے کلسٹر کے لیے، ہم درج ذیل استعمال کرتے ہیں۔ eks-gpu-p4de-odcr.yaml سکرپٹ:
کا استعمال کرتے ہوئے eksctl اور پچھلے کلسٹر مینی فیسٹ میں، ہم p4de نوڈس کے ساتھ ایک کلسٹر بناتے ہیں:
p5.48x بڑے نوڈس کے ساتھ کلسٹر
P5 نوڈس کے ساتھ EKS کلسٹر کے لیے ایک ٹیرافارم ٹیمپلیٹ درج ذیل میں واقع ہے۔ GitHub repo.
آپ کے ذریعے کلسٹر کو اپنی مرضی کے مطابق بنا سکتے ہیں۔ variables.tf فائل بنائیں اور پھر اسے Terraform CLI کے ذریعے بنائیں:
آپ ایک سادہ kubectl کمانڈ چلا کر کلسٹر کی دستیابی کی تصدیق کر سکتے ہیں:
کلسٹر صحت مند ہے اگر اس کمانڈ کا آؤٹ پٹ تیار حالت میں نوڈس کی متوقع تعداد کو ظاہر کرتا ہے۔
لازمی شرائط تعینات کریں۔
Amazon EKS پر FSDP چلانے کے لیے، ہم استعمال کرتے ہیں۔ پی ٹارچ جاب اپنی مرضی کے وسائل. یہ ضرورت ہے وغیرہ اور کیوب فلو ٹریننگ آپریٹر شرط کے طور پر.
وغیرہ کو درج ذیل کوڈ کے ساتھ تعینات کریں:
درج ذیل کوڈ کے ساتھ Kubeflow ٹریننگ آپریٹر تعینات کریں:
FSDP کنٹینر امیج بنائیں اور Amazon ECR پر پش کریں۔
FSDP کنٹینر کی تصویر بنانے کے لیے درج ذیل کوڈ کا استعمال کریں اور اسے آگے بڑھائیں۔ ایمیزون لچکدار کنٹینر رجسٹری (ایمیزون ای سی آر):
FSDP PyTorchJob مینی فیسٹ بنائیں
اپنا داخل کریں گلے ملتے ہوئے چہرے کا ٹوکن اسے چلانے سے پہلے درج ذیل ٹکڑوں میں:
اپنے PyTorchJob کو اس کے ساتھ ترتیب دیں۔ .env فائل یا براہ راست آپ کے ماحولیاتی متغیرات میں ذیل میں:
کا استعمال کرتے ہوئے PyTorchJob مینی فیسٹ تیار کریں۔ fsdp ٹیمپلیٹ اور generate.sh اسکرپٹ یا اسے براہ راست نیچے اسکرپٹ کا استعمال کرتے ہوئے بنائیں:
PyTorchJob چلائیں۔
PyTorchJob کو درج ذیل کوڈ کے ساتھ چلائیں:
آپ FDSP ورکر پوڈز کی مخصوص تعداد کو تخلیق شدہ دیکھیں گے اور، تصویر کھینچنے کے بعد، وہ چلتی حالت میں داخل ہو جائیں گے۔
PyTorchJob کی حیثیت دیکھنے کے لیے، درج ذیل کوڈ کا استعمال کریں:
PyTorchJob کو روکنے کے لیے درج ذیل کوڈ کا استعمال کریں:
کسی کام کے مکمل ہونے کے بعد، اسے نئی دوڑ شروع کرنے سے پہلے حذف کرنے کی ضرورت ہے۔ ہم نے یہ بھی دیکھا ہے کہ حذف کرناetcd
pod اور نئی نوکری شروع کرنے سے پہلے اسے دوبارہ شروع کرنے دینا a سے بچنے میں مدد کرتا ہے۔ RendezvousClosedError
.
کلسٹر کی پیمائش کریں۔
آپ کلسٹر میں ورکر نوڈس کی تعداد اور مثال کی قسم کو مختلف کرتے ہوئے جابز بنانے اور چلانے کے پچھلے مراحل کو دہرا سکتے ہیں۔ یہ آپ کو اسکیلنگ چارٹ تیار کرنے کے قابل بناتا ہے جیسا کہ پہلے دکھایا گیا تھا۔ عام طور پر، آپ کو GPU میموری فوٹ پرنٹ میں کمی، ایپوک ٹائم میں کمی، اور جب کلسٹر میں مزید نوڈس شامل کیے جاتے ہیں تو تھرو پٹ میں اضافہ دیکھنا چاہیے۔ پچھلا چارٹ p5 نوڈ گروپ کا استعمال کرتے ہوئے متعدد تجربات کر کے تیار کیا گیا تھا جس کا سائز 1-16 نوڈس سے مختلف تھا۔
FSDP تربیتی کام کے بوجھ کا مشاہدہ کریں۔
تخلیقی مصنوعی ذہانت کے کام کے بوجھ کا مشاہدہ آپ کی چل رہی ملازمتوں میں مرئیت کی اجازت دینے کے ساتھ ساتھ آپ کے کمپیوٹ وسائل کے زیادہ سے زیادہ استعمال میں مدد دینے کے لیے اہم ہے۔ اس پوسٹ میں، ہم اس مقصد کے لیے کچھ Kubernetes-آبائی اور اوپن سورس آبزرویبلٹی ٹولز استعمال کرتے ہیں۔ یہ ٹولز آپ کو غلطیوں، اعدادوشمار اور ماڈل کے رویے کو ٹریک کرنے کے قابل بناتے ہیں، جس سے AI مشاہدے کو کسی بھی کاروباری استعمال کے معاملے کا ایک اہم حصہ بناتا ہے۔ اس سیکشن میں، ہم FSDP کی تربیتی ملازمتوں کے مشاہدے کے لیے مختلف طریقے دکھاتے ہیں۔
ورکر پوڈ لاگ
سب سے بنیادی سطح پر، آپ کو اپنے تربیتی پوڈز کے لاگز دیکھنے کے قابل ہونے کی ضرورت ہے۔ یہ آسانی سے Kubernetes-native کمانڈز کا استعمال کر کے کیا جا سکتا ہے۔
سب سے پہلے، پوڈز کی فہرست بازیافت کریں اور اس کا نام تلاش کریں جس کے لیے آپ لاگ دیکھنا چاہتے ہیں:
پھر منتخب پوڈ کے نوشتہ جات دیکھیں:
صرف ایک کارکن (منتخب لیڈر) پوڈ لاگ میں ملازمت کے مجموعی اعدادوشمار درج ہوں گے۔ منتخب لیڈر پوڈ کا نام ہر ورکر پوڈ لاگ کے شروع میں دستیاب ہوتا ہے، جس کی شناخت کلید سے ہوتی ہے۔ master_addr=
.
سی پی یو استعمال۔
تقسیم شدہ تربیتی کام کا بوجھ CPU اور GPU دونوں وسائل کی ضرورت ہے۔ ان کام کے بوجھ کو بہتر بنانے کے لیے، یہ سمجھنا ضروری ہے کہ ان وسائل کو کس طرح استعمال کیا جاتا ہے۔ خوش قسمتی سے، کچھ زبردست اوپن سورس یوٹیلیٹیز دستیاب ہیں جو سی پی یو اور جی پی یو کے استعمال کو دیکھنے میں مدد کرتی ہیں۔ سی پی یو کے استعمال کو دیکھنے کے لیے، آپ استعمال کر سکتے ہیں۔htop
. اگر آپ کے ورکر پوڈ میں یہ یوٹیلیٹی موجود ہے، تو آپ نیچے دی گئی کمانڈ کو پوڈ میں شیل کھولنے اور پھر چلانے کے لیے استعمال کر سکتے ہیں۔htop
.
متبادل طور پر، آپ ایک htop کو تعینات کر سکتے ہیں۔daemonset
جیسا کہ درج ذیل میں دیا گیا ہے۔ GitHub repo.
۔daemonset
ہر نوڈ پر ہلکا پھلکا htop پوڈ چلائے گا۔ آپ ان میں سے کسی بھی پوڈ کو چلا سکتے ہیں اور چلا سکتے ہیں۔htop
کمانڈ:
درج ذیل اسکرین شاٹ کلسٹر میں نوڈس میں سے ایک پر CPU کے استعمال کو دکھاتا ہے۔ اس صورت میں، ہم ایک P5.48xlarge مثال دیکھ رہے ہیں، جس میں 192 vCPUs ہیں۔ ماڈل کے وزن کے ڈاؤن لوڈ ہونے کے دوران پروسیسر کور بیکار ہیں، اور ہم استعمال میں اضافہ دیکھتے ہیں جب کہ ماڈل کے وزن کو GPU میموری پر لوڈ کیا جا رہا ہے۔
GPU کا استعمال
اگرnvtop
یوٹیلیٹی آپ کے پوڈ میں دستیاب ہے، آپ نیچے کا استعمال کرتے ہوئے اس میں عمل کر سکتے ہیں اور پھر چلا سکتے ہیں۔nvtop
.
متبادل طور پر، آپ ایک nvtop تعینات کر سکتے ہیں۔daemonset
جیسا کہ درج ذیل میں دیا گیا ہے۔ GitHub repo.
یہ چلائے گا anvtop
ہر نوڈ پر پوڈ. آپ ان میں سے کسی بھی پوڈ کو چلا سکتے ہیں اور چلا سکتے ہیں۔nvtop
:
مندرجہ ذیل اسکرین شاٹ ٹریننگ کلسٹر میں سے ایک نوڈس پر GPU کا استعمال دکھاتا ہے۔ اس معاملے میں، ہم ایک P5.48x بڑا مثال دیکھ رہے ہیں، جس میں 8 NVIDIA H100 GPUs ہیں۔ ماڈل کے وزن کے ڈاؤن لوڈ ہونے کے دوران GPUs بیکار رہتے ہیں، پھر GPU میموری کا استعمال بڑھ جاتا ہے کیونکہ ماڈل کے وزن GPU پر لوڈ ہوتے ہیں، اور GPU کا استعمال 100% تک بڑھ جاتا ہے جب کہ تربیتی تکرار جاری ہے۔
گرافانا ڈیش بورڈ
اب جب کہ آپ سمجھ گئے ہیں کہ آپ کا سسٹم پوڈ اور نوڈ لیول پر کیسے کام کرتا ہے، تو کلسٹر لیول پر میٹرکس کو دیکھنا بھی ضروری ہے۔ مجموعی استعمال کی پیمائشیں NVIDIA DCGM برآمد کنندہ اور Prometheus کے ذریعہ جمع کی جا سکتی ہیں اور گرافانا میں تصور کی جا سکتی ہیں۔
Prometheus-Grafana کی تعیناتی کی ایک مثال درج ذیل میں دستیاب ہے۔ GitHub repo.
DCGM برآمد کنندگان کی تعیناتی کی ایک مثال درج ذیل میں دستیاب ہے۔ GitHub repo.
درج ذیل اسکرین شاٹ میں ایک سادہ گرافانا ڈیش بورڈ دکھایا گیا ہے۔ اسے درج ذیل DCGM میٹرکس کو منتخب کرکے بنایا گیا تھا: DCGM_FI_DEV_GPU_UTIL
, DCGM_FI_MEM_COPY_UTIL
, DCGM_FI_DEV_XID_ERRORS
, DCGM_FI_DEV_SM_CLOCK
, DCGM_FI_DEV_GPU_TEMP
، اور DCGM_FI_DEV_POWER_USAGE
. ڈیش بورڈ کو Prometheus میں درآمد کیا جا سکتا ہے۔ GitHub کے.
مندرجہ ذیل ڈیش بورڈ Llama2 7b سنگل ایپوک ٹریننگ جاب کا ایک رن دکھاتا ہے۔ گراف دکھاتے ہیں کہ جیسے جیسے سٹریمنگ ملٹی پروسیسر (SM) گھڑی بڑھتی ہے، GPU اور میموری کے استعمال کے ساتھ ساتھ GPUs کا پاور ڈرا اور درجہ حرارت بھی بڑھتا ہے۔ آپ یہ بھی دیکھ سکتے ہیں کہ XID کی کوئی خرابیاں نہیں تھیں اور اس رن کے دوران GPUs صحت مند تھے۔
مارچ 2024 سے EKS کے لیے GPU آبزرویبلٹی کو مقامی طور پر تعاون حاصل ہے۔ CloudWatch کنٹینر کی بصیرتیں۔. اس فعالیت کو فعال کرنے کے لیے صرف اپنے EKS کلسٹر میں CloudWatch آبزرویبلٹی ایڈ آن کو تعینات کریں۔ پھر آپ کنٹینر انسائٹس میں پہلے سے ترتیب شدہ اور حسب ضرورت ڈیش بورڈز کے ذریعے پوڈ، نوڈ، اور کلسٹر لیول میٹرکس کو براؤز کرنے کے قابل ہو جائیں گے۔
صاف کرو
اگر آپ نے اس بلاگ میں فراہم کردہ مثالوں کا استعمال کرتے ہوئے اپنا کلسٹر بنایا ہے، تو آپ کلسٹر اور اس سے وابستہ کسی بھی وسائل کو حذف کرنے کے لیے درج ذیل کوڈ پر عمل کر سکتے ہیں، بشمول VPC:
eksctl کے لیے:
ٹیرافارم کے لیے:
آنے والی خصوصیات
FSDP میں فی پیرامیٹر شارڈنگ کی خصوصیت شامل ہونے کی توقع ہے، جس کا مقصد فی GPU اس کے میموری فوٹ پرنٹ کو مزید بہتر بنانا ہے۔ مزید برآں، FP8 سپورٹ کی جاری ترقی کا مقصد H100 GPUs پر FSDP کی کارکردگی کو بہتر بنانا ہے۔ آخر میں، جب FSDP کے ساتھ ضم کیا جاتا ہے۔torch.compile
، ہمیں کارکردگی میں اضافی بہتری اور سلیکٹیو ایکٹیویشن چیک پوائنٹنگ جیسی خصوصیات کو فعال کرنے کی امید ہے۔
نتیجہ
اس پوسٹ میں، ہم نے اس بات پر تبادلہ خیال کیا کہ کس طرح FSDP ہر GPU پر میموری فوٹ پرنٹ کو کم کرتا ہے، بڑے ماڈلز کی تربیت کو زیادہ موثر طریقے سے اور تھرو پٹ میں لکیری اسکیلنگ کو حاصل کرنے کے قابل بناتا ہے۔ ہم نے P2de اور P4 مثالوں پر Amazon EKS کا استعمال کرتے ہوئے Llama5 ماڈل کی تربیت کے مرحلہ وار نفاذ کے ذریعے اس کا مظاہرہ کیا اور لاگز کی نگرانی کے لیے kubectl، htop، nvtop، اور dcgm جیسے مشاہداتی ٹولز کا استعمال کیا، ساتھ ہی ساتھ CPU اور GPU کے استعمال کو بھی۔
ہم آپ کو اپنی LLM تربیتی ملازمتوں کے لیے PyTorch FSDP سے فائدہ اٹھانے کی ترغیب دیتے ہیں۔ پر شروع کریں۔ aws-do-fsdp.
مصنفین کے بارے میں
کنولجیت خرمی ایمیزون ویب سروسز میں پرنسپل AI/ML سلوشنز آرکیٹیکٹ ہیں۔ وہ AWS صارفین کے ساتھ رہنمائی اور تکنیکی مدد فراہم کرنے کے لیے کام کرتا ہے، جس سے انہیں AWS پر مشین لرننگ سلوشنز کی قدر کو بہتر بنانے میں مدد ملتی ہے۔ کنولجیت کنٹینرائزڈ، تقسیم شدہ کمپیوٹنگ اور ڈیپ لرننگ ایپلی کیشنز کے ساتھ صارفین کی مدد کرنے میں مہارت رکھتا ہے۔
الیکس ایانکولسکی AWS میں ایک پرنسپل سولیوشن آرکیٹیکٹ، سیلف مینیجڈ مشین لرننگ ہے۔ وہ ایک مکمل اسٹیک سافٹ ویئر اور انفراسٹرکچر انجینئر ہے جو گہرا، ہاتھ سے کام کرنا پسند کرتا ہے۔ اپنے کردار میں، وہ کنٹینر سے چلنے والی AWS سروسز پر ML اور AI ورک بوجھ کے کنٹینرائزیشن اور آرکیسٹریشن کے ساتھ صارفین کی مدد کرنے پر توجہ مرکوز کرتا ہے۔ وہ اوپن سورس کے مصنف بھی ہیں۔ فریم ورک کرو اور ایک ڈوکر کپتان جو دنیا کے سب سے بڑے چیلنجز کو حل کرتے ہوئے اختراع کی رفتار کو تیز کرنے کے لیے کنٹینر ٹیکنالوجیز کا اطلاق کرنا پسند کرتا ہے۔
اینا سیموز AWS میں ایک پرنسپل مشین لرننگ اسپیشلسٹ، ML Frameworks ہے۔ وہ کلاؤڈ میں HPC انفراسٹرکچر پر بڑے پیمانے پر AI، ML، اور جنریٹو AI تعینات کرنے والے صارفین کی حمایت کرتی ہے۔ Ana نئے کام کے بوجھ کے لیے قیمت کی کارکردگی کو حاصل کرنے اور جنریٹیو AI اور مشین لرننگ کے لیے کیسز استعمال کرنے کے لیے صارفین کی مدد کرنے پر توجہ مرکوز کرتی ہے۔
حامد شجنازری PyTorch میں ایک پارٹنر انجینئر ہے جو اوپن سورس، ہائی پرفارمنس ماڈل آپٹیمائزیشن، تقسیم شدہ تربیت (ایف ایس ڈی پی)، اور اندازہ۔ وہ اس کا شریک تخلیق کار ہے۔ لاما ہدایت اور شراکت دار ٹارچ سرو. اس کی بنیادی دلچسپی لاگت کی کارکردگی کو بہتر بنانا ہے، جس سے اے آئی کو وسیع تر کمیونٹی کے لیے مزید قابل رسائی بنانا ہے۔
کم رائٹ PyTorch میں AI/ پارٹنر انجینئر ہے۔ وہ Triton/CUDA دانا پر کام کرتا ہے (SplitK کام کے سڑن کے ساتھ ڈیکوانٹ کو تیز کرنا); صفحہ بندی، سلسلہ بندی، اور کوانٹائزڈ آپٹیمائزرز؛ اور PyTorch تقسیم شدہ (PyTorch FSDP).
- SEO سے چلنے والا مواد اور PR کی تقسیم۔ آج ہی بڑھا دیں۔
- پلیٹو ڈیٹا ڈاٹ نیٹ ورک ورٹیکل جنریٹو اے آئی۔ اپنے آپ کو بااختیار بنائیں۔ یہاں تک رسائی حاصل کریں۔
- پلیٹوآئ اسٹریم۔ ویب 3 انٹیلی جنس۔ علم میں اضافہ۔ یہاں تک رسائی حاصل کریں۔
- پلیٹو ای ایس جی۔ کاربن، کلین ٹیک، توانائی ، ماحولیات، شمسی، ویسٹ مینجمنٹ یہاں تک رسائی حاصل کریں۔
- پلیٹو ہیلتھ۔ بائیوٹیک اینڈ کلینیکل ٹرائلز انٹیلی جنس۔ یہاں تک رسائی حاصل کریں۔
- ماخذ: https://aws.amazon.com/blogs/machine-learning/scale-llms-with-pytorch-2-0-fsdp-on-amazon-eks-part-2/
- : ہے
- : ہے
- :کہاں
- ][p
- $UP
- 1
- 10
- 100
- 12
- 13
- 16
- 2024
- 28
- 500
- 7
- 70
- 8
- 80
- 800
- a
- قابلیت
- ہمارے بارے میں
- خلاصہ
- رفتار کو تیز تر
- مسرع
- قابل رسائی
- اکاؤنٹ
- درستگی
- حاصل
- حصول
- کے پار
- چالو کرنے کی
- اضافت
- شامل کیا
- ایڈیشنل
- اس کے علاوہ
- پتہ
- جوڑتا ہے
- اپنانے
- فائدہ
- کے بعد
- مجموعی
- AI
- AI / ML
- امداد
- مقصد
- مقصد ہے
- تمام
- کی اجازت
- کی اجازت دیتا ہے
- بھی
- ہمیشہ
- ایمیزون
- ایمیزون EC2
- ایمیزون ویب سروسز
- رقم
- an
- رکن کی
- اور
- اور بنیادی ڈھانچہ
- کوئی بھی
- اپلی کیشن
- ایپلی کیشنز
- کا اطلاق کریں
- درخواست دینا
- نقطہ نظر
- فن تعمیر
- کیا
- مصنوعی
- مصنوعی ذہانت
- AS
- اسسٹنس
- اسسٹنٹ
- منسلک
- At
- مصنف
- میشن
- دستیابی
- دستیاب
- سے اجتناب
- AWS
- متوازن
- رکاوٹ
- مار
- بنیادی
- BE
- اس سے پہلے
- شروع
- رویے
- کیا جا رہا ہے
- نیچے
- بہتر
- کے درمیان
- سب سے بڑا
- ارب
- بلاگ
- دونوں
- وقفے
- وسیع
- تعمیر
- تعمیر
- کاروبار
- لیکن
- by
- کر سکتے ہیں
- صلاحیتوں
- اہلیت
- کیس
- مقدمات
- CAT
- مراکز
- مرکزی
- چیلنج
- چیلنجوں
- چارٹ
- چارٹس
- cli
- گھڑی
- بادل
- کلسٹر
- کوڈ
- تعاون کرتا ہے
- آتا ہے
- مواصلات
- کمیونٹی
- مقابلے میں
- مکمل
- پیچیدگی
- اجزاء
- حساب
- کمپیوٹنگ
- کمپیوٹر
- کمپیوٹر ویژن
- کمپیوٹنگ
- چل رہا ہے
- ترتیب
- پر مشتمل ہے
- کنٹینر
- کنٹینر
- مواد
- مواد کی تخلیق
- سیاق و سباق
- جاری
- شراکت دار
- کنٹرولر
- ہم آہنگی
- سمنوی
- کاپی
- کور
- قیمت
- تخلیق
- بنائی
- تخلیق
- مخلوق
- اہم
- موجودہ
- اپنی مرضی کے
- گاہکوں
- مرضی کے مطابق
- اپنی مرضی کے مطابق
- ڈیش بورڈ
- ڈیش بورڈز
- اعداد و شمار
- ڈیٹا مراکز
- ڈیٹاسیٹس
- ڈیڈیپی
- گہری
- گہری سیکھنے
- وضاحت
- مطالبہ
- مظاہرہ
- demonstrated,en
- ثبوت
- تعیناتی
- تعینات
- تعیناتی
- بیان
- بیان کیا
- تفصیل
- تفصیلی
- تفصیلات
- ترقی
- آریھ
- مختلف
- براہ راست
- بات چیت
- بات چیت
- تقسیم کئے
- تقسیم کمپیوٹنگ
- تقسیم کی تربیت
- do
- میں Docker
- کیا
- نہیں
- ڈاؤن لوڈ، اتارنا
- ڈاؤن لوڈ کیا
- ڈرامائی طور پر
- اپنی طرف متوجہ
- دو
- کے دوران
- ہر ایک
- اس سے قبل
- کو کم
- آسانی سے
- کارکردگی
- ہنر
- مؤثر طریقے سے
- منتخب
- منحصر ہے
- کو چالو کرنے کے
- اہلیت
- کے قابل بناتا ہے
- کو فعال کرنا
- کی حوصلہ افزائی
- آخر
- آخر سے آخر تک
- انجینئر
- انجنیئرنگ
- بڑھانے کے
- درج
- پوری
- ماحولیات
- عہد
- نقائص
- مثال کے طور پر
- مثال کے طور پر
- عملدرآمد
- توقع
- تجربہ
- تجربات
- وضاحت
- چہرہ
- سہولت
- تیز تر
- نمایاں کریں
- خصوصیات
- چند
- اعداد و شمار
- فائل
- آخر
- فٹ
- لچکدار
- توجہ مرکوز
- کے بعد
- فوٹ پرنٹ
- کے لئے
- خوش قسمتی سے
- فریم ورک
- سے
- مکمل
- مکمل طور پر
- فعالیت
- مزید
- جنرل
- نسل
- پیداواری
- پیداواری AI۔
- حاصل
- GitHub کے
- اچھا
- GPU
- GPUs
- میلان
- گرافکس
- عظیم
- بہت
- گروپ
- مہمان
- مہمان پوسٹ
- رہنمائی
- ہاتھوں پر
- he
- صحت مند
- مدد
- مدد
- مدد کرتا ہے
- اعلی کارکردگی
- سب سے زیادہ
- ان
- کی ڈگری حاصل کی
- امید ہے کہ
- کس طرح
- کیسے
- تاہم
- ایچ پی سی
- HTML
- HTTP
- HTTPS
- کی نشاندہی
- ناقابل یقین
- if
- وضاحت کرتا ہے
- تصویر
- نفاذ
- اہم
- کو بہتر بنانے کے
- بہتری
- in
- شامل
- سمیت
- اضافہ
- اضافہ
- اضافہ
- دن بدن
- معلومات
- معلومات
- انفراسٹرکچر
- جدت طرازی
- بصیرت
- مثال کے طور پر
- کے بجائے
- ضم
- انضمام
- انٹیلی جنس
- دلچسپی
- میں
- IT
- تکرار
- میں
- ایوب
- نوکریاں
- JPEG
- فوٹو
- JSON
- صرف
- کلیدی
- بچے
- کیوب فلو
- لیبل
- زبان
- بڑے
- بڑے پیمانے پر
- بڑے
- سب سے بڑا
- آخری
- شروع
- رہنما
- سیکھنے
- کم
- دے رہا ہے
- سطح
- لائبریری
- ہلکا پھلکا
- کی طرح
- پسند
- حد کے
- لمیٹڈ
- حدود
- لکیری
- لسٹ
- ایل ایل ایم
- واقع ہے
- لاگ ان کریں
- لاگ ان
- دیکھو
- تلاش
- سے محبت کرتا ہے
- مشین
- مشین لرننگ
- مین
- بنانا
- انتظام
- قابل انتظام
- میں کامیاب
- انداز
- بہت سے
- مارچ
- مارچ 2024
- زیادہ سے زیادہ
- مئی..
- میکانزم
- یاد داشت
- میٹا
- میٹا ڈیٹا
- پیمائش کا معیار
- مخلوط
- ML
- ماڈل
- ماڈل
- جدید
- کی نگرانی
- زیادہ
- سب سے زیادہ
- نام
- natively
- قدرتی
- قدرتی زبان عملیات
- قریب
- ضرورت ہے
- ضروریات
- نیٹ ورک
- نیٹ ورکنگ
- نئی
- ویزا
- نہیں
- نوڈ
- نوڈس
- تعداد
- NVIDIA
- of
- پیش کرتے ہیں
- تجویز
- on
- ایک
- جاری
- صرف
- پر
- کھول
- اوپن سورس
- آپریشن
- آپریٹر
- اصلاح کے
- اصلاح
- کی اصلاح کریں
- or
- آرکیسٹرا
- OS
- دیگر
- ہمارے
- باہر
- پیداوار
- مجموعی طور پر
- پر قابو پانے
- زمین کے اوپر
- خود
- امن
- متوازی
- پیرامیٹرز
- حصہ
- حصہ لینے
- پارٹنر
- منظور
- راستہ
- فی
- کارکردگی
- منصوبہ
- پلاٹا
- افلاطون ڈیٹا انٹیلی جنس
- پلیٹو ڈیٹا
- کھیلیں
- مقبول
- پوسٹ
- طاقت
- طاقتور
- پہلے
- ضروریات
- محفوظ کر رہا ہے
- پچھلا
- پرنسپل
- پہلے
- عمل
- عمل
- پروسیسنگ
- پروسیسر
- پیدا
- تیار
- منصوبے
- ثابت
- فراہم
- فراہم
- ھیںچو
- مقصد
- پش
- pytorch
- معیار
- رینج
- تیار
- کم
- کمی
- کا حوالہ دیتے ہیں
- حوالہ جات
- کہا جاتا ہے
- خطے
- رجسٹری
- متعلقہ
- وشوسنییتا
- دوبارہ
- جواب
- درخواستوں
- کی ضرورت
- ضروریات
- کی ضرورت ہے
- تحقیق
- وسائل
- وسائل
- نتیجہ
- نتائج کی نمائش
- بڑھتی ہوئی
- مضبوط
- کردار
- رن
- چل رہا ہے
- اسکیل ایبلٹی
- توسیع پذیر
- پیمانے
- سکیلنگ
- اسکرپٹ
- سکرپٹ
- بغیر کسی رکاوٹ کے
- سیکشن
- سیکشنز
- سیکورٹی
- دیکھنا
- منتخب
- منتخب
- انتخابی
- سیریز
- سروس
- سروسز
- مقرر
- کئی
- تیز
- شارڈنگ
- وہ
- شیل
- ہونا چاہئے
- دکھائیں
- دکھایا گیا
- شوز
- نمایاں طور پر
- اسی طرح
- سادہ
- سادگی
- آسان بناتا ہے۔
- ایک
- سائز
- سائز
- سلائس
- چھوٹے
- ٹکڑا
- سافٹ ویئر کی
- حل
- حل
- حل کرنا۔
- کچھ
- ماخذ
- ماہر
- مہارت دیتا ہے
- مخصوص
- رفتار
- spikes
- ڈھیر لگانا
- شروع
- حالت
- امریکہ
- کے اعداد و شمار
- درجہ
- مراحل
- ابھی تک
- بند کرو
- حکمت عملیوں
- محرومی
- اس طرح
- سوٹ
- حمایت
- تائید
- امدادی
- کی حمایت کرتا ہے
- ہم آہنگی
- سیس
- کے نظام
- لے لو
- لینے
- ہدف
- کاموں
- ٹیم
- ٹیکنیکل
- تکنیک
- تکنیک
- ٹیکنالوجی
- سانچے
- ٹرافیفار
- متن
- کہ
- ۔
- ان
- ان
- تو
- وہاں.
- یہ
- وہ
- اس
- ان
- تین
- کے ذریعے
- تھرو پٹ
- وقت
- وقت لگتا
- کرنے کے لئے
- آج
- مل کر
- ٹوکن
- اوزار
- ٹریک
- ٹرین
- تربیت یافتہ
- ٹریننگ
- ترجمہ
- ٹریلین
- سچ
- دھن
- دو
- قسم
- آخر میں
- سمجھ
- زیر راست
- us
- استعمال کی شرائط
- استعمال کیس
- استعمال کیا جاتا ہے
- استعمال
- کا استعمال کرتے ہوئے
- افادیت
- کی افادیت
- استعمال کیا
- قیمت
- مختلف اقسام کے
- مختلف
- مختلف
- اس بات کی تصدیق
- ورژن
- بہت
- کی طرف سے
- لنک
- دیکھنے
- مجازی
- کی نمائش
- نقطہ نظر
- تصور کرنا
- جلد
- واک تھرو
- چاہتے ہیں
- تھا
- we
- ویب
- ویب خدمات
- اچھا ہے
- تھے
- جب
- جس
- جبکہ
- ڈبلیو
- گے
- ساتھ
- کے اندر
- کام
- کارکن
- کارکنوں
- کام کا بہاؤ
- کام کر
- کام کرتا ہے
- دنیا کی
- ریپنگ
- یامل
- سال
- تم
- اور
- زیفیرنیٹ