4月9日,我們非常高興地宣布推出Amazon SageMaker特征存放區(qū),這是Amazon SageMaker的一項新功能,可幫助數(shù)據(jù)科學家和機器學習工程師輕松、安全地存儲、發(fā)現(xiàn)和共享訓練和預測工作流程中使用的精選數(shù)據(jù)。
選擇正確的算法來訓練機器學習(ML)模型固然非常重要,但經驗豐富的從業(yè)人員深知為其提供高質量數(shù)據(jù)的重要性。清理數(shù)據(jù)是很好的開始,機器學習工作流程通常包括填充缺失值、刪除異常值等步驟。然后,通常需要繼續(xù)使用常用技術和名為特征工程的高端技術來轉換數(shù)據(jù)。
簡而言之,特征工程的目的是轉換數(shù)據(jù)并增強其可表達性,以便算法可以更好地學習。例如,許多列式數(shù)據(jù)集都包含字符串,例如街道地址。對于大多數(shù)機器學習算法來說,字符串毫無意義,它們需要以數(shù)字表示形式進行編碼。因此,您可以用GPS坐標替換街道地址,這是一種可表達性更高的方式,更利于學習定位概念。換句話說,如果數(shù)據(jù)是新的油類,那么特征工程就是將其提煉為高辛烷值噴氣燃料的過程,從而幫助模型達到極高的精度。
事實上,機器學習從業(yè)人員花費了大量時間來制作特征工程代碼、將其應用于初始數(shù)據(jù)集、在工程數(shù)據(jù)集上訓練模型以及評估模型準確性。鑒于這項工作的實驗性質,即使是最小的項目也會導致發(fā)生多次迭代。相同的特征工程代碼通常會反復運行,這會浪費時間和計算資源來重復相同的操作。在大型組織中,這可能導致更大的生產力損失,因為不同的團隊通常運行相同的作業(yè),甚至因為他們不了解之前的工作,而去編寫重復的特征工程代碼。
機器學習團隊還必須解決另一個難題。由于模型是基于工程數(shù)據(jù)集訓練的,因此必須對那些發(fā)送以用于預測的數(shù)據(jù)應用相同的轉換。這通常意味著會重寫特征工程代碼(有時會使用另一種語言),將其集成到預測工作流程中,然后在預測時運行這些代碼。整個過程不僅耗時,還可能導致出現(xiàn)不一致,因為即使是數(shù)據(jù)轉換中最微小的變化也可能對預測產生巨大影響。
為了解決這些問題,機器學習團隊有時會構建一個特征存放區(qū),這是一個中央存儲庫,他們可以在其中保存和檢索訓練和預測作業(yè)中使用的工程數(shù)據(jù)。盡管特征存放區(qū)非常實用,但構建和管理您自己的特征存放區(qū)需要執(zhí)行大量的工程設計、基礎設施和運營工作,這會花費本該用于機器學習工作的寶貴時間。客戶要求我們提供更好的解決方案,我們做到了!
推出Amazon SageMaker特征存放區(qū)
Amazon SageMaker特征存放區(qū)是適用于您的機器學習特征的完全托管的集中式存儲庫,可幫助您輕松、安全地存儲和檢索特征,而無需管理任何基礎設施。它是Amazon SageMaker(完全托管的機器學習服務)的一部分,支持所有算法。它還與我們基于Web的機器學習開發(fā)環(huán)境Amazon SageMaker Studio集成。
此外,Amazon SageMaker特征存放區(qū)中存儲的特征已分組,并使用元數(shù)據(jù)進行標記。因此,您可以快速發(fā)現(xiàn)哪些特征可用,以及它們是否適合您的模型。多個團隊還可以輕松共享和重復使用特征,從而降低開發(fā)成本并加速創(chuàng)新。
在存儲后,您可以在模型訓練、批量轉換和低延遲實時預測等SageMaker工作流程中檢索并使用這些特征。您不僅可以避免重復工作,還可以構建一致的工作流程:使用存儲在離線和在線商店中的相同一致特征。
The Climate Corporation(下文簡稱“Climate”)是Bayer的子公司,在為農民提供數(shù)字創(chuàng)新方面,該公司是行業(yè)領導者。
Climate堅信能為全世界的農民提供準確的信息,以便他們做出基于數(shù)據(jù)的決策,并最大限度地提高他們的每英畝產出。為了實現(xiàn)這一目標,我們投資了機器學習工具等技術,利用名為特征(例如種植者的田地產出)的可衡量實體來構建模型。
借助Amazon SageMaker特征存放區(qū),我們可以通過中央特征存放區(qū)加速機器學習模型的開發(fā),以便在多個團隊中輕松訪問和重復使用這些特征。使用Amazon SageMaker特征存放區(qū),可以輕松使用在線商店實時訪問特征,或者使用離線商店針對不同的使用案例按計劃運行特征,而且我們可以更快地開發(fā)機器學習模型。
——Climate數(shù)據(jù)和分析副總裁
Daniel McCaffrey
全球領先的高質量家庭護理查找和管理平臺Care.com也在使用Amazon SageMaker特征存放區(qū)。
一個供需高度匹配的強大護理行業(yè)對于個體家庭乃至國內生產總值的經濟增長都至關重要。我們對Amazon SageMaker特征存放區(qū)和Amazon SageMaker管道充滿期待,我們相信它們將幫助我們在數(shù)據(jù)科學和開發(fā)團隊中更好地擴展,我們可以使用一組一致的精選數(shù)據(jù)構建從數(shù)據(jù)準備到部署的可擴展的端到端機器學習模型管道。
利用新發(fā)布的Amazon SageMaker功能,我們可以針對不同的應用程序加快開發(fā)和部署機器學習模型,從而能夠通過更快的實時建議幫助客戶做出更明智的決策。
——Care.com數(shù)據(jù)科學經理Clemens Tummeltshammer
現(xiàn)在,我們了解一下如何開始使用。
使用Amazon SageMaker
特征存放區(qū)存儲和檢索特征
對數(shù)據(jù)運行特征工程代碼后,您可以在Amazon SageMaker特征存放區(qū)中組織和存儲您的工程特征,可將這些特征分為不同的特征組。特征組是記錄的集合,類似于表中的行。每條記錄都有一個唯一的標識符,并保存原始數(shù)據(jù)源某個數(shù)據(jù)實例的設計特征值。您還可以選擇使用自己的Amazon Key Management Service(KMS)密鑰加密靜態(tài)數(shù)據(jù),該密鑰對于每個特征組都是唯一的。
如何定義特征組由您決定。例如,您可以為每個數(shù)據(jù)源(CSV文件、數(shù)據(jù)庫表等)創(chuàng)建一個特征組,然后使用便捷的唯一列作為記錄標識符(主鍵、客戶ID、事務ID等)。
確定組后,應該對每個組重復執(zhí)行以下步驟:
1.使用記錄中每個特征的名稱和類型創(chuàng)建特征定義(分數(shù)、整型或字符串)。
2.使用create_feature_group()API創(chuàng)建每個特征組:
3.sm_feature_store.create_feature_group(
4.#特征組的名稱
5.FeatureGroupName=my_feature_group_name,
6.#作為記錄標識符的列的名稱
7.RecordIdentifierName=record_identifier_name,
8.#作為特征時間戳的列操作的名稱
9.EventTimeFeatureName=event_time_feature_name,
10.#特征名稱和類型列表
11.FeatureDefinitions=my_feature_definitions,
12.#離線特征存放區(qū)的S3位置
13.OfflineStoreConfig=offline_store_config,
14.#可以選擇啟用在線特征存放區(qū)
15.OnlineStoreConfig=online_store_config,
16.#IAM角色
17.RoleArn=role
)
18.在每個特征組中,使用put_record()API存儲包含一系列特征名稱/特征值對的記錄:
19.sm_feature_store.put_record(
20.FeatureGroupName=feature_group_name,
21.Record=record,
22.EventTime=event_time
)
為了加快提取速度,您可以創(chuàng)建多個線程,然后并行執(zhí)行此操作。
此時,特征將存儲在Amazon SageMaker特征存放區(qū)中。借助離線存放區(qū),您可以使用Amazon Athena、Amazon Glue或Amazon EMR等服務構建訓練數(shù)據(jù)集:在S3中獲取相應的JSON對象,選擇所需的特征,然后采用ML算法所需的格式將其保存在S3中。之后,SageMaker像往常一樣運作!
此外,您還可以使用get_record()API訪問存儲在在線存放區(qū)中的各條記錄,傳遞要訪問的記錄的組名稱和唯一標識符,如下所示:
record = sm_feature_store.get_record(
FeatureGroupName=my_feature_group_name,
RecordIdentifierValue={"IntegralValue": 5962}
)
Amazon SageMaker特征存放區(qū)旨在快速高效地訪問實時推理,15KB負載的P95延遲低于10毫秒。這樣,可以在預測時查詢工程特征,并將上游應用程序發(fā)送的原始特征替換為用于訓練模型的完全相同的特征。在設計上,消除了特征不一致問題,從而您可以專注于構建最佳模型,而不是追蹤錯誤。
最后,由于SageMaker特征存放區(qū)包含特征創(chuàng)建時間戳,因此您可以檢索特征在特定時間點的狀態(tài)。
由于Amazon SageMaker特征存放區(qū)與SageMaker Studio集成,因此我可以在SageMaker Studio中看到我的兩個特征組。
右鍵單擊“打開特征組詳細信息”,我將打開身份特征組。
我可以查看特征定義。
最后,我可以為離線存放區(qū)生成查詢,并將這些查詢添加到Amazon SageMaker Data Wrangler工作流程中,以便在訓練之前加載特征。
如何開始使用
Amazon SageMaker特征存放區(qū)?
正如您所看到的,Amazon SageMaker特征存放區(qū)使您可以輕松存儲、檢索和共享訓練和預測工作流程所需的特征。
提供Amazon SageMaker的所有區(qū)域均提供Amazon SageMaker特征存放區(qū)。定價基于特征讀取和寫入次數(shù)以及存儲的數(shù)據(jù)總量。這是示例筆記本(網(wǎng)址:https://github.com/aws/amazon-sagemaker-examples),可以幫助您立即開始使用。