AI News HubLIVE
站內改寫1 分鐘閱讀

用於實時AI的滾動聚合

滾動聚合對實時AI系統至關重要,能夠以低延遲捕捉最新趨勢和模式,用於行為變化檢測和異常檢測。本文介紹了三種計算滾動聚合的方法:平鋪窗口聚合、增量視圖(Feldera)和並行下推聚合(RonDB),並比較了它們的計算複雜度和延遲。Hopsworks平台同時支持左移(預計算)和右移(按需計算)兩種方式,為不同場景提供靈活性。

來源Hacker News AI作者: LexSiga

滾動聚合是實時AI系統中最重要的輸入數據之一,它們能夠以壓縮表示形式捕捉最近的行為趨勢和模式,使交互式AI系統滿足最低延遲要求。滾動聚合在實時機器學習系統(如信用卡欺詐檢測和個性化推薦)以及交互式智能體(如壓縮用户歷史或近期活動摘要)中都有廣泛應用。

滾動聚合計算的是持續滑動窗口上的統計量。與傳統的平鋪窗口或跳躍窗口不同,滾動聚合在每次新事件到達時立即輸出結果,避免了窗口長度或水印帶來的延遲。文章回顧了滾動聚合的發展歷程:從平鋪窗口聚合(如Airbnb的Chronon)到基於增量視圖的流處理(如Feldera),再到最近以RonDB為代表的原生數據庫並行聚合。

平鋪窗口聚合通過將窗口分解為多個固定時間塊(如24小時)並預先計算這些塊的統計量,在收到請求時組合這些塊並計算未對齊的頭尾事件,從而降低計算開銷。這種方法對於某些聚合(如最小值、最大值)效果良好,但對於均值等需要額外狀態維護的聚合則複雜一些。

Feldera提供了一種更高效的方法:採用增量視圖技術,使得每次更新的計算成本恆定在O(1),不受窗口大小影響。這意味着無論窗口中有多少事件,計算一個滾動聚合所需的機器週期保持不變,從而實現了亞毫秒級的新鮮度。

RonDB則通過並行下推技術,將聚合計算從應用服務器轉移到數據庫節點內部。這樣,數據庫不僅能返回數據行,還能直接返回聚合結果,避免了大量網絡傳輸。基準測試顯示,對於表達式聚合和過濾聚合,RonDB在100,000行規模下仍能保持2毫秒左右的延遲,且可通過增加數據節點線性擴展吞吐量。

總之,Hopsworks平台同時提供左移(預計算)和右移(按需計算)兩種滾動聚合方案。左移方案集成Feldera的增量視圖,適合需要最大規模且亞毫秒級新鮮度的場景;右移方案使用RonDB的並行下推聚合,操作簡單,可處理中等規模數據。用户可根據需求靈活選擇。