dropbox怎么用(iPad使用dropbox)( 二 )


在探索預覽優化之前,我們想確保節省的成本能夠超過構建機器學習解決方案的成本 。我們大致估算了一下 Cannes 項目可以節省的成本 。在大型分布式系統中設計和部署機器學習系統,你需要考慮系統的變化隨著時間的推移對你的估計產生的影響 。我們希望初始的模型盡量簡單,這樣一來即使相鄰系統發生一些很小的變化,成本的影響也不會出現數量級的變化 。通過分析訓練好的模型,可以讓我們更好地了解第一版實際可以節省的成本,并確認這項投資是值得的 。
我們利用內部的功能開關服務 Stormcrow,在 Dropbox 流量 1%的隨機樣本上,針對模型進行了 A / B 測試 。我們驗證了模型的準確率和預熱“節省”的成本符合我們離線分析的結果,這是個好消息!由于 Cannes v1 不再預熱所有符合條件的文件,因此我們知道預計緩存命中率會下降 。在實驗期間,我們觀察到緩存命中率比 A / B 測試中的對照組低了幾個百分點 。盡管百分比下降了,但總體的預覽延遲基本上保持不變 。
我們非常關心尾延遲(第 90 個百分位數以上的請求延遲),因為緩存未命中會導致尾延遲過高,進而嚴重地影響用戶的預覽功能 。然而,我們并沒有觀察到預覽尾延遲或總體延遲明顯上升,這很讓人欣慰 。這次實時測試讓我們信心大增,我們決定將 v1 模型部署到更多 Dropbox 流量 。
大規模的實時預測我們需要一種方法,當某個文件進入預熱路徑時,實時地告訴Riviera該文件是否需要預熱 。為了解決這個問題,我們將 Cannes 構建成了預測流水線,負責提取與文件相關的信號,并將其發送給模型,供模型預測未來使用預覽的可能性 。
圖:Cannes的架構

  1. 從Rivieraprewarm path(預熱路徑)接收文件 ID 。Riviera 會收集所有可進行預熱的文件 ID 。(Riviera可以預覽 Dropbox 存儲的大約 98%的文件 。只有很少一部分文件的文件類型不支持,或無法預覽 。)Riviera 發送一條預測請求,其中包含需要預測文件 ID 以及文件類型 。
  2. 獲取實時信號 。為了收集預測期間文件的最新活動信號,我們使用了一個名為“Suggest Backend”(建議后臺)的內部服務 。該服務會驗證預測請求,然后查詢與該文件相關的信號 。信號存儲在 Edgestore(Dropbox 主要的元數據存儲系統)或 User Profile Service(RocksDB 數據存儲,負責聚合Dropbox 活動信號)中 。
  3. 將信號編碼為特征向量 。收集到的信號會被發送到 Predict Service(預測服務),由該服務將信號編碼為表示文件所有相關信息的特征向量,然后將這個向量發送給模型進行評估 。
  4. 生成預測 。模型使用特征向量,返回該文件可能會被預覽的概率 。接著,這個預測結果會被發送回 Riviera,并由 Riviera 預熱未來 60 天內可能會被預覽的文件 。
  5. 記錄請求的相關信息 。SuggestBackend(建議后臺)會記錄下特征向量、預測結果和請求狀態,這些都是調查性能下降和延遲問題的關鍵信息 。

其他考慮事項減少預測延遲很重要,因為上述管道位于 Riviera 預熱功能的關鍵路徑上 。例如,當將這個模型擴展到 25%的流量時,我們觀察到了一些極端的情況,導致建議后臺的可用性降低到了內部 SLA 以下 。
經過分析后,我們發現上述第 3 步出現了超時的問題 。因此,我們改進了特征編碼處理,并優化了預測路徑上的幾個問題,降低了這些極端情況下的尾延遲 。
優化機器學習在推出機器學習模型的過程期間(及其之后),我們非常注重穩定性,并確保不會對預覽界面的用戶體驗產生負面影響 。多個層面的監視和警報是部署機器學習的關鍵組成部分 。
Cannesv1 的指標預測服務基礎設施的指標:共享系統有自己內部的 SLA,主要都是圍繞正常運行時間和可用性 。我們依靠 Grafana 等現成的工具進行實時監控和發送警報 。我們監控的指標包括:
  • 建議后臺與預測的可用性 。
  • 用戶個人資料服務的數據新鮮度 。
預覽指標:我們有一些預覽性能方面的關鍵指標,即預覽延遲分布 。我們保留了3%的存檔數據,用于比較使用 Cannes 與不使用 Cannes 兩種情況下的預覽指標,以防止模型漂移或可能會降低模型性能的系統變化 。Grafana 是一款應用程序級指標的通用解決方案 。主要指標包括: