一篇文章讀懂什么是機(jī)器學(xué)習(xí)平臺(tái)

3 評(píng)論 13139 瀏覽 61 收藏 30 分鐘

編輯導(dǎo)讀:隨著科技的發(fā)展,越來(lái)越多工作可以被機(jī)器人接管。尤其是重復(fù)性強(qiáng),效率低的工作,用機(jī)器操作可以減輕人力的負(fù)擔(dān)。其中,機(jī)器學(xué)習(xí)平臺(tái)功不可沒。本文作者將從七個(gè)方面,分析什么是機(jī)器學(xué)習(xí)平臺(tái),希望對(duì)你有幫助。

開篇給大家講兩個(gè)小故事:

2016年,一個(gè)日本青年工程師回到家鄉(xiāng)的黃瓜農(nóng)場(chǎng),準(zhǔn)備子承父業(yè)。種植黃瓜,種植黃瓜有一個(gè)重要流程就是分揀流程,需要按照黃瓜的賣相,把不同類型黃瓜按照大小、筆直、均勻、水嫩程度分揀到一起,賣給批發(fā)商,再把賣相不好的黃瓜揀到一起,低價(jià)處理,這個(gè)過程全靠人工。

這個(gè)工程師想用技術(shù)減輕人工勞動(dòng),他拍攝了約7000張黃瓜照片,傳到谷歌云的機(jī)器學(xué)習(xí)平臺(tái),通過TensorFlow深度學(xué)習(xí)框架,訓(xùn)練模型去識(shí)別黃瓜,并對(duì)黃瓜按不同特質(zhì)進(jìn)行分類。在此基礎(chǔ)上,他還做了一個(gè)黃瓜分揀機(jī),再配合上自動(dòng)傳送帶系統(tǒng),可以將每根黃瓜識(shí)別出來(lái)后再傳送至程序指定的箱子。這樣,降低了分揀黃瓜過程中人工參與。

再給大家講一個(gè)身邊的例子:

我們公司需要開發(fā)一個(gè)能夠識(shí)別農(nóng)田中雜草的模型,且準(zhǔn)確率要求在95%以上,然后公司隨即為算法工程師提供了工作環(huán)境:一臺(tái)GPU服務(wù)器和一臺(tái)電腦,工程師需要進(jìn)行對(duì)比不同的模型來(lái)完成需求,這兩種模型分別是來(lái)自不同的深度學(xué)習(xí)框架:Caffe和TensorFlow。拿到GPU服務(wù)器后的第一件事就是對(duì)服務(wù)器的配置,登錄機(jī)器,發(fā)現(xiàn)這是一臺(tái)CentOS的系統(tǒng),需要安裝對(duì)應(yīng)的官方顯卡驅(qū)動(dòng),Nvidia專用的并行計(jì)算框架CUDA,以及針對(duì)深度神經(jīng)網(wǎng)絡(luò)的加速庫(kù)cuDNN,必須版本匹配!然后,需要檢查是否有對(duì)應(yīng)版本的Caffe和TensorFlow框架,這樣1天就過去了。發(fā)現(xiàn)本機(jī)沒有對(duì)應(yīng)的編程環(huán)境,重新搭建一套環(huán)境指不定會(huì)出啥問題,畢竟本機(jī)的系統(tǒng)和服務(wù)器可不一樣。

所以選擇上服務(wù)器開發(fā),服務(wù)器黑盒子沒有界面。需要在上面安裝了Jupyter lab。全部完成之后需要有訓(xùn)練的數(shù)據(jù),發(fā)現(xiàn)提供的雜草的數(shù)據(jù)照片沒有打標(biāo),需要手動(dòng)標(biāo)注,一周時(shí)間打完標(biāo)后,然后把訓(xùn)練用的數(shù)據(jù)搞到服務(wù)器上,數(shù)據(jù)探索、預(yù)處理,代碼編寫、測(cè)試寫出了第一版,終于可以開始調(diào)參訓(xùn)練、優(yōu)化了。模型開始訓(xùn)練。怎么知道模型訓(xùn)練的情況呢?需要把關(guān)鍵地方的日志進(jìn)行了輸出,同時(shí)配備了對(duì)應(yīng)框架的可視化工具(Tensorboard),以此來(lái)觀察模型的訓(xùn)練情況。但是為了防止出現(xiàn)異常,需要不時(shí)地去Check訓(xùn)練狀態(tài)。幾天過后,訓(xùn)練完成,找到了最合適的算法和參數(shù),出來(lái)的模型準(zhǔn)確度也符合預(yù)期,但是如何把這個(gè)模型發(fā)布成一個(gè)可供其他service調(diào)用的RESTful API(gRPC),如何保障部署服務(wù)的實(shí)時(shí)性、安全性、擴(kuò)展性、AB Testing?

