چکیده
هر روز در Roblox، 65.5 میلیون کاربر با میلیون ها تجربه درگیر می شوند که مجموعاً 14.0 است میلیارد ساعت در سه ماهه این تعامل یک دریاچه داده در مقیاس پتابایت ایجاد می کند که برای اهداف تجزیه و تحلیل و یادگیری ماشین (ML) غنی شده است. پیوستن به جداول واقعیت و ابعاد در دریاچه داده ما نیاز به منابع زیادی دارد، بنابراین برای بهینه سازی این و کاهش درهم ریختگی داده ها، از فیلترهای Bloom Learned [1] - ساختارهای داده هوشمند با استفاده از ML استفاده کردیم. با پیش بینی حضور، این فیلترها به طور قابل توجهی داده های اتصال را کاهش می دهند و کارایی را افزایش می دهند و هزینه ها را کاهش می دهند. در طول مسیر، ما همچنین معماریهای مدل خود را بهبود بخشیدهایم و مزایای قابلتوجهی را که برای کاهش حافظه و ساعات پردازش CPU و همچنین افزایش پایداری عملیاتی ارائه میدهند، نشان دادیم.
معرفی
در دریاچه داده ما، جداول واقعیت و مکعب های داده به طور موقت برای دسترسی کارآمد تقسیم بندی می شوند، در حالی که جداول ابعاد فاقد چنین پارتیشن هایی هستند، و پیوستن آنها به جداول واقعیت در طول به روز رسانی منابع فشرده ای است. فضای کلیدی اتصال توسط پارتیشن زمانی جدول واقعیت که به هم متصل می شود هدایت می شود. موجودیت های بعد موجود در آن پارتیشن زمانی، زیرمجموعه کوچکی از موارد موجود در کل مجموعه داده ابعاد هستند. در نتیجه، اکثریت دادههای ابعاد به هم ریخته در این اتصالات در نهایت کنار گذاشته میشوند. برای بهینهسازی این فرآیند و کاهش درهمرفتن غیر ضروری، استفاده از آن را در نظر گرفتیم فیلترهای بلوم در کلیدهای اتصال متمایز اما با مشکلاتی در اندازه فیلتر و ردپای حافظه مواجه شد.
برای پرداختن به آنها، بررسی کردیم فیلترهای بلوم را یاد گرفتیک راه حل مبتنی بر ML که اندازه فیلتر بلوم را کاهش می دهد در حالی که نرخ های مثبت کاذب پایین را حفظ می کند. این نوآوری با کاهش هزینه های محاسباتی و بهبود پایداری سیستم، کارایی عملیات اتصال را افزایش می دهد. طرح شماتیک زیر فرآیندهای اتصال مرسوم و بهینه شده را در محیط محاسباتی توزیع شده ما نشان می دهد.
افزایش کارایی اتصال با فیلترهای بلوم آموخته شده
برای بهینه سازی اتصال بین جداول واقعیت و ابعاد، پیاده سازی Learned Bloom Filter را اتخاذ کردیم. ما یک شاخص از کلیدهای موجود در جدول حقایق ساختیم و متعاقباً این شاخص را برای پیش فیلتر کردن دادههای ابعاد قبل از عملیات اتصال به کار بردیم.
تکامل از فیلترهای سنتی بلوم به فیلترهای بلوم آموخته شده
در حالی که فیلتر بلوم سنتی کارآمد است، 15 تا 25 درصد حافظه اضافی را به هر گره کارگر اضافه می کند که نیاز به بارگذاری آن برای رسیدن به نرخ مثبت کاذب مورد نظر ما دارد. اما با استفاده از فیلترهای Bloom Learned، به اندازه شاخص کاهش قابل توجهی دست یافتیم و در عین حال همان نرخ مثبت کاذب را حفظ کردیم. این به دلیل تبدیل فیلتر بلوم به یک مشکل طبقه بندی باینری است. برچسبهای مثبت وجود مقادیری را در شاخص نشان میدهند، در حالی که برچسبهای منفی به معنای عدم وجود آنها هستند.
معرفی یک مدل ML بررسی اولیه مقادیر و به دنبال آن یک فیلتر بلوم پشتیبان برای حذف منفی های کاذب را تسهیل می کند. اندازه کاهش یافته ناشی از نمایش فشرده مدل و کاهش تعداد کلیدهای مورد نیاز فیلتر بلوم پشتیبان است. این آن را از روش معمولی فیلتر بلوم متمایز می کند.
به عنوان بخشی از این کار، ما دو معیار را برای ارزیابی رویکرد فیلتر بلوم آموخته خود ایجاد کردیم: اندازه شیء سریالی نهایی شاخص و مصرف CPU در طول اجرای جستارهای جوین.
پیمایش چالش های پیاده سازی
چالش اولیه ما پرداختن به یک مجموعه داده آموزشی بسیار مغرضانه با کلیدهای جدول ابعاد کمی در جدول واقعیت بود. در انجام این کار، ما همپوشانی تقریباً یک در سه کلید را بین جداول مشاهده کردیم. برای مقابله با این موضوع، ما از روش فیلتر شکوفه یادگیری ساندویچ [2] استفاده کردیم. این یک فیلتر سنتی اولیه بلوم را ادغام میکند تا با حذف اکثر کلیدهایی که از جدول حقایق مفقود شدهاند، توزیع دادهها را مجدداً متعادل کند و نمونههای منفی را از مجموعه داده حذف کند. متعاقباً، تنها کلیدهای موجود در فیلتر اولیه بلوم، همراه با موارد مثبت کاذب، به مدل ML که اغلب به عنوان «اوراکل آموختهشده» نامیده میشود، ارسال شد. این رویکرد منجر به ایجاد یک مجموعه داده آموزشی متعادل برای اوراکل آموخته شد، که به طور موثری بر مسئله سوگیری غلبه کرد.
چالش دوم بر معماری مدل و ویژگی های آموزشی متمرکز بود. برخلاف مشکل کلاسیک URLهای فیشینگ [1]، کلیدهای پیوستن ما (که در بیشتر موارد شناسههای منحصربهفرد برای کاربران/تجربهها هستند) ذاتاً آموزنده نبودند. این ما را بر آن داشت تا ویژگیهای ابعاد را به عنوان ویژگیهای مدل بالقوه که میتواند به پیشبینی وجود یک موجودیت در جدول واقعیت کمک کند، بررسی کنیم. به عنوان مثال، یک جدول واقعیت را تصور کنید که حاوی اطلاعات جلسه کاربر برای تجربیات در یک زبان خاص است. موقعیت جغرافیایی یا ویژگی ترجیحی زبان بعد کاربر، شاخص خوبی برای این است که آیا یک کاربر فردی در جدول حقایق حضور دارد یا نه.
چالش سوم - تأخیر استنتاج - به مدلهایی نیاز داشت که هم منفیهای کاذب را به حداقل میرساند و هم پاسخهای سریع ارائه میکرد. یک مدل درختی تقویتشده با گرادیان، انتخاب بهینه برای این معیارهای کلیدی بود، و مجموعه ویژگیهای آن را برای متعادل کردن دقت و سرعت هرس کردیم.
درخواست پیوستن به روز شده ما با استفاده از فیلترهای بلوم آموخته شده به شرح زیر است:
نتایج
در اینجا نتایج آزمایشات ما با فیلترهای Learned Bloom در دریاچه داده ما آمده است. ما آنها را در پنج بار تولید ادغام کردیم که هر کدام دارای ویژگی های داده متفاوتی بودند. گرانترین بخش محاسباتی این حجمهای کاری، اتصال بین جدول واقعیت و جدول ابعاد است. فضای کلیدی جداول واقعیت تقریباً 30 درصد از جدول ابعاد است. برای شروع، در مورد اینکه چگونه Learned Bloom Filter از فیلترهای بلوم سنتی از نظر اندازه شیء سریالی نهایی بهتر عمل کرد صحبت می کنیم. در مرحله بعد، بهبودهای عملکردی را نشان میدهیم که با ادغام فیلترهای Bloom Learned در خطوط لوله پردازش حجم کاری خود مشاهده کردیم.
مقایسه اندازه فیلتر بلوم آموخته شده
همانطور که در زیر نشان داده شده است، هنگامی که به یک نرخ مثبت کاذب معین نگاه می کنیم، دو نوع فیلتر Bloom آموخته شده در مقایسه با فیلترهای بلوم سنتی، اندازه کل شی را بین 17 تا 42 درصد بهبود می بخشند.
علاوه بر این، با استفاده از زیرمجموعهای کوچکتر از ویژگیها در مدل درختی مبتنی بر گرادیان، تنها درصد کمی از بهینهسازی را از دست دادیم در حالی که استنتاج سریعتر انجام میشد.
نتایج استفاده از فیلتر بلوم را یاد گرفتید
در این بخش، عملکرد اتصالهای مبتنی بر فیلتر بلوم را با اتصالات معمولی در چندین معیار مقایسه میکنیم.
جدول زیر عملکرد بارهای کاری را با و بدون استفاده از Learned Bloom Filters مقایسه می کند. یک فیلتر بلوم آموخته با 1٪ احتمال مثبت کاذب کل، مقایسه زیر را نشان می دهد در حالی که پیکربندی خوشه یکسانی را برای هر دو نوع اتصال حفظ می کند.
اول، ما متوجه شدیم که اجرای Bloom Filter تا 60% در ساعات CPU از اتصال معمولی بهتر عمل می کند. ما شاهد افزایش استفاده از CPU از مرحله اسکن برای رویکرد Learned Bloom Filter به دلیل محاسبات اضافی صرف شده در ارزیابی فیلتر Bloom بودیم. با این حال، فیلتر کردن اولیه انجام شده در این مرحله، اندازه دادههای در حال جابجایی را کاهش داد، که به کاهش CPU مورد استفاده در مراحل پاییندستی کمک کرد، در نتیجه کل ساعتهای CPU را کاهش داد.
ثانیاً، فیلترهای Bloom Learned حدود 80٪ حجم کل داده کمتر و حدود 80٪ بایت های بسته بندی کل کمتری نسبت به یک اتصال معمولی دارند. این منجر به عملکرد پیوستن پایدارتر همانطور که در زیر بحث شده است.
ما همچنین شاهد کاهش استفاده از منابع در سایر بارهای کاری تولیدی تحت آزمایش بودیم. در طی یک دوره دو هفته ای در هر پنج بار کاری، رویکرد Learned Bloom Filter میانگین تولید کرد صرفه جویی در هزینه های روزانه of ٪ 25، که آموزش مدل و ایجاد شاخص را نیز به حساب می آورد.
با توجه به کاهش حجم دادههای به هم ریخته در حین انجام اتصال، ما توانستیم هزینههای عملیاتی خط لوله تجزیه و تحلیل خود را به طور قابل توجهی کاهش دهیم و در عین حال آن را پایدارتر کنیم. نمودار زیر تنوع (با استفاده از ضریب تغییرات) را در مدت زمان اجرا (دیواری) نشان میدهد. ساعت) برای بار کاری پیوستن منظم و حجم کاری مبتنی بر فیلتر بلوم آموخته شده در طی یک دوره دو هفته ای برای پنج بار کاری که آزمایش کردیم. اجراهایی که با استفاده از Learned Bloom Filters پایدارتر بودند - از نظر مدت زمان سازگارتر - که امکان انتقال آنها به منابع محاسباتی غیرقابل اعتماد گذرا ارزانتر را باز میکند.
منابع
[1] T. Kraska، A. Beutel، EH Chi، J. Dean، و N. Polyzotis. موردی برای ساختارهای شاخص آموخته شده. https://arxiv.org/abs/1712.01208، 2017.
[2] M. Mitzenmacher. بهینه سازی فیلترهای بلوم آموخته شده با ساندویچ کردن.
https://arxiv.org/abs/1803.01474، 2018.
¹از 3 ماه منتهی به 30 ژوئن 2023
²از 3 ماه منتهی به 30 ژوئن 2023
- محتوای مبتنی بر SEO و توزیع روابط عمومی. امروز تقویت شوید.
- PlatoData.Network Vertical Generative Ai. به خودت قدرت بده دسترسی به اینجا.
- PlatoAiStream. هوش وب 3 دانش تقویت شده دسترسی به اینجا.
- PlatoESG. کربن ، CleanTech، انرژی، محیط، خورشیدی، مدیریت پسماند دسترسی به اینجا.
- PlatoHealth. هوش بیوتکنولوژی و آزمایشات بالینی. دسترسی به اینجا.
- منبع: https://blog.roblox.com/2023/11/roblox-reduces-spark-join-query-costs-machine-learning-optimized-bloom-filters/
- :است
- :نه
- $UP
- 1
- 14
- 2017
- 2018
- 30
- 65
- a
- قادر
- درباره ما
- غایب
- دسترسی
- حساب ها
- دست
- در میان
- اضافه
- اضافی
- نشانی
- خطاب به
- می افزاید:
- به تصویب رسید
- معرفی
- در امتداد
- همچنین
- مقدار
- an
- علم تجزیه و تحلیل
- و
- روش
- تقریبا
- معماری
- هستند
- AS
- At
- خواص
- میانگین
- پشتیبان گیری
- برج میزان
- مستقر
- BE
- زیرا
- قبل از
- شروع
- بودن
- در زیر
- مزایای
- میان
- تعصب
- جانبدارانه
- بیلیون
- بلاگ
- شکوفه
- تقویت شده
- هر دو
- اما
- by
- CAN
- مورد
- موارد
- محور
- به چالش
- مشخصات
- چارت سازمانی
- ارزان تر
- بررسی
- انتخاب
- کلاسیک
- طبقه بندی
- ساعت
- خوشه
- مقايسه كردن
- مقایسه
- مقایسه
- محاسباتی
- محاسبه
- محاسبه
- پیکر بندی
- در نظر گرفته
- استوار
- مصرف
- شامل
- معمولی
- هزینه
- هزینه
- پردازنده
- ایجاد
- داده ها
- دریاچه دریاچه
- روز
- نشان
- نشان می دهد
- مستقر
- مطلوب
- مختلف
- بعد
- بحث و تبادل نظر
- بحث کردیم
- متمایز
- توزیع شده
- محاسبات توزیع شده
- توزیع
- عمل
- انجام شده
- رانده
- دو
- در طی
- e
- هر
- به طور موثر
- بهره وری
- موثر
- از بین بردن
- در آغوش
- به پایان رسید
- تعامل
- افزایش می یابد
- افزایش
- غنی شده
- تمام
- اشخاص
- موجودیت
- محیط
- تاسیس
- ارزیابی
- در نهایت
- مثال
- اعدام
- گران
- تجارب
- آزمایش
- اکتشاف
- کشف
- در مواجهه
- تسهیل می کند
- واقعیت
- غلط
- سریعتر
- ویژگی
- امکانات
- کمی از
- فیلتر
- فیلترها برای تصفیه آب
- نهایی
- پنج
- به دنبال
- پیروی
- رد پا
- برای
- یافت
- از جانب
- تولید
- تولید می کند
- جغرافیایی
- داده
- خوب
- بهره برداری
- آیا
- کمک
- کمک کرد
- خیلی
- اصابت
- ساعت ها
- چگونه
- اما
- HTTPS
- شناسه ها
- if
- نشان می دهد
- تصور کنید
- پیاده سازی
- بهبود
- بهبود یافته
- ارتقاء
- بهبود
- in
- مشمول
- افزایش
- افزایش
- شاخص
- نشان دادن
- شاخص ها
- فرد
- اطلاعات
- حاوی اطلاعات مفید
- ذاتا
- اول
- ابداع
- یکپارچه
- ادغام
- ادغام
- اثر متقابل
- به
- معرفی
- موضوع
- مسائل
- IT
- ITS
- پیوستن
- پیوست
- پیوستن
- می پیوندد
- ژوئن
- کلید
- کلید
- برچسب ها
- عدم
- دریاچه
- زبان
- منجر می شود
- آموخته
- یادگیری
- رهبری
- کمتر
- اهرم
- بار
- محل
- به دنبال
- از دست رفته
- کم
- دستگاه
- فراگیری ماشین
- نگهداری
- اکثریت
- ساخت
- حداکثر عرض
- متوسط
- حافظه
- متریک
- میلیون
- میلیون ها نفر
- گم
- ML
- مدل
- مدل
- ماه
- بیش
- اکثر
- متحرک
- بسیار
- نیازمند
- منفی
- منفی
- بعد
- گره
- عدد
- هدف
- مشاهده
- of
- ارائه
- غالبا
- on
- فقط
- باز می شود
- عمل
- قابل استفاده
- عملیات
- بهینه
- بهینه سازی
- بهینه سازی
- بهینه
- بهینه سازی
- or
- وحی
- دیگر
- ما
- عملکرد بهتری نسبت به
- روی
- فائق آمدن
- بخش
- ویژه
- برای
- درصد
- کارایی
- انجام
- دوره
- فیشینگ
- خط لوله
- افلاطون
- هوش داده افلاطون
- PlatoData
- مثبت
- امکان
- پتانسیل
- دقت
- پیش بینی
- پیش بینی
- حضور
- در حال حاضر
- احتمال
- مشکل
- روند
- فرآیندهای
- در حال پردازش
- تولید
- ارائه
- اهداف
- نمایش ها
- سریع
- نرخ
- نرخ
- تعادل دوباره
- كاهش دادن
- کاهش
- را کاهش می دهد
- کاهش
- اشاره
- منظم
- از بین بردن
- نمایندگی
- ضروری
- منابع
- منابع فشرده
- منابع
- پاسخ
- نتیجه
- نتیجه
- نتایج
- Roblox
- دویدن
- اجرا می شود
- همان
- دید
- اسکن
- دوم
- بخش
- جلسه
- تنظیم
- چند
- نشان
- نشان داده شده
- نشان می دهد
- مخلوط کردن
- به طور قابل توجهی
- اندازه
- کوچک
- کوچکتر
- So
- راه حل
- فضا
- جرقه
- سرعت
- صرف
- ثبات
- پایدار
- ساقه ها
- گام
- مراحل
- ساختار
- متعاقبا
- قابل توجه
- چنین
- سیستم
- T
- جدول
- برخورد با
- قوانین و مقررات
- نسبت به
- که
- La
- آنها
- اینها
- آنها
- سوم
- این
- بدین ترتیب
- زمان
- به
- جمع
- سنتی
- آموزش
- دگرگونی
- درخت
- دو
- انواع
- زیر
- منحصر به فرد
- بر خلاف
- به روز شده
- به روز رسانی
- us
- استفاده
- استفاده کنید
- استفاده
- کاربر
- کاربران
- با استفاده از
- ارزشها
- دیوار
- بود
- مسیر..
- we
- هفته
- خوب
- بود
- چه زمانی
- چه
- که
- در حین
- ویکیپدیا
- با
- بدون
- مهاجرت کاری
- کارگر
- خواهد بود
- کتبی
- زفیرنت