跳轉到主要內容
Beplay体育安卓版本平台的博客

磚宣布第一個特性的協同設計與數據存儲和MLOps平台Beplay体育安卓版本

2021年5月27日 公告

分享這篇文章

今天,我們宣布啟動的磚特性的商店,第一個的協同設計三角洲湖MLflow加速毫升部署。從三角洲湖它繼承了所有的好處,最重要的是:數據存儲在一個開放的格式,內置版本控製和自動化血統追蹤發現促進功能。通過包裝與MLflow模型特征信息的格式,它提供血統信息從功能模型,促進端到端管理和模型數據變化時再培訓。在部署模型,模型直接從特征存儲查找功能,大大簡化了部署新的模型和功能的過程。

得到的早期預覽O ' reilly的新電子書一步一步的指導你需要開始使用三角洲湖。

在人工智能的數據問題

原始數據(事務日誌,點擊曆史、圖像、文本等)不能直接用於機器學習(ML)。數據工程師、科學家和ML工程師花大量的時間將數據從其原始形式轉變為最終的“特性”,可以被毫升模型。這個過程也被稱為“功能工程”,可以涉及任何從聚合數據(如用戶的購買數量在一個特定時間窗)到複雜的功能的結果ML算法(如詞嵌入的)。

這種相互依存關係的數據轉換和ML算法提出了重大的挑戰毫升模型的開發和部署。

  • 在線/離線傾斜:一些最有意義的ML的用例,需要部署模型在低延遲(認為推薦模型需要運行在一個網頁加載時幾十毫秒)。被用來計算功能的轉換訓練時間(離線)現在需要重複在模式部署(在線)在低延遲。這常常導致團隊多次重構特性,引入的細微差別(稱為在線/離線傾斜),對模型的質量產生重大影響。
  • 可重用性和可發現性:在大多數情況下,功能得到多次重新實現,因為他們不是發現的,如果他們是,他們不是管理的方式促進重用。天真的方法這個問題提供搜索基於特征的名字,這就需要數據科學家正確猜名字別人用於他們的特性。此外,沒有辦法,數據科學家可以知道哪些特性,使用決策更新或刪除功能表等困難。

磚功能需要一個獨特的方法來解決數據存儲問題在人工智能

磚特性存儲是第一的協同設計和數據MLOpsBeplay体育安卓版本平台。與流行的開源框架的緊密集成三角洲湖和MLflow保證數據存儲在特性商店是開放的,與任何毫升框架模型訓練可以受益於與MLflow模型的集成特性存儲格式。因此,功能存儲提供了一些獨特的優勢,幫助數據團隊加速毫升的努力:

  • 消除與本地模型在線/離線傾斜包裝:MLflow集成允許功能店打包功能查找邏輯模型工件熔。當一個MLflow模式部署存儲訓練數據特性,模型本身將從適當的在線商店查找功能。這意味著客戶端調用模型可以無視這一事實特征存在存儲在第一個地方。結果,客戶變得更複雜和功能更新可以沒有任何更改客戶機調用模型。
  • 實現可重用性和可發現性與自動血統跟蹤:data-native環境中計算特性使得磚特性存儲自動跟蹤特性計算,使用的數據源以及確切的版本的代碼使用。這有助於lineage-based搜索:數據科學家可以把他們的原始數據,找到所有的特性,基於同樣的數據已經被計算。此外,集成與MLflow模型格式提供下遊沿襲從功能模型:功能存儲確切地知道哪些模型和端點使用任何功能,促進端到端血統,以及安全的決策是否功能表可以被更新或者刪除。

UI特性存儲作為一個中央存儲庫發現,協作和治理

功能存儲是一個中央存儲庫的所有特性在一個組織。它提供了一個可搜索的記錄所有的特性,它們的定義和計算邏輯,數據來源,以及生產者和消費者的功能。使用用戶界麵,數據科學家可以:

  • 根據功能表名稱,搜索功能表功能,或數據來源
  • 從功能表導航功能和連接的在線商店
  • 確定所使用的數據源創建一個功能表
  • 識別所有消費者的一個特定的功能,包括模型、端點、筆記本和工作
  • 訪問控製功能表的元數據

功能存儲搜索使用功能名稱“customer_id”,與“feature_pipeline”功能表,“raw_data”名字的來源。

與其他磚磚特性存儲基礎組件。這種本地集成提供完整沿襲消費的數據計算功能,所有消費者請求的特性和模型磚模型中的注冊表被訓練使用特性的功能。

“user_features特性表。行為,顯示了血統數據源和生產者的筆記本;模型;以及消費者模型、端點和筆記本
“user_features特性表。行為,顯示了血統數據源和生產者的筆記本;模型;以及消費者模型、端點和筆記本

一致的訪問特點在高吞吐量和在線離線低延遲

功能存儲支持各種線下和線上功能提供者應用程序訪問特性。功能是在兩種模式。批處理層提供的功能在高吞吐量毫升的訓練模型和推理。在線供應商服務特性的低延遲的消費相同的功能在網絡模型。在線供應商是定義為一個可插入的常見的抽象,使支持各種在線商店和支持api發布功能從離線到在線商店和查找功能。

功能是計算使用批處理計算或流管道磚和存儲三角洲表。這些特性可以發表使用預定的磚或流管道的工作。這樣可以確保一致性的特征用於批處理培訓和特征用於批處理或在線模型推理,保證之間不存在漂移特性,用在培訓和服務時間。