一、現(xiàn)在存在的問題

  1. 重復(fù)造輪子:特征工程、模型訓(xùn)練、模型在線預(yù)測(cè)都是各自研發(fā),從零做起,算法的迭代效率低,用戶代碼基于單機(jī)腳本實(shí)現(xiàn),處理環(huán)節(jié)長(zhǎng)、耦合高,難以修改和擴(kuò)展,長(zhǎng)久以來(lái)可讀性降低.
  2. 特征口徑混亂:各個(gè)業(yè)務(wù)方重復(fù)開發(fā)特征,相同特征的統(tǒng)計(jì)口徑也不一致,導(dǎo)致算法之間難以協(xié)同工作。
  3. 數(shù)據(jù)分散:同一業(yè)務(wù)下多個(gè)場(chǎng)景、同一場(chǎng)景下多個(gè)模型,在數(shù)據(jù)處理、模型訓(xùn)練等技術(shù)流程上類似,場(chǎng)景重復(fù)步驟和數(shù)據(jù)結(jié)果難以重復(fù)利用。
  4. 效率低下:算法人員和業(yè)務(wù)人員對(duì)分布式機(jī)器學(xué)習(xí)的開發(fā)存在技術(shù)壁壘,導(dǎo)致數(shù)據(jù)量和模型復(fù)雜度受單機(jī)資源限制。
  5. 進(jìn)入門檻高:機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的算法學(xué)習(xí)和搭建的門檻很高;?調(diào)參和對(duì)比算法效果費(fèi)時(shí)費(fèi)力。
  6. 維護(hù)成本高:機(jī)器環(huán)境配置不一,框架日新月異,維護(hù)各種算法框架的繁瑣性高,管理運(yùn)維成本高,場(chǎng)景不同導(dǎo)致存在周期訓(xùn)練、定時(shí)預(yù)估、實(shí)時(shí)預(yù)估等需求,對(duì)業(yè)務(wù)人員和算法人員的代碼要求高,維護(hù)成本高。

二、機(jī)器學(xué)習(xí)平臺(tái)和AI中臺(tái)的關(guān)系

中臺(tái)是相對(duì)于前臺(tái)來(lái)說,中臺(tái)可以為各各前端服務(wù)提供能力而互不干擾。AI中臺(tái)就是企業(yè)內(nèi)部可以為各個(gè)業(yè)務(wù)場(chǎng)景提供各種AI能力的平臺(tái),而機(jī)器學(xué)習(xí)平臺(tái)是把數(shù)據(jù)工程師、算法工程師標(biāo)注師等機(jī)器學(xué)習(xí)模型訓(xùn)練過程工程化流程化后的平臺(tái)。機(jī)器學(xué)習(xí)平臺(tái)更多的是服務(wù)于內(nèi)部工程師,機(jī)器學(xué)習(xí)平臺(tái)屬于AI中臺(tái)的一部分。

三、什么是機(jī)器學(xué)習(xí)平臺(tái)

其實(shí)機(jī)器學(xué)習(xí)平臺(tái),就是伴隨著AI工程化落地而來(lái)的概念,就是經(jīng)過一系列的工程手段,最終集成落地到具體的應(yīng)用中;或者選擇合適的模型和算法,經(jīng)過一些優(yōu)化,使得它能解決現(xiàn)實(shí)世界中真實(shí)的問題,并產(chǎn)生我們所需要的價(jià)值。機(jī)器學(xué)習(xí)領(lǐng)域,最重要的三個(gè)環(huán)節(jié)如下圖,包括數(shù)據(jù)處理,模型訓(xùn)練和服務(wù)部署,每一環(huán)節(jié)包含的內(nèi)容很多,都可以單獨(dú)拿出來(lái)做一個(gè)平臺(tái)。

機(jī)器學(xué)習(xí)平臺(tái)的服務(wù)的人群包括算法工程師、數(shù)據(jù)分析師,也包括業(yè)務(wù)研發(fā)工程師,我們希望通過構(gòu)建高效的離線、實(shí)時(shí)預(yù)測(cè)服務(wù),降低用戶使用機(jī)器學(xué)習(xí)的成本,提高接入算法的效率,利用數(shù)據(jù)中臺(tái)的優(yōu)勢(shì)促進(jìn)數(shù)據(jù)和模型的規(guī)范和分享。機(jī)器學(xué)習(xí)平臺(tái)通過端到端的建模流程,使企業(yè)用戶實(shí)現(xiàn)機(jī)器學(xué)習(xí)的全生命周期管理。從端到端的流程來(lái)看,機(jī)器學(xué)習(xí)平臺(tái)的功能可分為:

