روبلوکس مشین لرننگ آپٹمائزڈ بلوم فلٹرز کے ساتھ اسپارک جوائن کے سوالات کے اخراجات کو کیسے کم کرتا ہے - روبلوکس بلاگ

روبلوکس مشین لرننگ آپٹمائزڈ بلوم فلٹرز کے ساتھ اسپارک جوائن کے سوالات کے اخراجات کو کیسے کم کرتا ہے - روبلوکس بلاگ

ماخذ نوڈ: 2983061

خلاصہ

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

تعارف

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

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

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

حقیقت اور طول و عرض کے جدولوں کے درمیان شمولیت کو بہتر بنانے کے لیے، ہم نے لرنڈ بلوم فلٹر کے نفاذ کو اپنایا۔ ہم نے فیکٹ ٹیبل میں موجود کلیدوں سے ایک انڈیکس بنایا اور اس کے بعد انڈیکس کو جوائن آپریشن سے پہلے ڈائمینشن ڈیٹا کو فلٹر کرنے کے لیے تعینات کیا۔ 

روایتی بلوم فلٹرز سے سیکھے ہوئے بلوم فلٹرز تک ارتقاء

جب کہ ایک روایتی بلوم فلٹر کارآمد ہے، یہ فی کارکن نوڈ کے لیے 15-25% اضافی میموری کا اضافہ کرتا ہے جسے ہماری مطلوبہ غلط مثبت شرح تک پہنچنے کے لیے اسے لوڈ کرنے کی ضرورت ہوتی ہے۔ لیکن لرنڈ بلوم فلٹرز کا استعمال کرتے ہوئے، ہم نے اسی غلط مثبت شرح کو برقرار رکھتے ہوئے انڈیکس کے سائز میں کافی حد تک کمی حاصل کی۔ یہ بلوم فلٹر کے بائنری درجہ بندی کے مسئلے میں تبدیل ہونے کی وجہ سے ہے۔ مثبت لیبل انڈیکس میں اقدار کی موجودگی کی نشاندہی کرتے ہیں، جبکہ منفی لیبلز کا مطلب ہے کہ وہ غیر حاضر ہیں۔

ایم ایل ماڈل کا تعارف اقدار کی ابتدائی جانچ میں سہولت فراہم کرتا ہے، اس کے بعد غلط منفی کو ختم کرنے کے لیے بیک اپ بلوم فلٹر۔ کم سائز ماڈل کی کمپریسڈ نمائندگی اور بیک اپ بلوم فلٹر کے لیے مطلوبہ چابیاں کی کم تعداد سے پیدا ہوتا ہے۔ یہ اسے روایتی بلوم فلٹر کے نقطہ نظر سے ممتاز کرتا ہے۔ 

اس کام کے حصے کے طور پر، ہم نے اپنے سیکھے ہوئے بلوم فلٹر کے طریقہ کار کا جائزہ لینے کے لیے دو میٹرکس قائم کیے: انڈیکس کا حتمی سیریلائزڈ آبجیکٹ سائز اور جوائن کے سوالات کے عمل کے دوران CPU کی کھپت۔ 

نفاذ کے چیلنجز کو نیویگیٹنگ کرنا

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

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

تیسرا چیلنج — انفرنس لیٹینسی — کے لیے ایسے ماڈلز کی ضرورت تھی جو دونوں غلط منفی کو کم کرتے ہیں اور تیز ردعمل فراہم کرتے ہیں۔ ان کلیدی میٹرکس کے لیے گریڈیئنٹ بوسٹڈ ٹری ماڈل بہترین انتخاب تھا، اور ہم نے درستگی اور رفتار کو متوازن کرنے کے لیے اس کی خصوصیت کو کاٹ دیا۔

سیکھے ہوئے بلوم فلٹرز کا استعمال کرتے ہوئے ہماری اپ ڈیٹ کردہ شمولیتی استفسار ذیل میں دکھایا گیا ہے:

نتائج کی نمائش

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

بلوم فلٹر سائز کا موازنہ سیکھا۔

جیسا کہ ذیل میں دکھایا گیا ہے، جب دی گئی غلط مثبت شرح کو دیکھتے ہوئے، سیکھے ہوئے بلوم فلٹر کی دو قسمیں روایتی بلوم فلٹرز کے مقابلے میں کل آبجیکٹ کے سائز میں 17-42٪ کے درمیان بہتری لاتی ہیں۔

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

بلوم فلٹر کے استعمال کے نتائج سیکھے۔ 

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

نیچے دی گئی جدول میں لرنڈ بلوم فلٹرز کے ساتھ اور اس کے بغیر کام کے بوجھ کی کارکردگی کا موازنہ کیا گیا ہے۔ 1% کل غلط مثبت امکان کے ساتھ سیکھا ہوا بلوم فلٹر دونوں جوائن کی اقسام کے لیے یکساں کلسٹر کنفیگریشن کو برقرار رکھتے ہوئے ذیل میں موازنہ کو ظاہر کرتا ہے۔ 

سب سے پہلے، ہم نے پایا کہ بلوم فلٹر کے نفاذ نے سی پی یو کے اوقات میں باقاعدہ شمولیت کو 60% تک پیچھے چھوڑ دیا۔ بلوم فلٹر کا جائزہ لینے میں خرچ ہونے والے اضافی کمپیوٹ کی وجہ سے ہم نے سیکھے ہوئے بلوم فلٹر اپروچ کے اسکین مرحلے کے CPU کے استعمال میں اضافہ دیکھا۔ تاہم، اس مرحلے میں کی گئی پری فلٹرنگ نے شفل کیے جانے والے ڈیٹا کے سائز کو کم کر دیا، جس نے ڈاؤن اسٹریم سٹیپس کے ذریعے استعمال ہونے والے CPU کو کم کرنے میں مدد کی، اس طرح کل CPU گھنٹے کم ہو گئے۔

دوسرا، سیکھے ہوئے بلوم فلٹرز میں کل ڈیٹا کا سائز تقریباً 80% کم ہوتا ہے اور باقاعدہ شمولیت کے مقابلے میں تقریباً 80% کم کل شفل بائٹس لکھے جاتے ہیں۔ یہ مزید مستحکم شمولیت کی کارکردگی کا باعث بنتا ہے جیسا کہ ذیل میں بحث کی گئی ہے۔ 

ہم نے تجربات کے تحت اپنے دوسرے پیداواری کام کے بوجھ میں وسائل کے استعمال کو بھی کم دیکھا۔ پانچوں کام کے بوجھ میں دو ہفتوں کے دوران، سیکھے ہوئے بلوم فلٹر کے نقطہ نظر نے اوسط پیدا کیا روزانہ کی لاگت کی بچت of 25٪ جس میں ماڈل ٹریننگ اور انڈیکس کی تخلیق بھی شامل ہے۔

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

حوالہ جات

[1] T. Kraska, A. Beutel, EH Chi, J. Dean, and N. Polyzotis. سیکھے ہوئے انڈیکس ڈھانچے کا کیس۔ https://arxiv.org/abs/1712.012082017.

[2] M. Mitzenmacher. سینڈویچنگ کے ذریعے سیکھے ہوئے بلوم فلٹرز کو بہتر بنانا۔ 

https://arxiv.org/abs/1803.014742018.


¹3 جون 30 کو ختم ہونے والے 2023 ماہ کے مطابق

²3 جون 30 کو ختم ہونے والے 2023 ماہ کے مطابق

ٹائم اسٹیمپ:

سے زیادہ Roblox