• Robloxは巨大なデータレイクを持ち、データ結合を最適化するために機械学習最適化ブルームフィルターを使用している。
  • ブルームフィルターは、MLを使用してデータの存在を予測し、結合データを効率的に縮小する。
  • モデルアーキテクチャの改善により、メモリとCPU時間の削減にも大きな利点がある。

How Roblox Reduces Spark Join Query Costs With Machine Learning Optimized Bloom Filters

Abstract Every day on Roblox, 65.5 million users engage with millions of experiences, totaling 14.0 billion hours quarterly. This interaction generates a petabyte-scale data lake, which is enriched for analytics and machine learning (ML) purposes. It’s resource-intensive to join fact and dimension tables in our data lake, so to optimize this and reduce data shuffling, […]
The post How Roblox Reduces Spark Join Query Costs With Machine Learning Optimized Bloom Filters appeared first on Roblox Blog.

How Roblox Reduces Spark Join Query Costs With Machine Learning Optimized Bloom Filters November 28, 2023 by Aditya Mangal, Sourashis Roy, Sandeep Akinapelli, Anupam Singh, Jerome Boulon Product & Tech Abstract Every day on Roblox, 65.5 million users engage with millions of experiences, totaling 14.0 billion hours quarterly. This interaction generates a petabyte-scale data lake, which is enriched for analytics and machine learning (ML) purposes. It’s resource-intensive to join fact and dimension tables in our data lake, so to optimize this and reduce data shuffling, we embraced Learned Bloom Filters [1]—smart data structures using ML. By predicting presence, these filters considerably trim join data, enhancing efficiency and reducing costs. Along the way, we also improved our model architectures and demonstrated the substantial benefits they offer for reducing memory and CPU hours for processing, as well as increasing operational stability. Introduction In our data lake, fact tables and data cubes are temporally partitioned for efficient access, while dimension tables lack such partitions, and joining them with fact tables during updates is resource-intensive. The key space of the join is driven by the temporal partition of the fact table being joined. The dimension entities present in that temporal partition are a small subset of those  present in the entire dimension dataset. As a result, the majority of the shuffled dimension data in these joins is eventually discarded. To optimize this process and reduce unnecessary shuffling, we considered using Bloom Filters on distinct join keys but faced filter size and memory footprint issues. To address them, we explored Learned Bloom Filters, an ML-based solution that reduces Bloom Filter size while maintaining low false positive rates. This innovation enhances the efficiency of join operations by reducing computational costs and improving system stability. The following schematic illustrates the conventional and optimized join processes in our distributed computing environment. Enhancing Join Efficiency with Learned Bloom Filters To optimize the join between fact and dimension tables, we adopted the Learned Bloom Filter implementation. We constructed an index from the keys present in the fact table and subsequently deployed the index to pre-filter dimension data before the join operation.  Evolution from Traditional Bloom Filters to Learned Bloom Filters While a traditional Bloom Filter is efficient, it adds 15-25% of additional memory per worker node needing to load it to hit our desired false positive rate. But by harnessing Learned Bloom Filters, we achieved a considerably reduced index size while maintaining the same false positive rate. This is because of the transformation of the Bloom Filter into a binary classification problem. Positive labels indicate the presence of values in the index, while negative labels mean they’re absent. The introduction of an ML model facilitates the initial check for values, followed by a backup Bloom Filter for eliminating false negatives. The reduced size stems from the model’s compressed representation and reduced number of keys required by the backup Bloom Filter. This distinguishes it from the conventional Bloom Filter approach.  As part of this work, we established two metrics for evaluating our Learned Bloom Filter approach: the index’s final serialized object size and CPU consumption during the execution of join queries.  Navigating Implementation Challenges Our initial challenge was addressing a highly biased training dataset with few dimension table keys in the fact table. In doing so, we observed an overlap of approximately one-in-three keys between the tables. To tackle this, we leveraged the Sandwich Learned Bloom Filter approach [2]. This integrates an initial traditional Bloom Filter to rebalance the dataset distribution by removing the majority of keys that were missing from the fact table, effectively eliminating negative samples from the dataset. Subsequently, only the keys included in the initial Bloom Filter, along with the false positives, were forwarded to the ML model, often referred to as the “learned oracle.” This approach resulted in a well-balanced training dataset for the learned oracle, overcoming the bias issue effectively. The second challenge centered on model architecture and training features. Unlike the classic problem of phishing URLs [1], our join keys (which in most cases are unique identifiers for users/experiences) weren’t inherently informative. This led us to explore dimension attributes as potential model features that can help predict if a dimension entity is present in the fact table. For example, imagine a fact table that contains user session information for experiences in a particular language. The geographic location or the language preference attribute of the user dimension would be good indicators of whether an individual user is present in the fact table or not. The third challenge—inference latency—required models that both minimized false negatives and provided rapid responses. A gradient-boosted tree model was the optimal choice for these key metrics, and we pruned its feature set to balance precision and speed. Our updated join query using learned Bloom Filters is as shown below: Results Here are the results of our experiments with Learned Bloom filters in our data lake. We integrated them into five production workloads, each of which possessed different data characteristics. The most computationally expensive part of these workloads is the join between a fact table and a dimension table. The key space of the fact tables is approximately 30% of the dimension table. To begin with, we discuss how the Learned Bloom Filter outperformed traditional Bloom Filters in terms of final serialized object size. Next, we show performance improvements that we observed by integrating Learned Bloom Filters into our workload processing pipelines. Learned Bloom Filter Size Comparison As shown below, when looking at a given false positive rate, the two variants of the learned Bloom Filter improve total object size by between 17-42% when compared to traditional Bloom Filters. In addition, by using a smaller subset of features in our gradient boosted tree based model, we lost only a small percentage of optimization while making inference faster. Learned Bloom Filter Usage Results  In this section, we compare the performance of Bloom Filter-based joins to that of regular joins across several metrics.  The table below compares the performance of workloads with and without the use of Learned Bloom Filters. A Learned Bloom Filter with 1% total false positive probability demonstrates the comparison below while maintaining the same cluster configuration for both join types.  First, we found that Bloom Filter implementation outperformed the regular join by as much as 60% in CPU hours. We saw an increase in CPU usage of the scan step for the Learned Bloom Filter approach due to the additional compute spent in evaluating the Bloom Filter. However, the prefiltering done in this step reduced the size of data being shuffled, which helped reduce the CPU used by the downstream steps, thus reducing the total CPU hours. Second, Learned Bloom Filters have about 80% less total data size and about 80% less total shuffle bytes written than a regular join. This leads to more stable join performance as discussed below.  We also saw reduced resource usage in our other production workloads under experimentation. Over a period of two weeks across all five workloads, the Learned Bloom Filter approach generated an average daily cost savings of 25%, which also accounts for model training and index creation. Due to the reduced amount of data shuffled while performing the join, we were able to significantly reduce the operational costs of our analytics pipeline while also making it more stable.The following chart shows variability (using a coefficient of variation) in run durations (wall clock time) for a regular join workload and a Learned Bloom Filter based workload over a two-week period for the five workloads we experimented with. The runs using Learned Bloom Filters were more stable—more consistent in duration—which opens up the possibility of moving them to cheaper transient unreliable compute resources.  References [1]  T. Kraska, A. Beutel, E. H. Chi, J. Dean, and N. Polyzotis. The Case for Learned Index Structures. https://arxiv.org/abs/1712.01208, 2017. [2] M. Mitzenmacher. Optimizing Learned Bloom Filters by Sandwiching.  https://arxiv.org/abs/1803.01474, 2018. ¹As of 3 months ended June 30, 2023 ²As of 3 months ended June 30, 2023 Recommended Causal Inference Using Instrumental VariablesIntroducing Custom Material Variants and New Enhancements to MaterialsUnleashing Creator Productivity with Open CloudRevolutionizing Creation on Roblox with Generative AI

