مصروف GPUs: نمونے لینے اور پائپ لائننگ کا طریقہ بڑے گرافس پر گہری سیکھنے کو تیز کرتا ہے PlatoBlockchain ڈیٹا انٹیلی جنس۔ عمودی تلاش۔ عی

مصروف GPUs: نمونے لینے اور پائپ لائننگ کا طریقہ بڑے گرافس پر گہری سیکھنے کو تیز کرتا ہے۔

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

اب، MIT اور IBM ریسرچ کے محققین کے ذریعہ تیار کردہ SALIENT (سیمپلنگ، سلائسنگ، اور ڈیٹا موومنٹ) کے نام سے ایک نیا طریقہ، حساب میں تین اہم رکاوٹوں کو دور کرکے تربیت اور تخمینہ کی کارکردگی کو بہتر بناتا ہے۔ یہ بڑے ڈیٹاسیٹس پر GNNs کے رن ٹائم کو ڈرامائی طور پر کم کرتا ہے، جو مثال کے طور پر 100 ملین نوڈس اور 1 بلین کناروں پر مشتمل ہے۔ مزید، ٹیم نے پایا کہ جب کمپیوٹیشنل پاور ایک سے 16 گرافیکل پروسیسنگ یونٹس (GPUs) میں شامل کی جاتی ہے تو تکنیک اچھی طرح سے پیمانہ ہوتی ہے۔ یہ کام مشین لرننگ اور سسٹمز پر پانچویں کانفرنس میں پیش کیا گیا۔

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

وسیع ڈیٹا سیٹس سے، ماہرین کا مطلب پورے بٹ کوائن نیٹ ورک کی طرح کے پیمانے ہیں، جہاں کچھ نمونے اور ڈیٹا تعلقات رجحانات یا غلط کھیل کو ظاہر کر سکتے ہیں۔ "بلاکچین پر تقریباً ایک بلین بٹ کوائن ٹرانزیکشنز ہیں، اور اگر ہم اس طرح کے مشترکہ نیٹ ورک کے اندر غیر قانونی سرگرمیوں کی نشاندہی کرنا چاہتے ہیں، تو ہمیں اس پیمانے کے گراف کا سامنا ہے،" شریک مصنف جی چن کہتے ہیں، سینئر ریسرچ سائنسدان اور منیجر۔ IBM ریسرچ اور MIT-IBM واٹسن AI لیب۔ "ہم ایک ایسا نظام بنانا چاہتے ہیں جو اس قسم کے گراف کو سنبھالنے کے قابل ہو اور پروسیسنگ کو ہر ممکن حد تک موثر بنانے کی اجازت دیتا ہے، کیونکہ ہم ہر روز نئے ڈیٹا کی رفتار کو برقرار رکھنا چاہتے ہیں جو پیدا ہوتا ہے۔"

کیلر اور چن کے شریک مصنفین میں جمپ ٹریڈنگ کے نکولس سٹیتھاس مینگ '21 شامل ہیں، جنہوں نے اپنے گریجویٹ کام کے حصے کے طور پر SALIENT کو تیار کیا۔ سابق MIT-IBM واٹسن AI لیب انٹرن اور MIT گریجویٹ طالب علم این اویانگ؛ MIT CSAIL postdoc Alexandros-Stavros Iliopoulos; MIT CSAIL ریسرچ سائنٹسٹ Tao B. Schardl; اور چارلس ای لیزرسن، ایم آئی ٹی میں الیکٹریکل انجینئرنگ کے ایڈون سیبلی ویبسٹر پروفیسر اور MIT-IBM واٹسن AI لیب کے ایک محقق۔     