依據(jù)機(jī)器學(xué)習(xí)各個(gè)流程步驟,我們?cè)O(shè)計(jì)出機(jī)器學(xué)習(xí)平臺(tái)的大的框架:

  • 數(shù)據(jù)接入:支持多種類型數(shù)據(jù)的接入,包括音頻、文本、圖片、視頻。
  • 數(shù)據(jù)準(zhǔn)備:包括數(shù)據(jù)清洗和數(shù)據(jù)探索,在數(shù)據(jù)清洗環(huán)節(jié),機(jī)器學(xué)習(xí)平臺(tái)一般具備數(shù)據(jù)融合、數(shù)據(jù)缺失處理、數(shù)據(jù)分類、打標(biāo)簽、數(shù)據(jù)異常處理、數(shù)據(jù)平滑等功能,在數(shù)據(jù)探索環(huán)節(jié),機(jī)器學(xué)習(xí)平臺(tái)具備單變量統(tǒng)計(jì)、多變量統(tǒng)計(jì)、聚類分析、相似度度量、密度檢驗(yàn)等功能。
  • 特征工程:支持特征構(gòu)建、特征選擇、特征降維、特征編碼等特征工程必備流程,同時(shí)提供可視化的特征重要性評(píng)估功能,使用戶可以快速發(fā)現(xiàn)模型中存在的問題。
  • 模型訓(xùn)練:支持Notebook;模型建立后,平臺(tái)提供可視化超參調(diào)整、超參搜索等功能,提高模型訓(xùn)練的效率。
  • 模型部署:通過API接口,一鍵實(shí)現(xiàn)模型從開發(fā)環(huán)境到生產(chǎn)環(huán)境的部署,實(shí)現(xiàn)模型快速上線。
  • 模型管理:模型部署到生產(chǎn)環(huán)境后仍需要進(jìn)行監(jiān)控和管理,以保證模型的準(zhǔn)確率和及時(shí)更新,模型管理能夠?qū)⑸a(chǎn)環(huán)境中的模型與基線或之前的模型進(jìn)行對(duì)比,確定模型效果。此外,很多平臺(tái)還提供指標(biāo)跟蹤工具,提高模型效果的評(píng)估效率。

數(shù)據(jù)管理

原始數(shù)據(jù),也叫做數(shù)據(jù)源,也就是機(jī)器學(xué)習(xí)的燃料。平臺(tái)本身并不關(guān)心原始數(shù)據(jù)是如何被收集的,只關(guān)心數(shù)據(jù)存儲(chǔ)的方式和位置。存儲(chǔ)的方式?jīng)Q定了平臺(tái)是否能支持此種數(shù)據(jù)的操作。存儲(chǔ)的位置決定了平臺(tái)是否有權(quán)限、有能力去讀取到此數(shù)據(jù)。NFS和OSS一般用于存儲(chǔ)非結(jié)構(gòu)化數(shù)據(jù),例如圖片和視頻。而HDFS和數(shù)據(jù)庫(kù)里面存放的都是結(jié)構(gòu)化、半結(jié)構(gòu)化的數(shù)據(jù),一般都是已經(jīng)經(jīng)過ETL處理過的數(shù)據(jù)。

數(shù)據(jù)標(biāo)注

數(shù)據(jù)標(biāo)注針對(duì)是的監(jiān)督學(xué)習(xí)任務(wù),目前機(jī)器學(xué)習(xí)的應(yīng)用場(chǎng)景大多都是應(yīng)用監(jiān)督學(xué)習(xí)任務(wù)習(xí)得的。巧婦難為無(wú)米之炊,沒有足夠的標(biāo)注數(shù)據(jù),算法的發(fā)揮也不會(huì)好到哪兒去。對(duì)于標(biāo)注這塊。業(yè)務(wù)功能上來(lái)說,基本上可以當(dāng)成是另一套系統(tǒng)了,我們可以把它叫做標(biāo)注平臺(tái)。