模型的包裝

集成與MLflow模型格式確保特性信息打包與MLflow模型。在模型訓練過程中,功能存儲api將自動包的模型工件所需的所有特征信息和代碼在運行時查找功能特性的信息注冊表和抓取功能從合適的供應商。

feature_spec。yaml包含功能存儲信息打包與MLflow模型工件
feature_spec。yaml包含功能存儲信息打包與MLflow模型工件。

這個功能規範,包裝與模型構件,提供了必要的信息功能存儲得分api來自動獲取和加入功能得分存儲鍵的輸入數據。在模式部署,這意味著客戶機調用模型不需要存儲與特性。因此,特征可以無需更改更新客戶端。

功能存儲API工作流

FeatureStoreClient Python庫提供的api與特性存儲組件交互定義特性計算和存儲,使用現有的功能模型訓練和批得分,自動查找和發布功能的在線商店。圖書館是與磚運行時的自動包裝機器學習(v 8.3或更高版本)。

創建新的特性

低級別api提供一個方便的機製來編寫自定義特性計算代碼。數據科學家編寫Python函數計算功能使用源表或文件。

defcompute_customer_features(數據):“自定義函數來計算特性和返回一個火花DataFrame”通過
              customer_features_df = compute_customer_features (input_df)

創建和注冊注冊新特性的功能,調用create_feature_table API。您可以指定一個特定的數據庫和表名作為目的地的特性。每個特性表需要有一個主鍵值來唯一地標識實體的特性

databricks.feature_store進口FeatureStoreClient
              fs = FeatureStoreClient ()
              customer_feature_table = fs.create_feature_table (name =“recommender.customer_features”,鍵=“customer_id”,features_df = customer_features_df,描述=“客戶的特性。使用數據從應用程序交互。)

訓練一個模型使用從功能存儲特性

為了使用存儲特性的功能,創建一個訓練集,從每個特性表標識所需的特性和描述了密鑰從你的訓練數據集,將用於查找或加入功能表。

下麵的例子使用了兩個特性(“total_purchases_30d”“page_visits_7d”從customer_features表),並使用customer_id從培訓dataframe加入功能表的主鍵。此外,它使用的quantity_sold”從product_features表和“product_id”和“country_code”作為複合主鍵查找功能表。然後它使用create_training_set API來構建訓練集,包括鑰匙模型不需要培訓。

databricks.feature_store進口FeatureLookup
              feature_lookups = [FeatureLookup (table_name =“prod.customer_features”,feature_name =“total_purchases_30d”,lookup_key =“customer_id”),FeatureLookup (table_name =“prod.customer_features”,feature_name =“page_visits_7d”,lookup_key =“customer_id”),FeatureLookup (table_name =“prod.product_features”,feature_name =“quantity_sold”,lookup_key = [“product_id”,“country_code”])]
              fs = FeatureStoreClient ()
              training_set = fs.create_training_set (df,feature_lookups = feature_lookups,標簽=“評級”,exclude_columns = [“customer_id”,“product_id”])

您可以使用任何毫升訓練模型框架。log_model API將隨著MLmodel包功能查找信息。此信息用於在模型推理功能查找。

sklearn進口linear_model#增強訓練集規範中指定的特性.toPandas training_df = training_set.load_df () ()X_train = training_df.drop ([“評級”),軸=1)y_train = training_df.rating
              模型= linear_model.LinearRegression ()。fit (X_train y_train)
              fs.log_model (模型中,“recommendation_model”,味道= mlflow.sklearn,training_set = training_set,registered_model_name =“recommendation_model”)

功能查找和批處理得分

評分模型與特征信息打包時,這些特性時抬起頭自動評分。用戶隻需要提供主鍵查找列作為輸入。特色商店的score_batch API,在引擎蓋下,將使用功能規範存儲在模型工件參考特定的功能注冊表、特性和連接鍵列。然後API將執行有效的連接與適當的功能表產生一個dataframe評分模型所需的模式。以下簡單的使用代碼描述了這個操作與模型訓練。

# batch_df已列“customer_id”和“product_id”預測= fs.score_batch (model_uri,batch_df)#返回的“預測”dataframe這些列:#輸入從batch_df:‘customer_id’,‘product_id’#特點:‘total_purchases_30d’,‘page_visits_7d’,‘quantity_sold’#模型輸出:“預測”

出版特性在線商店

發布在線商店的功能表,第一個指定類型的在線商店規範和使用publish_table API。下麵的版本將覆蓋現有的表與最近從customer_features表功能從批處理供應商。

online_store=AmazonRdsMySqlSpec(主機名、端口,用戶,密碼)
              fs.publish_table (的名字=“recommender_system.customer_features”,online_store=online_store,模式=“覆蓋”)

publish_features支持各種選項過濾特定的特性值(按日期或任何過濾條件)。在下麵的例子中,今天的特性值湧入在線商店和與現有功能合並。

fs.publish_table (name =“recommender_system.customer_features”,online_store = online_store,filter_condition =f”_dt = '{str(datetime.date.today ())}’”,模式=“合並”,流=“真正的”)

開始使用該功能

準備開始還是自己試試?你可以閱讀更多關於磚特性存儲和如何使用它在我們的文檔AWS,AzureGCP

了解更多關於新功能存儲的數據+人工智能峰會主題演講免費的。
免費試著磚

相關的帖子

看到所有公告的帖子
Baidu
map