官术网_书友最值得收藏!

4.3 定義需求

特征存儲服務是特征的集中存儲倉庫,既可以提供特征在數周或數月等長時間內的歷史值,也可以提供幾分鐘內的近實時特征值。特征存儲的需求分為特征計算和特征服務兩部分。

4.3.1 特征計算

特征計算需要與數據湖和其他數據源進行深度集成。特征計算管道需要考慮三個維度。

首先,考慮要支持的不同類型的特征。特征可以與單個數據屬性關聯,也可以是復合聚合而成。此外,相對于標稱時間,特征可以是相對靜態的,而不是連續變化的。計算特征通常需要特征存儲支持多個基本函數,類似于數據用戶目前使用的功能,例如:

  • 將分類數據轉換為數值數據。
  • 將來自不同分布特征的數據歸一化。
  • 獨熱編碼或特征二值化。
  • 特征分級(例如,將連續特征轉換為離散特征)。
  • 特征哈希(例如,減少獨熱編碼特征的內存占用)。
  • 計算聚合特征(例如,計數、最小值、最大值和標準差)。

其次,考慮特征工程需要支持的編程庫。在處理大規模數據集的用戶中,Spark是數據整理的首選。處理小型數據集的用戶更喜歡使用NumPy和pandas等框架。特征工程作業使用notebook、Python文件或.jar文件構建,并在Samza、Spark、Flink和Beam等計算框架上運行。

最后,考慮保存特征數據的數據存儲系統。存儲系統可以是關系型數據庫、NoSQL數據存儲、流計算平臺以及文件和對象存儲。

4.3.2 特征服務

特征存儲需要支持強大的協作能力,特征的定義和生成應該可以跨團隊共享。

特征組

特征存儲有兩個接口:向存儲寫入特征,以及在訓練和推理時讀取特征。特征通常被寫入文件或特定項目數據庫。基于同一個處理作業計算的特征或來自同一原始數據集的特征可以進一步分組。例如,對于Uber汽車共享服務,一個地理區域的所有行程相關特征都可以作為一個特征組來管理,因為它們都可以由一個掃描行程歷史的作業來計算。特征可以與標簽關聯(在監督學習的情況下),并被具體化為一個訓練數據集。特性組通常共享一個公共列(例如時間戳或客戶ID),這樣能夠將特征組加入一個訓練數據集中。特征存儲創建并管理訓練數據集,并將其持久化為TFRecords、Parquet、CSV、TSV、HDF5或.npy文件。

性能擴展

關于性能擴展,需要考慮以下因素:

  • 特征存儲中支持的特征數量。
  • 調用特征存儲進行在線推理的模型數量。
  • 用于日常離線推理和訓練的模型數量。
  • 訓練數據集中包含的歷史數據量。
  • 生成新樣本時回填特征數據集的每日管道數。

此外,在線模型推理還有特定的性能擴展要求,例如,計算特征值的TP99延時值。對于在線訓練,要考慮回填訓練集的時間和數據庫模式突變。通常,歷史特征需要少于12小時,而近實時特征值需要少于5分鐘。

特征分析

特征應該是可搜索的和易于理解的,以確保它們在機器學習項目中被重用。數據用戶需要能夠識別轉換以及分析特征,發現異常值、分布漂移和特征相關性。

4.3.3 非功能性需求

以下是在設計特征存儲服務時應該考慮的一些關鍵非功能性需求:

自動監控和告警

服務的運行狀況應該易于監控。生產過程中的任何問題都應該產生自動告警。

響應時間

服務應該在毫秒級響應特征搜索查詢請求,這一點很重要。

直觀的界面

為了使特征存儲服務高效,需要所有跨組織的數據用戶都采用它。因此,擁有易于使用和理解的API、命令行界面和Web門戶非常重要。

主站蜘蛛池模板: 元江| 兴山县| 白山市| 平阳县| 阿合奇县| 灵石县| 桂林市| 桃源县| 洛南县| 桃源县| 衡山县| 木兰县| 湟中县| 惠来县| 义乌市| 道真| 富平县| 罗江县| 宁津县| 山西省| 田林县| 交城县| 宁陵县| 富蕴县| 达拉特旗| 武乡县| 平湖市| 景东| 韩城市| 九台市| 介休市| 西乌| 镇康县| 盐亭县| 曲阜市| 临安市| 肃北| 华阴市| 崇义县| 漳州市| 宜兴市|