ملخص
كل يوم على roblox 65.5 يتفاعل مليون مستخدم مع ملايين التجارب، بإجمالي 14.0 مليار ساعة ربع سنوية يُنشئ هذا التفاعل بحيرة بيانات بحجم بيتابايت، والتي يتم إثراؤها لأغراض التحليلات والتعلم الآلي (ML). يعد الانضمام إلى جداول الحقائق والأبعاد في بحيرة البيانات الخاصة بنا عملية كثيفة الاستخدام للموارد، لذا لتحسين ذلك وتقليل خلط البيانات، قمنا بتبني Learned Bloom Filters [1] - هياكل البيانات الذكية باستخدام ML. ومن خلال التنبؤ بالتواجد، تقوم عوامل التصفية هذه بتقليص بيانات الانضمام إلى حد كبير، مما يؤدي إلى تحسين الكفاءة وتقليل التكاليف. وعلى طول الطريق، قمنا أيضًا بتحسين بنيات النماذج الخاصة بنا وأظهرنا الفوائد الكبيرة التي تقدمها لتقليل ساعات الذاكرة ووحدة المعالجة المركزية للمعالجة، فضلاً عن زيادة الاستقرار التشغيلي.
المُقدّمة
في بحيرة البيانات الخاصة بنا، يتم تقسيم جداول البيانات الفعلية ومكعبات البيانات مؤقتًا للوصول الفعال، بينما تفتقر جداول الأبعاد إلى مثل هذه الأقسام، كما أن دمجها مع جداول البيانات الفعلية أثناء التحديثات يتطلب استخدامًا مكثفًا للموارد. يتم تحديد المساحة الرئيسية للصلة بواسطة القسم الزمني لجدول الحقائق الذي يتم ضمه. كيانات البعد الموجودة في هذا القسم الزمني هي مجموعة فرعية صغيرة من تلك الموجودة في مجموعة بيانات البعد بأكملها. ونتيجة لذلك، يتم في النهاية تجاهل معظم بيانات البعد التي تم خلطها عشوائيًا في هذه الصلات. لتحسين هذه العملية وتقليل الخلط غير الضروري، فكرنا في استخدام مرشحات بلوم على مفاتيح ربط مميزة ولكن واجهت مشاكل في حجم الفلتر وبصمة الذاكرة.
لمعالجتها، اكتشفنا تعلمت مرشحات بلوم، وهو حل قائم على التعلم الآلي يقلل من حجم مرشح Bloom مع الحفاظ على معدلات إيجابية كاذبة منخفضة. يعزز هذا الابتكار كفاءة العمليات المشتركة عن طريق تقليل التكاليف الحسابية وتحسين استقرار النظام. يوضح المخطط التالي عمليات الربط التقليدية والمحسنة في بيئة الحوسبة الموزعة لدينا.
تعزيز كفاءة الانضمام باستخدام مرشحات Learned Bloom
لتحسين الصلة بين جداول الحقيقة وجداول الأبعاد، اعتمدنا تطبيق Learned Bloom Filter. لقد أنشأنا فهرسًا من المفاتيح الموجودة في جدول الحقائق وقمنا بعد ذلك بنشر الفهرس لتصفية بيانات الأبعاد مسبقًا قبل عملية الربط.
التطور من مرشحات بلوم التقليدية إلى مرشحات بلوم المستفادة
في حين أن مرشح Bloom التقليدي فعال، فإنه يضيف 15-25% من الذاكرة الإضافية لكل عقدة عاملة تحتاج إلى تحميلها للوصول إلى المعدل الإيجابي الخاطئ المطلوب. ولكن من خلال تسخير مرشحات Learned Bloom، حققنا انخفاضًا كبيرًا في حجم المؤشر مع الحفاظ على نفس المعدل الإيجابي الخاطئ. وذلك بسبب تحول مرشح بلوم إلى مشكلة تصنيف ثنائية. تشير التسميات الإيجابية إلى وجود قيم في الفهرس، بينما تعني التسميات السلبية أنها غائبة.
يؤدي إدخال نموذج تعلم الآلة إلى تسهيل الفحص الأولي للقيم، متبوعًا بفلتر Bloom الاحتياطي لإزالة السلبيات الكاذبة. ينبع الحجم المنخفض من التمثيل المضغوط للنموذج وانخفاض عدد المفاتيح التي يتطلبها مرشح Bloom الاحتياطي. وهذا ما يميزه عن نهج Bloom Filter التقليدي.
وكجزء من هذا العمل، أنشأنا مقياسين لتقييم نهج Learned Bloom Filter الخاص بنا: حجم الكائن المتسلسل النهائي للفهرس واستهلاك وحدة المعالجة المركزية أثناء تنفيذ استعلامات الانضمام.
التنقل في تحديات التنفيذ
كان التحدي الأولي الذي واجهنا هو معالجة مجموعة بيانات التدريب المتحيزة للغاية مع عدد قليل من مفاتيح جدول الأبعاد في جدول الحقائق. ومن خلال القيام بذلك، لاحظنا تداخلًا بنسبة واحد من كل ثلاثة مفاتيح تقريبًا بين الجداول. ولمعالجة هذه المشكلة، قمنا بالاستفادة من منهج Sandwich Learned Bloom Filter [2]. يدمج هذا مرشح Bloom التقليدي الأولي لإعادة التوازن إلى توزيع مجموعة البيانات عن طريق إزالة غالبية المفاتيح التي كانت مفقودة من جدول الحقائق، مما يؤدي بشكل فعال إلى إزالة العينات السلبية من مجموعة البيانات. بعد ذلك، تم فقط إعادة توجيه المفاتيح المضمنة في مرشح بلوم الأولي، إلى جانب الإيجابيات الكاذبة، إلى نموذج تعلم الآلة، والذي يشار إليه غالبًا باسم "أوراكل المستفادة". أدى هذا النهج إلى مجموعة بيانات تدريبية متوازنة بشكل جيد لأوراكل المستفادة، والتغلب على مشكلة التحيز بشكل فعال.
أما التحدي الثاني فقد تركز على بنية النموذج وميزات التدريب. على عكس المشكلة التقليدية المتمثلة في عناوين URL للتصيد الاحتيالي [1]، لم تكن مفاتيح الانضمام الخاصة بنا (والتي تكون في معظم الحالات معرفات فريدة للمستخدمين/التجارب) مفيدة بطبيعتها. قادنا هذا إلى استكشاف سمات البعد كميزات نموذجية محتملة يمكن أن تساعد في التنبؤ بما إذا كان كيان البُعد موجودًا في جدول الحقائق. على سبيل المثال، تخيل جدول حقائق يحتوي على معلومات جلسة المستخدم للتجارب في لغة معينة. سيكون الموقع الجغرافي أو سمة تفضيل اللغة لبُعد المستخدم بمثابة مؤشرات جيدة حول ما إذا كان المستخدم الفردي موجودًا في جدول الحقائق أم لا.
أما التحدي الثالث، ألا وهو زمن الاستدلال، فيتطلب نماذج تقلل من النتائج السلبية الكاذبة وتوفر استجابات سريعة. كان النموذج الشجري المعزز بالتدرج هو الخيار الأمثل لهذه المقاييس الرئيسية، وقمنا بتقليص مجموعة ميزاته لتحقيق التوازن بين الدقة والسرعة.
استعلام الانضمام المحدث الخاص بنا باستخدام مرشحات Bloom التي تم تعلمها هو كما هو موضح أدناه:
النتائج
فيما يلي نتائج تجاربنا مع مرشحات Learned Bloom في بحيرة البيانات الخاصة بنا. لقد قمنا بدمجها في خمسة أحمال عمل إنتاجية، كل منها يمتلك خصائص بيانات مختلفة. الجزء الأكثر تكلفة من الناحية الحسابية لأحمال العمل هذه هو الربط بين جدول الحقائق وجدول الأبعاد. تبلغ المساحة الرئيسية لجداول الحقائق حوالي 30% من جدول الأبعاد. في البداية، نناقش كيف تفوق Learned Bloom Filter على مرشحات Bloom التقليدية من حيث الحجم النهائي للكائن المتسلسل. بعد ذلك، نعرض تحسينات الأداء التي لاحظناها من خلال دمج Learned Bloom Filters في مسارات معالجة عبء العمل لدينا.
تعلم مقارنة حجم مرشح بلوم
كما هو موضح أدناه، عند النظر إلى معدل إيجابي كاذب معين، يعمل البديلان من مرشح Bloom الذي تم تعلمه على تحسين الحجم الإجمالي للكائن بنسبة تتراوح بين 17-42% مقارنة بمرشحات Bloom التقليدية.
بالإضافة إلى ذلك، باستخدام مجموعة فرعية أصغر من الميزات في نموذجنا القائم على الشجرة المعززة بالتدرج، فقد فقدنا نسبة صغيرة فقط من التحسين بينما جعلنا الاستدلال أسرع.
تعلمت نتائج استخدام مرشح بلوم
في هذا القسم، نقوم بمقارنة أداء الصلات المستندة إلى Bloom Filter بأداء الصلات العادية عبر عدة مقاييس.
يقارن الجدول أدناه أداء أحمال العمل مع وبدون استخدام Learned Bloom Filters. يوضح عامل تصفية Learned Bloom بإجمالي احتمالية إيجابية كاذبة بنسبة 1% المقارنة أدناه مع الحفاظ على نفس تكوين المجموعة لكلا النوعين من الروابط.
أولاً، وجدنا أن تنفيذ Bloom Filter تفوق على الربط العادي بما يصل إلى 60% في ساعات وحدة المعالجة المركزية. لقد شهدنا زيادة في استخدام وحدة المعالجة المركزية لخطوة المسح لنهج Learned Bloom Filter بسبب الحوسبة الإضافية التي تم إنفاقها في تقييم Bloom Filter. ومع ذلك، أدت التصفية المسبقة التي تم إجراؤها في هذه الخطوة إلى تقليل حجم البيانات التي يتم خلطها، مما ساعد على تقليل وحدة المعالجة المركزية المستخدمة في الخطوات النهائية، وبالتالي تقليل إجمالي ساعات وحدة المعالجة المركزية.
ثانيًا، تحتوي مرشحات Learned Bloom على إجمالي حجم بيانات أقل بنسبة 80% تقريبًا وإجمالي وحدات البايت العشوائية المكتوبة بنسبة 80% تقريبًا مقارنة بالصلة العادية. يؤدي هذا إلى أداء انضمام أكثر استقرارًا كما هو موضح أدناه.
لقد شهدنا أيضًا انخفاضًا في استخدام الموارد في أعباء عمل الإنتاج الأخرى قيد التجربة. على مدار فترة أسبوعين عبر جميع أعباء العمل الخمسة، حقق نهج Learned Bloom Filter متوسطًا وفورات في التكاليف اليومية of 25٪، والذي يمثل أيضًا التدريب النموذجي وإنشاء الفهرس.
نظرًا لانخفاض كمية البيانات التي تم خلطها أثناء إجراء عملية الربط، فقد تمكنا من تقليل التكاليف التشغيلية لمسار التحليلات الخاص بنا بشكل كبير مع جعلها أكثر استقرارًا أيضًا. يوضح الرسم البياني التالي التباين (باستخدام معامل التباين) في فترات التشغيل (الجدار وقت الساعة) لأعباء عمل الانضمام العادية وعبء العمل المستند إلى Learned Bloom Filter على مدار فترة أسبوعين لأحمال العمل الخمسة التي جربناها. كانت عمليات التشغيل باستخدام Learned Bloom Filters أكثر استقرارًا - وأكثر اتساقًا في المدة - مما يفتح إمكانية نقلها إلى موارد حوسبة عابرة أرخص وغير موثوقة.
مراجع حسابات
[1] ت. كراسكا، أ. بيوتل، إي إتش تشي، ج. دين، ون. بوليزوتيس. حالة هياكل الفهرس المستفادة. https://arxiv.org/abs/1712.01208، 2017.
[2] م. ميتسنماخر. تحسين مرشحات بلوم المتعلمة عن طريق ساندويتش.
https://arxiv.org/abs/1803.01474، 2018.
¹اعتبارًا من الثلاثة أشهر المنتهية في 3 يونيو 30
²اعتبارًا من الثلاثة أشهر المنتهية في 3 يونيو 30
- محتوى مدعوم من تحسين محركات البحث وتوزيع العلاقات العامة. تضخيم اليوم.
- PlatoData.Network Vertical Generative Ai. تمكين نفسك. الوصول هنا.
- أفلاطونايستريم. ذكاء Web3. تضخيم المعرفة. الوصول هنا.
- أفلاطون كربون، كلينتك ، الطاقة، بيئة، شمسي، إدارة المخلفات. الوصول هنا.
- أفلاطون هيلث. التكنولوجيا الحيوية وذكاء التجارب السريرية. الوصول هنا.
- المصدر 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
- انها
- الانضمام
- انضم
- انضمام
- ينضم
- يونيو
- القفل
- مفاتيح
- ملصقات
- نقص
- بحيرة
- لغة
- يؤدي
- تعلم
- تعلم
- ليد
- أقل
- الاستدانة
- تحميل
- موقع
- أبحث
- ضائع
- منخفض
- آلة
- آلة التعلم
- المحافظة
- أغلبية
- القيام ب
- ماكس العرض
- تعني
- مكبر الصوت : يدعم، مع دعم ميكروفون مدمج لمنع الضوضاء
- المقاييس
- مليون
- ملايين
- مفقود
- ML
- نموذج
- عارضات ازياء
- المقبلة.
- الأكثر من ذلك
- أكثر
- يتحرك
- كثيرا
- الحاجة
- سلبي
- السلبيات
- التالي
- العقدة
- عدد
- موضوع
- ملاحظ
- of
- عرض
- غالبا
- on
- فقط
- يفتح
- عملية
- تشغيل
- عمليات
- الأمثل
- التحسين
- الأمثل
- الأمثل
- تحسين
- or
- أوراكل
- أخرى
- لنا
- تفوقت
- على مدى
- التغلب على
- جزء
- خاص
- إلى
- نسبة مئوية
- أداء
- أداء
- فترة
- التصيد
- خط أنابيب
- أفلاطون
- الذكاء افلاطون البيانات
- أفلاطون داتا
- إيجابي
- إمكانية
- محتمل
- دقة
- تنبأ
- توقع
- وجود
- يقدم
- الاحتمالات
- المشكلة
- عملية المعالجة
- العمليات
- معالجة
- الإنتــاج
- المقدمة
- أغراض
- الاستفسارات
- سريع
- معدل
- الأجور
- إعادة التوازن
- تخفيض
- عقار مخفض
- يقلل
- تقليص
- يشار
- منتظم
- إزالة
- التمثيل
- مطلوب
- مورد
- موارد كثيفة
- الموارد
- ردود
- نتيجة
- أدى
- النتائج
- Roblox
- يجري
- يدير
- نفسه
- رأى
- تفحص
- الثاني
- القسم
- الجلسة
- طقم
- عدة
- إظهار
- أظهرت
- يظهر
- خلط ورق اللعب
- بشكل ملحوظ
- المقاس
- صغير
- الأصغر
- So
- حل
- الفضاء
- شرارة
- سرعة
- قضى
- استقرار
- مستقر
- السيقان
- خطوة
- خطوات
- الهياكل
- بعد ذلك
- جوهري
- هذه
- نظام
- T
- جدول
- معالجة
- سياسة الحجب وتقييد الوصول
- من
- أن
- •
- منهم
- تشبه
- هم
- الثالث
- وهكذا
- الوقت
- إلى
- الإجمالي
- تقليدي
- قادة الإيمان
- تحول
- شجرة
- اثنان
- أنواع
- مع
- فريد من نوعه
- مختلف
- تحديث
- آخر التحديثات
- us
- الأستعمال
- تستخدم
- مستعمل
- مستخدم
- المستخدمين
- استخدام
- القيم
- جدار
- وكان
- طريق..
- we
- أسابيع
- حسن
- كان
- متى
- سواء
- التي
- في حين
- ويكيبيديا
- مع
- بدون
- للعمل
- عامل
- سوف
- مكتوب
- زفيرنت