數(shù)據(jù)標(biāo)注有兩種,一種是人工標(biāo)注; 另一種是使用已訓(xùn)練好的機(jī)器學(xué)習(xí)模型來(lái)標(biāo)注,然后再輔以人工確定和修訂。無(wú)論是使用哪種方式,最后都需要人工介入。數(shù)據(jù)標(biāo)注結(jié)果的標(biāo)準(zhǔn)化、規(guī)范化則有一定的難度。因?yàn)椴煌乃惴ā⒖蚣芸赡苄枰煌臄?shù)據(jù)格式。而且還需要支持不同的需求,比如基本的針對(duì)圖片的目標(biāo)檢測(cè)、目標(biāo)分類、目標(biāo)跟蹤、語(yǔ)義分割等。

圖像分類:給定一張圖片,圖像分類要回答的問題是這張圖片中是否包含某類物體(比如牛);

目標(biāo)檢測(cè):目標(biāo)檢測(cè)要回答的問題則是物體出現(xiàn)在圖中的什么地方,即需要給出物體的外接矩形框,如圖 1(b)所示。

目標(biāo)跟蹤:是在視頻序列中的每幀圖像中找到指定的目標(biāo)對(duì)象運(yùn)動(dòng)位置。我們可以根據(jù)視頻實(shí)時(shí)跟蹤一個(gè)或多個(gè)目標(biāo)元素。

語(yǔ)義分割:語(yǔ)意分割是對(duì)圖像中的每一個(gè)像素進(jìn)行分類,目前廣泛應(yīng)用于醫(yī)學(xué)圖像與無(wú)人駕駛等

在標(biāo)注平臺(tái)中,往往都是人工+模型混合使用的,整體流程如下:

在最開始可能沒有模型來(lái)輔助進(jìn)行標(biāo)注,這個(gè)時(shí)候就需要人為手工介入,以此來(lái)訓(xùn)練出一個(gè)模型

當(dāng)我們根據(jù)標(biāo)注出的數(shù)據(jù)訓(xùn)練出不錯(cuò)的模型之后,就可以使用此模型來(lái)對(duì)新輸入的數(shù)據(jù)做一個(gè)預(yù)標(biāo)注的工作,然后再輔以人工確認(rèn)和修訂,如此反復(fù)迭代,隨著輸入數(shù)據(jù)的增多,當(dāng)我們訓(xùn)練出的模型準(zhǔn)確率達(dá)到一個(gè)很高的水準(zhǔn)之后,需要人工操作的數(shù)據(jù)就會(huì)越來(lái)越少。以此減少人工成本費(fèi)。

算法管理

算法工程師撰寫算法,一般在Notebook中,Notebook本身功能并不復(fù)雜。實(shí)質(zhì)上就是對(duì)Jupyter Notebook/JupyterLab等的包裝。通常的做法是使用Kubernetes的Service,啟動(dòng)一個(gè)Notebook。用戶可以在Notebook里面讀取平臺(tái)生成的數(shù)據(jù)集,寫完代碼后,還得支持提交分布式訓(xùn)練。算法撰寫完成也可以做在線編輯,或者進(jìn)行版本管理。

模型管理

模型訓(xùn)練平臺(tái)一般都會(huì)集成Spark ML、XGBoost、TensorFlow等多種底層訓(xùn)練框架,和機(jī)器學(xué)習(xí)模型簡(jiǎn)單的有LR、SVM,樹模型有GBDT、RF、XGB等,深度學(xué)習(xí)模型有RNN、DNN、LSTM、DeepFM等等。模型管理平臺(tái)的目標(biāo)就是提供統(tǒng)一的模型創(chuàng)建、訓(xùn)練、部署、切換、版本管理等解決方案,并為機(jī)器學(xué)習(xí)和深度學(xué)習(xí)模型提供高可用的線上預(yù)測(cè)服務(wù)。模型并不是訓(xùn)練好了就會(huì)一直使用,永不改變。它是在不斷迭代、不斷優(yōu)化的,當(dāng)然使用不同的版本來(lái)進(jìn)行A/B Test也是很常見的需求。所以模型版本管理就顯得很重要了。

同時(shí),模型管理平臺(tái)還收集各個(gè)服務(wù)節(jié)點(diǎn)的心跳上報(bào)信息,維護(hù)模型的狀態(tài)和版本切換,確保所有節(jié)點(diǎn)上模型版本一致。

底層資源管理

在底層資源管理上,多數(shù)是引入容器云對(duì)模型任務(wù)進(jìn)行統(tǒng)一調(diào)度、利用鏡像打包模型代碼提高可移植性、實(shí)現(xiàn)數(shù)據(jù)集的分布式存儲(chǔ)以及采用網(wǎng)絡(luò)加速分布式訓(xùn)練任務(wù)。可以解決了多張 GPU 卡之間的合理調(diào)度問題,使得分布式訓(xùn)練任務(wù)能優(yōu)先滿足機(jī)內(nèi)總線和集群網(wǎng)絡(luò)拓?fù)?,?xùn)練效率和 GPU 線性性能得到提升。

