AI News HubLIVE
サイト内リライト2 分で読了

リアルタイムAIのためのローリング集計

ローリング集計は、連続的に変化するデータウィンドウ上で統計量を計算し、リアルタイムの行動変化検出や異常検出を可能にします。本記事では、効率的なローリング集計のための3つのアプローチ(タイルウィンドウ集計、インクリメンタルビュー(Feldera)、RonDBの並列プッシュダウン集計)を探り、その計算複雑性とレイテンシを比較します。Hopsworksは、左シフト(プリコンピュート)と右シフト(オンデマンド)の両オプションを提供し、さまざまなユースケースに対応します。

ソースHacker News AI著者: LexSiga

ローリング集計はリアルタイムAIシステムにとって最も有用な入力データの1つであり、行動変化の検出や異常検出を可能にします。最近の傾向やパターンを圧縮された表現で捉え、インタラクティブなAIシステムが最低限のレイテンシ要件を満たすための特徴量の鮮度を実現します。ローリング集計は、リアルタイム機械学習システム(クレジットカード不正検出やパーソナライズドレコメンデーションなど)とインタラクティブエージェント(圧縮されたユーザー履歴や最近のアクティビティの要約など)の両方で使用されています。

ローリング集計は、連続的に移動するデータウィンドウ上の統計量を計算します。従来のタンブリングウィンドウやホッピングウィンドウとは異なり、ローリング集計は新しいイベントが到着したときに即座に結果を出力し、ウィンドウ長やウォーターマークによる遅延を回避します。記事では、ローリング集計の進化の歴史を振り返ります。タイルウィンドウ集計(AirbnbのChrononなど)から、インクリメンタルビューに基づくストリーム処理(Felderaなど)、そして最近ではRonDBによるネイティブデータベース並列集計へと至ります。

タイルウィンドウ集計は、ウィンドウを複数の固定時間ブロック(例:24時間)に分割し、これらのブロックの統計量を事前計算することで、リクエスト時にこれらのブロックを組み合わせ、整列されていない先頭/末尾イベントを計算します。この方法は一部の集計(最小値、最大値など)ではうまく機能しますが、平均値など追加の状態管理が必要な集計では複雑になります。

Felderaはより効率的な方法を提供します。インクリメンタルビュー技術を採用し、各更新の計算コストをウィンドウサイズに依存しないO(1)にします。つまり、ウィンドウ内のイベント数に関係なく、ローリング集計の計算に必要なマシンサイクル数は一定であり、サブミリ秒の鮮度を実現します。

RonDBは並列プッシュダウン技術により、集計計算をアプリケーションサーバーからデータベースノード内部に移行します。これにより、データベースはデータ行だけでなく集計結果も直接返すことができ、大量のネットワーク転送を回避します。ベンチマークでは、式集計やフィルタリング集計において、RonDBは10万行の規模でも約2ミリ秒のレイテンシを維持し、データノードを追加することで線形にスループットを拡張できます。

結論として、Hopsworksプラットフォームは左シフト(プリコンピュート)と右シフト(オンデマンド)の両方のローリング集計オプションを提供します。左シフトはFelderaのインクリメンタルビューを統合し、最大規模でサブミリ秒の鮮度が必要なシナリオに適しています。右シフトはRonDBの並列プッシュダウン集計を使用し、操作が簡単で中規模データを処理できます。ユーザーは要件に応じて柔軟に選択できます。