Lyft如何儲存支援其ML模型的大規模特徵資料?
機器學習是 Lyft 應用程式的支柱,Lyft 的 Feature Serving 服務負責為這些 ML 模型提供特徵資料。
- Lyft 如何使用 Flyte 和 Apache Flink 儲存特徵定義並將特徵資料提取到服務中。
- Lyft 如何使用 Redis、DynamoDB、Hive 和 Elasticsearch 為其所有 ML 模型提供特徵資料。
Lyft 在其應用程式中廣泛使用機器學習。他們使用 ML 模型來確定將司機與乘客匹配的最佳方式、計算行程價格、向乘客分發優惠券等等。
為了讓 ML 模型執行,Lyft 工程師必須確保模型的特徵始終可用。
特徵Feature是 ML 模型用來進行預測的輸入。
如果你正在構建一個預測房屋售價的機器學習演算法,一些特徵可能是臥室數量、平方英尺、郵政編碼等。
Lyft 機器學習平臺的核心部分是他們的 Feature Serving特徵服務,它確保 ML 模型可以低延遲地訪問特徵資料。
Feature Serving 特徵服務的核心部分是
- 特徵定義
- 特徵攝取
- 特徵處理與檢索
Vinay Kakade 在 Lyft 的機器學習平臺工作,他寫了一篇關於 Lyft 功能服務架構的精彩部落格文章:
Lyft 的機器學習模型有兩種計算方式。
- 有些是透過批處理作業計算的。可以透過可以每晚執行的批處理作業來確定哪些使用者應該獲得 10% 的折扣。
- 其他是實時計算的。當使用者在應用程式中輸入她的目的地時,ML 模型必須立即輸出乘車的最優價格。
Lyft 還需要透過批處理作業來訓練他們的 ML 模型(確定最佳模型引數以產生最佳預測)。
Lyft 的功能服務服務負責確保所有功能都可用於訓練 ML 模型和在生產中進行預測。
該服務託管數千個功能,每分鐘處理數百萬個請求,延遲為個位數毫秒。它具有 99.99% 以上的可用性。
特徵定義
這些功能在 SQL 中定義。定義的複雜性可以從單個查詢到包含複雜連線和轉換的數千行 SQL。
這些定義還具有 JSON 格式的後設資料,用於描述功能版本、所有者、驗證資訊等。
特徵資料攝取
對於在批處理資料上定義的特徵,Lyft 使用Flyte執行定期安排的特徵提取作業。該作業針對 Lyft 的資料倉儲執行 SQL,然後寫入特徵服務。
對於實時特徵資料,Lyft 使用Apache Flink。它們針對流視窗執行 SQL ,然後寫入特徵服務。
特徵處理和檢索
Feature Serving 服務是用 Golang 編寫的,具有用於寫入和讀取特徵資料的 gRPC 和 REST 端點。
將特徵資料新增到服務時,會同時寫入 DynamoDB 和 Redis(Redis 用作直寫快取以減少 DynamoDB 上的讀取負載)。
Lyft 使用 Dynamo 流將特徵資料複製到 Apache Hive(他們的資料倉儲工具)和 Elasticsearch。
然後,特徵服務服務將利用 Redis 快取、DynamoDB、Hive 和 Elasticsearch 來服務對特徵資料的請求。
對於需要快速返回特徵資料的實時 ML 模型,Feature Serving 服務將嘗試從 Redis 快取中檢索特徵資料。如果快取未命中,則它將從 DynamoDB 檢索資料。
對於批處理 ML 模型,他們可以從 Hive 中檢索特徵資料。如果他們有高階查詢,那麼他們也可以使用 Elasticsearch。
您可以在此處閱讀有關 Lyft 如何使用 Elasticsearch(以及他們進行的效能最佳化)的更多資訊。
相關文章
- 如何高效地儲存與檢索大規模的圖譜資料?
- 百度大規模時序資料儲存(一)| 監控場景的時序資料
- 星環科技多模型資料統一儲存的大資料分散式儲存平臺方案分享模型大資料分散式
- 掌握Hive資料儲存模型Hive模型
- Netflix實戰指南:規模化時序資料儲存
- 規模化執行容器時的最佳資料儲存路徑
- 資料儲存-領存高速海量資料記錄儲存模組產品介紹
- Flash儲存器的故障特徵特徵
- 如何將AI/ML與物件儲存結合使用AI物件
- 在大資料世界“尋寶”,科研新正規化如何用好儲存這把利器?大資料
- python基礎語法 - 資料儲存模型Python模型
- 資料儲存:FMDB-模型進行存取模型
- 開源分散式支援超大規模資料分析型資料倉儲Apache Kylin實踐-上分散式Apache
- 開源分散式支援超大規模資料分析型資料倉儲Apache Kylin實踐-下分散式Apache
- 如何使用HBase?大資料儲存的兩個實戰場景大資料
- 如何延長儲存伺服器上資料的儲存時間?伺服器
- Yelp如何重新架構其大規模大型的伺服器端渲染?架構伺服器
- 資料儲存--檔案儲存
- 資料成本:雲端儲存成本高嗎如何節省資料儲存成本
- 小米大資料儲存服務的資料治理實踐大資料
- 原來大資料 Hadoop 是這樣儲存資料的大資料Hadoop
- 如何構建資料倉儲模型?模型
- 資料中心儲存 TCO 模型模型
- 企業的六種資料儲存合規性策略
- 領存ASAAC儲存控制模組產品規格書
- 規則引擎與ML模型的比較 - xLaszlo模型
- (特徵工程實戰)ML最實用的資料預處理與特徵工程常用函式!特徵工程函式
- 儲存卡變為RAW,如何進行儲存卡資料救援
- Bond——大資料時代的資料交換和儲存格式大資料
- 資料儲存(1):從資料儲存看人類文明-資料儲存器發展歷程
- Android中的資料儲存之檔案儲存Android
- 以太坊和IPFS如何儲存資料
- RocketMQ(十):資料儲存模型設計與實現MQ模型
- 浪潮分散式儲存:助力運營商大規模NFV網路資源池建設分散式
- 領存工業級三防資料儲存SSD-3U Open VPX 儲存模組
- 大資料檔案儲存系統HDFS大資料
- 聚焦資料時代新儲存需求,浪潮儲存的新儲存之道
- 【儲存資料恢復】NetApp儲存誤刪資料夾的資料恢復案例資料恢復APP