租戶管理

機(jī)器學(xué)習(xí)平臺(tái)本視解決的就是數(shù)據(jù)和工程流的問題,自然設(shè)計(jì)到多角色,多租戶情況,租戶間權(quán)限、數(shù)據(jù)隔離、租戶資源配額、任務(wù)優(yōu)先級(jí)劃分這些都是必不可少的,一般采用三級(jí)或者更多級(jí)別來(lái)實(shí)現(xiàn)。

四、如何評(píng)估機(jī)器學(xué)習(xí)平臺(tái)

機(jī)器學(xué)習(xí)平臺(tái)的主要在“功能、性能、安全、兼容性”這四個(gè)維度進(jìn)行評(píng)估。

五、行業(yè)案例

阿里云PAI

阿里云PAI是目前國(guó)內(nèi)應(yīng)用范圍最廣泛的機(jī)器學(xué)習(xí)平臺(tái),也是國(guó)內(nèi)技術(shù)能力公認(rèn)最強(qiáng)的平臺(tái)之一。

騰訊Ti-ML

騰訊推出其機(jī)器學(xué)習(xí)平臺(tái)相對(duì)較晚,但其功能和定位和阿里云PAI即無(wú)二致。

第四范式先知

第四范式公司是專門做機(jī)器學(xué)習(xí)平臺(tái)的AI技術(shù)與服務(wù)商,先知是國(guó)內(nèi)曝光率最高的機(jī)器學(xué)習(xí)平臺(tái)之一。

百度EasyDL

EasyDL是基于百度自主研發(fā)的深度學(xué)習(xí)平臺(tái)飛槳結(jié)合業(yè)界先進(jìn)的工程服務(wù)技術(shù)打造的簡(jiǎn)單易用的模型訓(xùn)練和服務(wù)平臺(tái)。

九章云極

九章云極內(nèi)置140+模塊構(gòu)成常用算法模塊庫(kù),支持自定義編寫。

京東neuCube

JDAI NeuFoundry覆蓋從數(shù)據(jù)標(biāo)注-模型開發(fā)-模型訓(xùn)練-服務(wù)發(fā)布-生態(tài)市場(chǎng)的人工智能開發(fā)全生命周期,并預(yù)置高凈值的脫敏數(shù)據(jù)。

華為ModelArts

華為的機(jī)器開發(fā)平臺(tái)基于自研MoXing深度學(xué)習(xí)框架,提升算法開發(fā)效率和訓(xùn)練速度。

六、寫在結(jié)尾的話

對(duì)于一個(gè)機(jī)器學(xué)習(xí)平臺(tái)。既然是平臺(tái)就需要和好多外部做對(duì)接,那么統(tǒng)一的標(biāo)準(zhǔn)是最重要的,但是到目前為止,有許多東西是沒有一個(gè)統(tǒng)一的標(biāo)準(zhǔn)的,比如數(shù)據(jù)標(biāo)注結(jié)果的存儲(chǔ)格式。有太多的框架,太多的環(huán)境,太多的版本。與之對(duì)應(yīng),不同框架最后生成的模型,也都是各不相同的。如果想要實(shí)現(xiàn)標(biāo)準(zhǔn)的模型壓縮、發(fā)布,也是比較困難的一件事。分布式訓(xùn)練。這塊目前正在快速發(fā)展中,還不是很成熟,需要一一淌下。但是標(biāo)準(zhǔn)只是早晚的事。

搭建一個(gè)平臺(tái)并不是一件簡(jiǎn)單的事情,所需要的成本還是很高的,現(xiàn)在已經(jīng)有的開源框架有可以解決大部分問題。當(dāng)開源工具無(wú)法滿足需求時(shí),企業(yè)可以根據(jù)自己的開發(fā)能力來(lái)進(jìn)行開發(fā),但是也不是都需要搭建自己的機(jī)器學(xué)習(xí)平臺(tái),如果是一次性或者短期項(xiàng)目,可能采買是便宜的。如果需要長(zhǎng)期使用,自建可能是比較劃算的。開始做的時(shí)候可以先試驗(yàn)一些通用模型,然后再結(jié)合一些業(yè)務(wù)屬性整體開發(fā)??傮w來(lái)說就是一開始不需要花費(fèi)大量力氣在這件事情上,最好可以先試用,有效果的話再大量投入。

做產(chǎn)品的都知道做平臺(tái),最怕的是沒有用戶使用平臺(tái),或者不能通過平臺(tái)產(chǎn)生真實(shí)業(yè)務(wù)價(jià)值,這才是最重要的。有某一業(yè)務(wù)場(chǎng)景在平臺(tái)實(shí)現(xiàn)端到端產(chǎn)生價(jià)值,才能證明這個(gè)平臺(tái)的價(jià)值,才能吸引其他用戶來(lái)使用。平臺(tái)搭建完成部分用戶開始上來(lái)試用,然后提各種想法和需求;緊接著,會(huì)逐漸遷移部分功能上來(lái)試用,看看訓(xùn)練的情況等。同時(shí),在這個(gè)階段,就會(huì)需要各種適配用戶原始的系統(tǒng)了,這個(gè)過程是個(gè)漫長(zhǎng)的過程的。 需要持續(xù)投入,才會(huì)量變之后產(chǎn)品質(zhì)變,但是需要保持足夠的耐心。

七、名詞解釋

因?yàn)槲恼轮写嬖诖罅啃袠I(yè)名詞,為了方便大家閱讀,現(xiàn)將主要行業(yè)名詞做了簡(jiǎn)單介紹。

機(jī)器學(xué)習(xí)算法

簡(jiǎn)稱算法,指使用各類編程語(yǔ)言構(gòu)建的算法,主要包括統(tǒng)計(jì)方法、傳統(tǒng)機(jī)器學(xué)習(xí)算法、深度學(xué)習(xí)甚至某些數(shù)學(xué)規(guī)則等。比如無(wú)監(jiān)督K均值聚類算法,有監(jiān)督LR、隨機(jī)森林、GBDT等算法,還有DNN、RNN深度學(xué)習(xí)等算法。

機(jī)器學(xué)習(xí)模型

簡(jiǎn)稱模型,對(duì)具體業(yè)務(wù)強(qiáng)依賴,與業(yè)務(wù)強(qiáng)相關(guān),用來(lái)對(duì)新數(shù)據(jù)進(jìn)行直接預(yù)測(cè)的一系列算法參數(shù)的集合,通常需要和機(jī)器學(xué)習(xí)算法配合進(jìn)行工作。

機(jī)器學(xué)習(xí)框架

機(jī)器學(xué)習(xí)運(yùn)行時(shí)環(huán)境,是指能夠直接提供機(jī)器學(xué)習(xí)算法編寫、模型訓(xùn)練和模型應(yīng)用的軟件系統(tǒng),如Tensorflow、MxNet等,這些框架會(huì)直接調(diào)度計(jì)算資源和存儲(chǔ)資源,其運(yùn)行機(jī)制和具體的業(yè)務(wù)場(chǎng)景無(wú)關(guān)。

Spark

Spark是一種快速、通用、可擴(kuò)展的大數(shù)據(jù)分析引擎,2009年誕生于加州大學(xué)伯克利分校AMPLab,2010年開源,2013年6月成為Apache孵化項(xiàng)目,2014年2月成為Apache頂級(jí)項(xiàng)目。目前,Spark生態(tài)系統(tǒng)已經(jīng)發(fā)展成為一個(gè)包含多個(gè)子項(xiàng)目的集合,其中包含SparkSQL、Spark Streaming、GraphX、MLlib等子項(xiàng)目,Spark是基于內(nèi)存計(jì)算的大數(shù)據(jù)并行計(jì)算框架。Spark基于內(nèi)存計(jì)算,提高了在大數(shù)據(jù)環(huán)境下數(shù)據(jù)處理的實(shí)時(shí)性,同時(shí)保證了高容錯(cuò)性和高可伸縮性,允許用戶將Spark部署在大量廉價(jià)硬件之上,形成集群。Spark得到了眾多大數(shù)據(jù)公司的支持,這些公司包括Hortonworks、IBM、Intel、Cloudera、MapR、Pivotal、百度、阿里、騰訊、京東、攜程、優(yōu)酷土豆。

XGBoost

XGBoost是2014年2月誕生的專注于梯度提升算法的機(jī)器學(xué)習(xí)函數(shù)庫(kù),此函數(shù)庫(kù)因其優(yōu)良的學(xué)習(xí)效果以及高效的訓(xùn)練速度而獲得廣泛的關(guān)注。僅在2015年,在Kaggle競(jìng)賽中獲勝的29個(gè)算法中,有17個(gè)使用了XGBoost庫(kù),而作為對(duì)比,近年大熱的深度神經(jīng)網(wǎng)絡(luò)方法,這一數(shù)據(jù)則是11個(gè)。在KDDCup 2015 競(jìng)賽中,排名前十的隊(duì)伍全部使用了XGBoost庫(kù)。XGBoost不僅學(xué)習(xí)效果很好,而且速度也很快,相比梯度提升算法在另一個(gè)常用機(jī)器學(xué)習(xí)庫(kù)scikit-learn中的實(shí)現(xiàn),XGBoost的性能經(jīng)常有十倍以上的提升。