اس مسئلے کے لیے، ٹیم نے اپنے طریقہ کار کو تیار کرنے میں ایک نظام پر مبنی نقطہ نظر اختیار کیا: SALIENT، Kaler کہتے ہیں۔ ایسا کرنے کے لیے، محققین نے اس چیز کو لاگو کیا جسے انھوں نے اہم، بنیادی اصلاح کے طور پر دیکھا جو موجودہ مشین لرننگ فریم ورکس میں فٹ ہوتے ہیں، جیسے PyTorch جیومیٹرک اور ڈیپ گراف لائبریری (DGL)، جو کہ مشین لرننگ ماڈل بنانے کے لیے انٹرفیس ہیں۔ Stathas کا کہنا ہے کہ یہ عمل ایک تیز کار بنانے کے لیے انجنوں کو تبدیل کرنے جیسا ہے۔ ان کا طریقہ موجودہ GNN فن تعمیر میں فٹ ہونے کے لیے ڈیزائن کیا گیا تھا، تاکہ ڈومین کے ماہرین اس کام کو آسانی سے اپنے مخصوص شعبوں میں لاگو کر سکیں تاکہ ماڈل کی تربیت کو تیز کیا جا سکے اور تخمینہ کے دوران بصیرت کو تیزی سے چھیڑا جا سکے۔ چال، ٹیم نے طے کیا، تمام ہارڈ ویئر (سی پی یو، ڈیٹا لنکس، اور جی پی یو) کو ہر وقت مصروف رکھنا تھا: جب کہ سی پی یو گراف کا نمونہ بناتا ہے اور ڈیٹا کے چھوٹے بیچ تیار کرتا ہے جو پھر ڈیٹا لنک کے ذریعے منتقل کیا جائے گا۔ ، زیادہ اہم GPU مشین لرننگ ماڈل کو تربیت دینے یا اندازہ لگانے کے لئے کام کر رہا ہے۔ 

محققین نے GNNs (PyTorch Geometric) کے لیے عام طور پر استعمال ہونے والی مشین لرننگ لائبریری کی کارکردگی کا تجزیہ کرتے ہوئے آغاز کیا، جس نے GPU کے دستیاب وسائل کا حیران کن حد تک کم استعمال ظاہر کیا۔ سادہ اصلاحات کا اطلاق کرتے ہوئے، محققین نے GPU کے استعمال کو 10 سے 30 فیصد تک بہتر کیا، جس کے نتیجے میں عوامی بینچ مارک کوڈز کے مقابلے میں 1.4 سے دو گنا کارکردگی میں بہتری آئی۔ یہ تیز رفتار بیس لائن کوڈ 50.4 سیکنڈ میں الگورتھم (ایک عہد) کے ذریعے ایک بڑے ٹریننگ ڈیٹاسیٹ پر ایک مکمل پاس کر سکتا ہے۔                          

کارکردگی میں مزید بہتری کی تلاش میں، محققین ڈیٹا پائپ لائن کے آغاز میں پیدا ہونے والی رکاوٹوں کا جائزہ لینے کے لیے نکلے: گراف کے نمونے لینے اور منی بیچ کی تیاری کے لیے الگورتھم۔ دوسرے عصبی نیٹ ورکس کے برعکس، GNNs ایک پڑوس جمع کرنے کا عمل انجام دیتے ہیں، جو گراف میں موجود دیگر قریبی نوڈس میں موجود معلومات کا استعمال کرتے ہوئے نوڈ کے بارے میں معلومات کا حساب لگاتا ہے — مثال کے طور پر، سوشل نیٹ ورک گراف میں، صارف کے دوستوں کے دوستوں کی معلومات۔ جیسے جیسے GNN میں تہوں کی تعداد میں اضافہ ہوتا ہے، نیٹ ورک کو معلومات کے لیے جتنے نوڈس تک پہنچنا ہوتا ہے وہ کمپیوٹر کی حد سے تجاوز کرتے ہوئے پھٹ سکتے ہیں۔ پڑوس کے نمونے لینے والے الگورتھم جمع کرنے کے لیے نوڈس کے چھوٹے بے ترتیب ذیلی سیٹ کو منتخب کرکے مدد کرتے ہیں۔ تاہم، محققین نے پایا کہ جدید GPUs کی پروسیسنگ کی رفتار کو برقرار رکھنے کے لیے اس کا موجودہ نفاذ بہت سست تھا۔ جواب میں، انہوں نے ڈیٹا ڈھانچے، الگورتھمک آپٹیمائزیشن، اور اسی طرح کے مرکب کی نشاندہی کی جس سے نمونے لینے کی رفتار میں بہتری آئی، بالآخر صرف نمونے لینے کے عمل میں تقریباً تین گنا بہتری آئی، فی زمانہ رن ٹائم 50.4 سے 34.6 سیکنڈ تک لے گیا۔ انہوں نے یہ بھی پایا کہ نمونے لینے، مناسب شرح پر، تخمینہ کے دوران، توانائی کی مجموعی کارکردگی اور کارکردگی کو بہتر بنانے کے لیے کیے جا سکتے ہیں، ایک ایسا نقطہ جسے ادب میں نظر انداز کیا گیا تھا، ٹیم نوٹ کرتی ہے۔      

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

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

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

SALIENT کی رفتار کا اندازہ تین معیاری ڈیٹاسیٹس ogbn-arxiv، ogbn-products، اور ogbn-papers100M کے ساتھ ساتھ ملٹی مشین سیٹنگز میں، مختلف سطحوں کے فین آؤٹ (ڈیٹا کی مقدار جسے CPU GPU کے لیے تیار کرے گا)، اور بہت سے فن تعمیرات میں، بشمول جدید ترین جدید ترین، GraphSAGE-RI۔ ہر ترتیب میں، SALIENT نے PyTorch جیومیٹرک کو پیچھے چھوڑ دیا، خاص طور پر بڑے ogbn-papers100M ڈیٹاسیٹ پر، جس میں 100 ملین نوڈس اور ایک ارب سے زیادہ کناروں پر مشتمل ہے، یہاں، یہ تین گنا تیز تھا، ایک GPU پر چل رہا تھا، اس آپٹمائزڈ بیس لائن سے جو اصل میں تخلیق کیا گیا تھا۔ یہ کام؛ 16 GPUs کے ساتھ، SALIENT ایک اضافی آٹھ گنا تیز تھا۔ 

اگرچہ دوسرے سسٹمز میں ہارڈ ویئر اور تجرباتی سیٹ اپ قدرے مختلف تھے، اس لیے یہ ہمیشہ براہ راست موازنہ نہیں ہوتا تھا، پھر بھی SALIENT نے ان سے بہتر کارکردگی کا مظاہرہ کیا۔ اسی طرح کی درستگی حاصل کرنے والے نظاموں میں، نمائندہ کارکردگی کے نمبروں میں ایک GPU اور 99 CPUs کا استعمال کرتے ہوئے 32 سیکنڈ، اور 13 CPUs کا استعمال کرتے ہوئے 1,536 سیکنڈز شامل ہیں۔ اس کے برعکس، ایک GPU اور 20 CPUs کا استعمال کرتے ہوئے SALIENT کا رن ٹائم 16.5 سیکنڈ تھا اور 16 GPUs اور 320 CPUs کے ساتھ صرف دو سیکنڈ تھا۔ "اگر آپ نیچے کی لائن نمبروں کو دیکھیں جو پہلے کام کی رپورٹ کرتے ہیں، تو ہمارا 16 GPU رن ٹائم (دو سیکنڈ) اس ڈیٹا سیٹ پر پہلے رپورٹ کیے گئے دوسرے نمبروں کے مقابلے میں تیز رفتار کا آرڈر ہے،" کیلر کہتے ہیں۔ محققین نے اپنی کارکردگی میں بہتری کو جزوی طور پر تقسیم شدہ ترتیب میں جانے سے پہلے ایک مشین کے لیے اپنے کوڈ کو بہتر بنانے کے ان کے نقطہ نظر سے منسوب کیا۔ Stathas کا کہنا ہے کہ یہاں سبق یہ ہے کہ آپ کے پیسے کے لیے، "آپ کے پاس موجود ہارڈ ویئر کو مؤثر طریقے سے استعمال کرنا زیادہ سمجھ میں آتا ہے، اور اس سے پہلے کہ آپ ایک سے زیادہ کمپیوٹرز تک اسکیلنگ شروع کریں،" جو لاگت اور کاربن کے اخراج پر نمایاں بچت فراہم کر سکتا ہے۔ جو ماڈل ٹریننگ کے ساتھ آسکتی ہے۔

یہ نئی صلاحیت اب محققین کو بڑے اور بڑے گرافوں میں گہرائی سے نمٹنے اور کھودنے کی اجازت دے گی۔ مثال کے طور پر، بٹ کوائن نیٹ ورک جس کا پہلے ذکر کیا گیا تھا، 100,000 نوڈس پر مشتمل تھا۔ SALIENT نظام ایک گراف کو 1,000 گنا (یا تین آرڈرز کی شدت) سے بڑی صلاحیت کے ساتھ سنبھال سکتا ہے۔

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

اس تحقیق کو MIT-IBM واٹسن AI لیب اور جزوی طور پر یو ایس ایئر فورس ریسرچ لیبارٹری اور یو ایس ایئر فورس آرٹیفیشل انٹیلی جنس ایکسلریٹر نے تعاون کیا۔

ٹائم اسٹیمپ:

سے زیادہ بلاکچین کنسلٹنٹس