功能存儲(chǔ)已成為組織跨任何行業(yè)領(lǐng)域開發(fā)預(yù)測(cè)服務(wù)的重要單位。大規(guī)模部署ML解決方案時(shí)遇到的一些早期挑戰(zhàn)包括:由個(gè)別團(tuán)隊(duì)在很少或根本沒有協(xié)調(diào)的情況下開發(fā)和維護(hù)定制系統(tǒng);沒有用于共享相似類型ML模型的功能共享的協(xié)作系統(tǒng);沒有適當(dāng)?shù)目蓴U(kuò)展范圍,會(huì)增加認(rèn)知負(fù)擔(dān);與大數(shù)據(jù)生態(tài)系統(tǒng)的有限集成;模型再培訓(xùn),比較,模型治理和可追溯性的范圍有限,從而限制了敏捷開發(fā)生命周期;難以展示季節(jié)性的t型貨架和再培訓(xùn)模型。
為了克服以上限制,建筑師。數(shù)據(jù)科學(xué)家,大數(shù)據(jù)和分析專家認(rèn)為,有必要采用一個(gè)統(tǒng)一的框架在一個(gè)屋頂下行走,以促進(jìn)更輕松的協(xié)作,數(shù)據(jù),結(jié)果,報(bào)告的共享。
部門,團(tuán)隊(duì)和組織共享功能工程的一些相似概念:
·特征工程非常昂貴,并且隨著時(shí)間的推移和模型之間的攤銷會(huì)發(fā)生
·隨著特征數(shù)量的增加,成本的增加是非線性的/指數(shù)的
·由于添加/刪除功能而導(dǎo)致的觸發(fā)器/警報(bào)很高
·大多數(shù)情況下,沒有記錄/跟蹤依賴項(xiàng),這導(dǎo)致隨著時(shí)間的推移增加了隱式和顯式依賴項(xiàng)的增加
在分享相似觀點(diǎn)的同時(shí),聚在一起創(chuàng)建名為FeatureStore的統(tǒng)一框架變得更加容易。這將加快ML模型部署生命周期的速度,并創(chuàng)建適當(dāng)?shù)奈臋n,所需的版本分析和模型性能,以節(jié)省時(shí)間和精力。
在此,我們重點(diǎn)介紹了由不同的FeatureStore框架支持的功能,這些框架主要由不同的領(lǐng)先行業(yè)巨頭開發(fā)。
特色商店的優(yōu)勢(shì)
·能夠重用和發(fā)現(xiàn)組織中各個(gè)團(tuán)隊(duì)之間的功能
·特點(diǎn)應(yīng)該管轄加入類似的功能的訪問控制和版本
·能夠進(jìn)行預(yù)先計(jì)算和自動(dòng)回填的功能-包括在線計(jì)算和離線聚合
·幫助在數(shù)據(jù)科學(xué)家和大數(shù)據(jù)工程師之間創(chuàng)建協(xié)作環(huán)境
·通過不僅共享功能,而且還共享從這些功能開發(fā)的模型的相關(guān)工件,文檔和營(yíng)銷見解,從而節(jié)省了工作量和成本
·使培訓(xùn)和服務(wù)之間保持一致
Michaelangelo-由Uber開發(fā)的框架,允許在離線和在線管道中進(jìn)行功能集成/合并。在此,Hive和Cassandra充當(dāng)原始/轉(zhuǎn)換要素的主要存儲(chǔ)單元。它為具有適當(dāng)縮放和監(jiān)視功能的多個(gè)模型提供了可水平擴(kuò)展的多租戶架構(gòu)。可以通過Jupyter筆記本通過WebUI或API配置和管理培訓(xùn)作業(yè)。
它還提供了用于定義分層分區(qū)方案的選項(xiàng),以訓(xùn)練每個(gè)分區(qū)的模型,可以將其部署為單個(gè)邏輯模型。當(dāng)需要基于數(shù)據(jù)的層次結(jié)構(gòu)來訓(xùn)練幾個(gè)模型時(shí),這提供了容易的引導(dǎo),并有助于克服挑戰(zhàn)。
在服務(wù)期間的運(yùn)行時(shí),它將為每個(gè)節(jié)點(diǎn)找到最佳模型的根。以支持持續(xù)學(xué)習(xí),與AutoML集成以及支持分布式深度學(xué)習(xí)的能力而聞名。
盛宴特色商店
Google發(fā)布了Feast,它主要圍繞GoogleCloud服務(wù)構(gòu)建:BigQuery和BigTable和Redis,而ApacheBeam用于功能工程。它可以將大數(shù)據(jù)與模型開發(fā)區(qū)分開來。這種在線預(yù)測(cè)服務(wù)允許團(tuán)隊(duì)之間共享功能,并在模型訓(xùn)練和服務(wù)之間保持高度一致性。
進(jìn)一步的盛宴帶有集中式功能管理,發(fā)現(xiàn),功能驗(yàn)證和功能聚合。功能列位于寬實(shí)體表內(nèi)。此外,復(fù)合實(shí)體將各個(gè)要素分開。
Wix功能商店
Wix為批處理和實(shí)時(shí)數(shù)據(jù)集提供了跨不同ML模型進(jìn)行特征共享的平臺(tái)。它支持在站點(diǎn)和用戶級(jí)別上針對(duì)培訓(xùn)和服務(wù)模型預(yù)先配置的一組功能族。上圖中標(biāo)記并顯示了數(shù)據(jù)管理,模型訓(xùn)練和部署的不同階段。它還使用S3存儲(chǔ)實(shí)時(shí)提取的特征。
Comcast的FeatureStore
由Comcast開發(fā)的FeatureStore幫助數(shù)據(jù)科學(xué)家重用版本化的功能,在線實(shí)時(shí)/流式傳輸數(shù)據(jù)以及按模型查看功能指標(biāo)。該產(chǎn)品可在多個(gè)可插拔功能存儲(chǔ)組件中使用。內(nèi)置的模型存儲(chǔ)庫(kù)包含與數(shù)據(jù)預(yù)處理規(guī)范化,縮放相關(guān)的工件,這些工件顯示所需的映射到執(zhí)行模型所需的功能。此外,該架構(gòu)是在Alluxio上使用Spark構(gòu)建的開源數(shù)據(jù)編排層,使數(shù)據(jù)接近計(jì)算,適用于云中的大數(shù)據(jù)和AI/ML工作負(fù)載,S3,HDFS,RDBMS,Kafka,Kinesis。使用Kubeflow進(jìn)行模型部署通過支持速率限制,影子部署和自動(dòng)縮放,有助于構(gòu)建彈性,高可用性的分布式系統(tǒng)。
與具有適當(dāng)API的DataLake集成有助于數(shù)據(jù)科學(xué)家使用SQL并創(chuàng)建可以版本化并集成到完整模型管道中的培訓(xùn)/驗(yàn)證/測(cè)試數(shù)據(jù)集。此外,該框架還附帶了用于A/B測(cè)試,合奏,多臂土匪,自定義組合的Seldon推理圖的支持。端到端系統(tǒng)不僅提供了從用例,模型,特征,模型到特征映射,版本化數(shù)據(jù)集,模型訓(xùn)練代碼庫(kù),模型部署容器以及預(yù)測(cè)/結(jié)果接收器的可追溯性,而且還與Feature-Store集成,容器存儲(chǔ)庫(kù)和Git,以集成數(shù)據(jù),代碼和運(yùn)行時(shí)工件以實(shí)現(xiàn)CI/CD集成。
與其他任何體系結(jié)構(gòu)一樣,它在流數(shù)據(jù)和按需功能上具有連續(xù)的功能聚合。在線功能商店在給出預(yù)測(cè)之前使用以下順序:
·有效載荷僅包含型號(hào)名稱和賬號(hào)
·模型元數(shù)據(jù)可告知模型需要哪些功能
·按賬號(hào)要求的功能拉取
·傳遞全套組合特征以執(zhí)行模型
HopWorksEnterpriseEdition是一個(gè)多租戶架構(gòu),集成了AWSSagemaker,Databricks,Kubernetes和JupyterNotebook。它還支持與LDAP,Kerberos和Oauth2等身份驗(yàn)證框架的集成。
ApacheBeam,ApacheFlink和ApacheSpark促進(jìn)了批處理/實(shí)時(shí)流功能,而模型管理和監(jiān)視管道是使用Kafka和Spark流構(gòu)建的。
該架構(gòu)由幾個(gè)構(gòu)建塊組成,即
·FeatureStoreAPI-用于從FeatureStore讀取/寫入
·FeatureStore注冊(cè)表-用于發(fā)現(xiàn)功能的用戶界面
·功能元數(shù)據(jù)-文檔,分析和版本控制
·特征工程工作-用于計(jì)算存儲(chǔ)層-用于特征存儲(chǔ)
Netflix功能商店
Netflix開發(fā)的功能部件商店支持在線和離線模型培訓(xùn)和開發(fā)。在線微服務(wù)使框架能夠收集模型中功能編碼器所需的數(shù)據(jù)元素。它將進(jìn)一步傳遞給下游,以供離線預(yù)測(cè)將來使用。Netflix的事實(shí)日志記錄服務(wù)將用戶相關(guān),視頻相關(guān)和計(jì)算特定的功能以序列化格式記錄在適當(dāng)?shù)拇鎯?chǔ)單元中。
該體系結(jié)構(gòu)的獨(dú)特之處在于組件的存在有助于:
·開發(fā)/創(chuàng)建上下文以進(jìn)行快照
·所選上下文的各種微服務(wù)的快照數(shù)據(jù)
·構(gòu)建API以在過去的給定時(shí)間坐標(biāo)中提供此數(shù)據(jù)
由于所有上下文的快照數(shù)據(jù)都會(huì)產(chǎn)生開銷和成本,因此Netflix依靠選擇上下文樣本來定期進(jìn)行快照,盡管算法不同。它通過Spark,通過訓(xùn)練不同分布上的數(shù)據(jù)以及基于諸如查看模式,設(shè)備,在服務(wù)上花費(fèi)的時(shí)間,區(qū)域等屬性的分層樣本來實(shí)現(xiàn)此目的。
Netflix為基于云的部署模型采用了細(xì)粒度的面向服務(wù)的體系結(jié)構(gòu)。
Facebook設(shè)計(jì)的FBLearner是帶有模型管理和部署的AIWorkFlow框架。它主要由3個(gè)組件組成-FBLearnerFeatureStore,F(xiàn)BLearnerFlow和FBLearnerPredicto。它支持構(gòu)建各種深度學(xué)習(xí)模型,并且模型可以O(shè)NNX格式存儲(chǔ),支持跨不同硬件/軟件平臺(tái)。
上面的大類可以看作是創(chuàng)建從硬件到應(yīng)用軟件的邏輯單元。
·創(chuàng)建,遷移和訓(xùn)練模型所需的框架
·用于模型部署和管理的平臺(tái)
·計(jì)算工作量和存儲(chǔ)數(shù)據(jù)所需的基礎(chǔ)結(jié)構(gòu)
Facebook還使用一種原理來劃分開發(fā)和部署環(huán)境。
Pinterest功能商店
Pinterest的大數(shù)據(jù)機(jī)器學(xué)習(xí)是可擴(kuò)展,可靠且安全的高速和高質(zhì)量的經(jīng)典示例。這個(gè)元數(shù)據(jù)驅(qū)動(dòng)的框架是使用開放源代碼技術(shù)構(gòu)建的,具有單獨(dú)的構(gòu)建基塊,有助于重用。它還提供治理:執(zhí)法和跟蹤。
這種架構(gòu)的謊言中的獨(dú)特捕獲關(guān)系和互動(dòng)之間的引腳。
通過創(chuàng)建的Airbnb的預(yù)測(cè)系統(tǒng)溜索依靠得分服務(wù)基于功能聚集在因牛逼IME和空間。計(jì)分日志每天進(jìn)行計(jì)算/更新,以確保在訓(xùn)練ML模型期間以及在生產(chǎn)環(huán)境中部署它們時(shí)都具有特征一致性和單個(gè)特征定義。此外,它還可以確保數(shù)據(jù)質(zhì)量監(jiān)控,功能回填以及使功能可搜索和可共享。
與數(shù)據(jù)源集成的體系結(jié)構(gòu)-HiveTable,數(shù)據(jù)庫(kù)和Jitney的事件總線,除了以Lambda為服務(wù)點(diǎn)的ApacheSpark和Flink。這個(gè)平臺(tái)的獨(dú)特之處在于:
·減少定制管道的創(chuàng)建
·減少自定義聚合中的數(shù)據(jù)泄漏
·功能分布可觀察性改進(jìn)的模型迭代工作流程
特效
基于TensorFlow的通用機(jī)器學(xué)習(xí)平臺(tái)TensorFlowExtended(TFX)提供了許多組件的編排,即一個(gè)學(xué)習(xí)者,用于基于訓(xùn)練數(shù)據(jù)生成模型,用于分析和驗(yàn)證數(shù)據(jù)以及模型的模塊以及用于在模型中服務(wù)模型的基礎(chǔ)架構(gòu)生產(chǎn)。該平臺(tái)以訓(xùn)練,驗(yàn)證,可視化和在生產(chǎn)中連續(xù)不斷地對(duì)新近訓(xùn)練的新模型進(jìn)行部署而著稱。各個(gè)組件可以共享實(shí)用程序,使它們可以通信和共享資產(chǎn)。通過快速培訓(xùn),數(shù)據(jù)和反序列化團(tuán)隊(duì)和社區(qū)可以共享其數(shù)據(jù),模型,工具,可視化,優(yōu)化和其他技術(shù)。
部件被用于收集在特征值進(jìn)行統(tǒng)計(jì)進(jìn)一步已知的:為連續(xù)的特性,所述統(tǒng)計(jì)信息包括位數(shù),等寬的直方圖,平均和標(biāo)準(zhǔn)偏差,而對(duì)于離散特征它們包括頂-K值由頻率。另外,這些組件支持在數(shù)據(jù)切片上和跨特征統(tǒng)計(jì)的模型度量的計(jì)算。這些統(tǒng)計(jì)信息為用戶提供了有關(guān)每個(gè)數(shù)據(jù)集形狀的見解。
此外,該體系結(jié)構(gòu)還為所有用戶提供了無需配置的驗(yàn)證設(shè)置,多租戶以同時(shí)服務(wù)于多個(gè)機(jī)器學(xué)習(xí)的模型,軟模型隔離以提高模型性能。
阿帕奇氣流
ApacheAirflow的整個(gè)體系結(jié)構(gòu)基于DAG的概念,該概念考慮了其中的依賴性。確保所有事情在正確的時(shí)間和正確的順序發(fā)生的主要責(zé)任。該DAG小號(hào)定義一個(gè)單一的邏輯流程,他們都是用Python文件中定義。
ApacheAirflow保證了冪等性,原子性和元數(shù)據(jù)交換。使用提供小型元數(shù)據(jù)交換的XCOM,可以促進(jìn)此分布式體系結(jié)構(gòu)的不同組件之間的數(shù)據(jù)交換。但是,對(duì)于大量數(shù)據(jù),它支持共享網(wǎng)絡(luò)存儲(chǔ),數(shù)據(jù)湖或通過XCOM進(jìn)行的基于URI的交換。
操作員的參數(shù)化表示形式幫助DAG運(yùn)行在特定時(shí)間生成TaskInstance的任務(wù)。此外,ApacheAirFlowDAG中的實(shí)例被分組為DagRun。
Zomato功能商店
Zomato的餐廳業(yè)務(wù)在很大程度上依賴流數(shù)據(jù)處理來計(jì)算餐廳在任何給定時(shí)間點(diǎn)的運(yùn)行訂單。該體系結(jié)構(gòu)使用ApacheFlink,它為每個(gè)ML模型提供了工作級(jí)別隔離,因?yàn)槊總€(gè)ML模型的功能都保持它們各自的空間用于研究,分析,記錄,并且不與其他ML模型的功能進(jìn)行交互。
除了流和在線特征提取外,MLFlow還提供了ML模型的生命周期管理。在ML車型投放到通過外部世界API網(wǎng)關(guān)借助AWSSagemaker端點(diǎn)。
蘋果公司的Overton
通過提供一組新穎的高級(jí)聲明式抽象,Overton使模型構(gòu)建,部署和監(jiān)視的生命周期自動(dòng)化。它支持多任務(wù)學(xué)習(xí),以在實(shí)時(shí)和后端生產(chǎn)應(yīng)用程序中同時(shí)預(yù)測(cè)多個(gè)ML模型。
此外,該體系結(jié)構(gòu)允許在模型和數(shù)據(jù)之間進(jìn)行分離,其中包含兩個(gè)組件:任務(wù)和代表數(shù)據(jù)源的有效負(fù)載。
模型訓(xùn)練由架構(gòu)文件控制,該文件充當(dāng)編譯TensorFlow模型并描述其輸出以供下游使用的指南。Overton還將原始數(shù)據(jù)嵌入到有效負(fù)載中,然后將其用作任務(wù)或另一個(gè)有效負(fù)載的輸入。有效載荷是單例,序列和集合。
StreamSQL功能存儲(chǔ)
StreamSQLFeatureStore是一個(gè)基于低延遲的模型開發(fā)框架,具有高吞吐量服務(wù)。它允許輕松輕松地通過版本控制可靠地部署新模型功能。通過使用功能定義,可以確保整個(gè)培訓(xùn),服務(wù)和生產(chǎn)過程中一致的功能部署。
該體系結(jié)構(gòu)還通過集成第三者的功能來提高模型性能而聞名。它將批處理和流處理與不可變分類帳相結(jié)合,每個(gè)事件都附加到分類帳的末尾,修改或創(chuàng)建一組新功能,甚至從功能注冊(cè)表中分析/發(fā)現(xiàn)功能。
Tecton的功能部件商店
Tecton提出了一個(gè)統(tǒng)一的體系結(jié)構(gòu),用于開發(fā),部署,管理/管理和監(jiān)視一個(gè)平臺(tái),該平臺(tái)旨在標(biāo)準(zhǔn)化生產(chǎn)中ML模型的高質(zhì)量功能,標(biāo)簽和數(shù)據(jù)集,從而確保模型隨著時(shí)間的推移安全運(yùn)行。適當(dāng)?shù)目芍貜?fù)性,沿襲和記錄。
Tecton平臺(tái)包括:
功能管道,用于將原始數(shù)據(jù)轉(zhuǎn)換為功能或標(biāo)簽
·一個(gè)功能存儲(chǔ)用于存儲(chǔ)歷史特征和標(biāo)簽數(shù)據(jù)
·一個(gè)功能服務(wù)器為生產(chǎn)服務(wù)的最新特征值
·用于檢索訓(xùn)練數(shù)據(jù)和處理特征管線的SDK
·一個(gè)WebUI,用于管理和跟蹤功能,標(biāo)簽和數(shù)據(jù)集
·一個(gè)監(jiān)視引擎,用于檢測(cè)數(shù)據(jù)質(zhì)量或漂移問題并發(fā)出警報(bào)
混合功能商店
使用ApacheAirflow的BI平臺(tái),S3,Hopsworks功能存儲(chǔ)和Cloudera的DataLakes的混合功能存儲(chǔ)。該平臺(tái)能夠在輸入處提取原始數(shù)據(jù),事件或SQL數(shù)據(jù)。
涂鴉數(shù)據(jù)中的功能存儲(chǔ)
ScribbleData提供的功能存儲(chǔ)對(duì)輸入數(shù)據(jù)的正確性和完整性施加了很大的壓力,因?yàn)楸娝苤@會(huì)對(duì)ML模型的預(yù)測(cè)產(chǎn)生影響。因此,建議使用連續(xù)檢查/清晨系統(tǒng),以防止質(zhì)量差的數(shù)據(jù)進(jìn)入系統(tǒng)。在反應(yīng)方面,系統(tǒng)會(huì)進(jìn)行連續(xù)的過程以隨著時(shí)間的流逝改善機(jī)器學(xué)習(xí)的操作。
在這里,我們討論了使用大數(shù)據(jù),機(jī)器學(xué)習(xí)模型訓(xùn)練和服務(wù)工具以及業(yè)務(wù)流程層的不同架構(gòu)框架。每個(gè)組件都同等重要,它們齊頭并進(jìn),以創(chuàng)建一個(gè)實(shí)時(shí)的端到端預(yù)測(cè)系統(tǒng)。
好了,關(guān)于數(shù)據(jù)科學(xué)家和大數(shù)據(jù)工程師的基本架構(gòu)的內(nèi)容,介紹到這里就結(jié)束了,想了解更多關(guān)于數(shù)據(jù)科學(xué)和大數(shù)據(jù)的信息,請(qǐng)繼續(xù)關(guān)注中培偉業(yè)。