全文表示

ソース:https://blog.roblox.com/2023/11/roblox-reduces-spark-join-query-costs-machine-learning-optimized-bloom-filters/

「ROBLOX」最新情報はこちら ROBLOXの動画をもっと見る
セルランの推移をチェックしましょう
11月28日
前日の様子
ゲームセールス:圏外
総合セールス:圏外
無料ランキング:51位
23'11月29日(水曜日)
記事掲載日
※1日の最高順位
ゲームセールス:圏外
総合セールス:圏外
無料ランキング:60位
無料ランキング急上昇 注目度が高くなっています。ゲームを開始するチャンスです。
無料ランキング上位
※初心者にオススメ!
話題性もあり新規またはアクティブユーザーが多い。リセマラのチャンスの可能性も高くサービス開始直後や 期間などのゲームも多い。
サービス開始日 2012年12月11日
何年目? 4205日(11年6ヶ月)
周年いつ? 次回:2024年12月11日(12周年)
アニバーサリーまで あと178日
ハーフアニバーサリー予測 2025年6月11日(12.5周年)
あと360日
運営 Roblox Corporation
ROBLOX情報
ROBLOXについて何でもお気軽にコメントしてください(匿名)

Roblox(ロブロックス)は、無料でカンタンにダウンロードできる制作・交流型のバーチャル空間プラットフォームです。世界中のクリエーターが制作・投稿した膨大な数のバーチャル空間で友達と交流したりしながら楽しみましょう。 バーチャル空間が何百万本もラインナップ Robloxのバーチャル空間には、何百万通りの楽しみ方があります。例えば... ・話題の映画やテレビ番組の公式ワールドを探検 ・バーチャルコンサート鑑賞 ・一流ファッションブランドのアパレル試着 ・ホラー空間で肝試し ・eスポーツでみんなと試合したり、格闘ゲームや障害物アスレに挑戦 ・世界の都市で観光体験 ・アバターになったミュージシャンやタレントと交流 …など、盛りだくさんです。 みんなとつながれます ・パソコン、モバイル、Xbox One、VRヘッドセットなど、ほとんどの端末環境で動作。 ・友達と同じ端末を使っていなくても一緒に楽しめます。 ・テキストと音声チャット機能とプライベートメッセージ機能つき。 ・グループ機能で同じ趣味や推しの世界規模のコミュニティとつながれます。 ・アバターとして通話できる通信機能、Roblox Connect(ロブロックス・コネクト)搭載。 なりたい自分になれちゃいます ・アバターをカスタマイズして自分らしくコーディネート。 ・ブランドや企業のバーチャル空間内でバーチャル商品の購入もできます。 ・語学や教育に特化したバーチャル空間でスキルアップも。  ・プログラミングやデザインを学べるツールも満載。 ・アイテムやバーチャル空間を制作して、クリエーターデビューもできます。 オリジナルのバーチャル空間制作: https://www.roblox.com/develop サポート: https://help.roblox.com お問い合わせ: https://corp.roblox.com/contact/ プライバシーポリシー: https://en.help.roblox.com/hc/ja/articles/115004630823 保護者ガイド: https://corp.roblox.com/parents/ 利用規約: https://www.roblox.com/info/terms ご注意: 参加するには、ネットワーク接続が必要です。Robloxは、Wi-Fiに接続した状態での使用が最適です。Roblox上の機能やコンテンツの一部は、お住まいの国や地域、お使いの言語ではご利用いただけない場合があります。
全文表示
this game very good. But there is one problem. I'm playing Roblox on mobile, but I can't make it even if I want to. Please build a studio on mobile. Please. (★5)(24/6/15)
こんにちは。もしくはこんばんは。早速ですがまずロブロックスについての解説、ロブロックスは数万ものミニゲームなようなものが沢山あるゲームです。(語彙力なくてすみません) まずメリットです たくさんの人と交流できてとてもいいと思います、しかしデメリットとして、悪口を言われたりします。そこの点はチャットがある以上しょうがないと思うのですが、それでもダメですよね。 そして二つ目、たくさんのゲームがあるので、自分のあったゲームを見つけることができます。なんなら自分で作れちゃいます!しかし荒らし、チーターなどが多いです。 デメリット デメリットとしては、やっぱりキッズと言いますか、キ○ガイと言いますか、民度があんまり良くないですね。さっきも言った通り荒らしやチーターが多いです。そして二つ目、ゲーム内通貨に「ロバックス(以下ロバ)」と言うものがあります。それは課金、もしくはロバの寄付ゲームがあります。課金内容はこちらです。(数年経ったりすると変動する可能性があります。あと機種の違いとか?) 80¥40ロバ、160¥80ロバ、800¥400ロバ、1600¥800ロバのようなものがあります。コンビニでロバックスカードというのも売ってますね(アマギフのようなもの)40ロバは、服2着とか、アクセサリーギリ買えるかも…?みたいな感じです。80ロバは、一部アクセサリー、服8着ほどでしょうか?400ロバ有ればパスなどが買えるでしょう。(パスはミニゲームのお金を買えたりとか車のゲームだったらクルマ解放できたりとか…)800ロバ有ればいろんなものが買えるでしょう。 アニメキャラクターなどになると400ロバは大体超えます。(おそらく) こんなものでしょうか?結構短くしたつもりなのですがどうでしょう?インストールするかはそこのあなた次第です。インストールしろとは言いません。辞めたければ辞めても、わたしは気にしません、全てあなたが決めるのです!それでは! あ、あとフレンド(LINEでいう友達のようなやつ)は最大200人です。ロバ乞食などもいますのでご注意ください。私はロブロックスやってきます〜! サイナラ (★4)(24/6/14)
このゲーム無課金の人が楽しめるやつもあるんですが、少しだけ課金要素を減らしてください、それかゲームを遊んでミッションをクリアするとロバックス的な交換するために必要なものが貰えるという設定とかにして欲しいです、そしたら課金してた人が不公平だと思いますが課金してた人には特別なアイテム3つ送るとかしたらいいと思いますこのようにしなくてはいいのですが、少しでも課金要素が減ってくれると無課金勢が遊べる幅が広がるのでよろしくお願いします。でもこのゲーム自体はすごく楽しいです! (★4)(24/6/14)
まじで最高😀だって色んなゲームがあってスキンも無料のやつだけでも可愛く出来ちゃう!!もう最高!最高!最高!さいこう!さいこう!さいこう!さいこう!さいこう!最高!心(チロピノロブロシテナイ)ああなんでも!と に か く ! 最&高!!特に好きなのは〜うん!名前わからない! (★5)(24/6/14)
2日ぐらいでしたっけ。昔に戻った時。まだそれが戻ってないんですよ… :(˘•̥ㅁ•̥˘ ):全然戻らなくてどうしたら良いのか分かりません。アップデート来ても治ってなくて、、、いつも使いにくくて画面がでかくなったり小さくなったりしてて、友達は戻ってて、、、どうすれば良いですか?教えてくれたら嬉しいです! (★4)(24/6/14)
私は実際にはいない生き物が大好きです(ドラゴンなど)なので、 creature of sonaria dragon adventures この二つのゲームを常にやっています。 私のアカウントにはいまのことろ問題はありませんが、私の友人はロブロックスのアカウントに3回アクセスできなくなり、ついにロブロックスを辞めてしまったので、バックアップはとても大切だと思います(私もそうしています) とにかく、私は最高のゲームだと思っています‼︎‼︎‼︎🎉 (★4)(24/6/14)
レビューをもっと見る

One thought on “「ロブロックス、機械学習最適化ブルームフィルターでSpark Joinクエリのコスト削減を実現」”

  1. Robloxは巨大なデータレイクを持っており、このデータを効率的に結合するために機械学習を活用しています。このアプローチは効果的であり、メモリやCPUの使用量を削減し、処理時間を短縮することができるようです。興味深い取り組みだと感じました。

ご意見らくがき帳

匿名で自由にコメントしてください

カテゴリーへ移動して「ROBLOX」の最新情報をチェックしてください