TensorFlow

TensorFlow是谷歌基于DistBelief進(jìn)行研發(fā)的第二代人工智能學(xué)習(xí)系統(tǒng),其命名來(lái)源于本身的運(yùn)行原理。Tensor(張量)意味著N維數(shù)組,F(xiàn)low(流)意味著基于數(shù)據(jù)流圖的計(jì)算,TensorFlow為張量從流圖的一端流動(dòng)到另一端計(jì)算過程。TensorFlow是將復(fù)雜的數(shù)據(jù)結(jié)構(gòu)傳輸至人工智能神經(jīng)網(wǎng)中進(jìn)行分析和處理過程的系統(tǒng)。TensorFlow可被用于語(yǔ)音識(shí)別或圖像識(shí)別等多項(xiàng)機(jī)器學(xué)習(xí)和深度學(xué)習(xí)領(lǐng)域,對(duì)2011年開發(fā)的深度學(xué)習(xí)基礎(chǔ)架構(gòu)DistBelief進(jìn)行了各方面的改進(jìn),它可在小到一部智能手機(jī)、大到數(shù)千臺(tái)數(shù)據(jù)中心服務(wù)器的各種設(shè)備上運(yùn)行。TensorFlow將完全開源,任何人都可以用。

PyTorch

PyTorch是一個(gè)很著名的支持GPU加速和自動(dòng)求導(dǎo)的深度學(xué)習(xí)框架,在最近幾年收到學(xué)術(shù)界的熱捧,主要是因?yàn)槠鋭?dòng)態(tài)圖機(jī)制符合思維邏輯,方便調(diào)試,適合于需要將想法迅速實(shí)現(xiàn)的研究者。

Hadoop

Hadoop是業(yè)界公認(rèn)的一套行業(yè)大數(shù)據(jù)標(biāo)準(zhǔn)開源軟件,在分布式環(huán)境下Hadoop能提供海量數(shù)據(jù)的處理能力。幾乎所有主流廠商都圍繞Hadoop技術(shù)開發(fā)工具、開源軟件、商業(yè)化工具和技術(shù)服務(wù)。許多大型IT公司,如EMC、Microsoft、Intel、Teradata、Cisco都明顯增加了Hadoop方面的投入。

hadoop擅長(zhǎng)日志分析,facebook就用Hive來(lái)進(jìn)行日志分析,2009年時(shí)facebook就有非編程人員的30%的人使用HiveQL進(jìn)行數(shù)據(jù)分析;淘寶搜索中的自定義篩選也使用的Hive;利用Pig還可以做高級(jí)的數(shù)據(jù)處理,包括Twitter、LinkedIn 上用于發(fā)現(xiàn)您可能認(rèn)識(shí)的人,可以實(shí)現(xiàn)類似Amazon.com的協(xié)同過濾的推薦效果。淘寶的商品推薦也是!在Yahoo!的40%的Hadoop作業(yè)是用pig運(yùn)行的,包括垃圾郵件的識(shí)別和過濾,還有用戶特征建模。

Jupyter Notebooks

Jupyter Notebooks 是一款開源的網(wǎng)絡(luò)應(yīng)用,我們可以將其用于創(chuàng)建和共享代碼與文檔。

其提供了一個(gè)環(huán)境,你無(wú)需離開這個(gè)環(huán)境,就可以在其中編寫你的代碼、運(yùn)行代碼、查看輸出、可視化數(shù)據(jù)并查看結(jié)果。因此,這是一款可執(zhí)行端到端的數(shù)據(jù)科學(xué)工作流程的便捷工具,其中包括數(shù)據(jù)清理、統(tǒng)計(jì)建模、構(gòu)建和訓(xùn)練機(jī)器學(xué)習(xí)模型、可視化數(shù)據(jù)等等。

當(dāng)你還處于原型開發(fā)階段時(shí),Jupyter Notebooks 的作用更是引人注目。這是因?yàn)槟愕拇a是按獨(dú)立單元的形式編寫的,而且這些單元是獨(dú)立執(zhí)行的。這讓用戶可以測(cè)試一個(gè)項(xiàng)目中的特定代碼塊,而無(wú)需從項(xiàng)目開始處執(zhí)行代碼。很多其它 IDE 環(huán)境(比如 RStudio)也有其它幾種方式能做到這一點(diǎn),但我個(gè)人覺得 Jupyter 的單個(gè)單元結(jié)構(gòu)是最好的。

Notebook

Notebook 概念最初由 Mathematica 及 Matlab 等以數(shù)學(xué)為中心的學(xué)術(shù)型平臺(tái)提出,目前在 Python、R 以及 SAS 社區(qū)當(dāng)中非常流行。所謂 Notebook,其本質(zhì)在于記錄數(shù)據(jù)研究結(jié)果,并允許用戶面向不同源數(shù)據(jù)加以運(yùn)行,從而簡(jiǎn)化結(jié)果的可重復(fù)性。良好的 Notebook 應(yīng)充當(dāng)一種共享式協(xié)作環(huán)境,數(shù)據(jù)科學(xué)家小組可以在這里協(xié)同工作,并利用不斷發(fā)展的數(shù)據(jù)集進(jìn)行模型迭代。盡管,Notebook 不能算是代碼開發(fā)的理想環(huán)境,但卻能夠?yàn)閿?shù)據(jù)的協(xié)作、探索以及可視化提供強(qiáng)有力的支持。事實(shí)上,如果擁有足夠的訪問權(quán)限對(duì)接清潔數(shù)據(jù),那么數(shù)據(jù)科學(xué)家們將毫不猶豫地利用 Notebooke 快速瀏覽大型數(shù)據(jù)集。

TensorBoard

TensorBoard是TensorFlow的一組web組件,用來(lái)監(jiān)控TensorFlow的運(yùn)行過程或可視化計(jì)算圖。

TensorBoard目前支持5種可視化:標(biāo)量、圖片、音頻、直方圖、計(jì)算圖。

KubeSphere

KubeSphere 是在 Kubernetes 之上構(gòu)建的以應(yīng)用為中心的多租戶容器管理平臺(tái),支持部署和運(yùn)行在任何基礎(chǔ)設(shè)施之上,提供簡(jiǎn)單易用的操作界面以及向?qū)讲僮鞣绞剑诮档陀脩羰褂萌萜髡{(diào)度平臺(tái)學(xué)習(xí)成本的同時(shí),極大減輕開發(fā)、測(cè)試、運(yùn)維的日常工作的復(fù)雜度,旨在解決 Kubernetes 本身存在的存儲(chǔ)、網(wǎng)絡(luò)、安全和易用性等痛點(diǎn)。幫助企業(yè)輕松應(yīng)對(duì)敏捷開發(fā)、自動(dòng)化運(yùn)維、應(yīng)用快速交付、微服務(wù)治理、多租戶管理、監(jiān)控日志告警、服務(wù)與網(wǎng)絡(luò)管理、鏡像倉(cāng)庫(kù)等業(yè)務(wù)場(chǎng)景。

pandas

pandas是數(shù)據(jù)科學(xué)家用于探索和操作數(shù)據(jù)的主要工具 大多數(shù)人在他們的代碼中將pandas縮寫為pd. 我們一般這么來(lái)使用pandas庫(kù)中最重要的部分是DataFrame。 DataFrame包含你可以認(rèn)為是表的數(shù)據(jù)類型。 這類似于Excel中的工作表或SQL數(shù)據(jù)庫(kù)中的表。 pandas提供了強(qiáng)大的功能來(lái)操作此類數(shù)據(jù)類型。

#專欄作家#

老張,人人都是產(chǎn)品經(jīng)理專欄作家。AI產(chǎn)品經(jīng)理,專注于自然語(yǔ)言處理和圖像識(shí)別領(lǐng)域。現(xiàn)智能保險(xiǎn)創(chuàng)業(yè)公司合伙人,希望與人工智能領(lǐng)域創(chuàng)業(yè)者多多交流。

本文原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載

題圖來(lái)自 Unsplash,基于 CC0 協(xié)議

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 想請(qǐng)教下作者,機(jī)器學(xué)習(xí)平臺(tái)應(yīng)該算Saas還是Paas平臺(tái)?

    來(lái)自廣東 回復(fù)
    1. 如果只是對(duì)內(nèi)使用,就算不上SaaS或者Pass,如果開放使用的話機(jī)器學(xué)習(xí)平臺(tái)是給到算法工程師的一個(gè)工具。做標(biāo)注,模型開發(fā),版本管理等,算是一個(gè)SaaS。

      來(lái)自北京 回復(fù)
  2. 寫的很全面,收藏

    來(lái)自北京 回復(fù)