每次購物狂歡都是技術(shù)平臺的一場數(shù)據(jù)“博弈”。去年雙十一,阿里旗下的電子商務(wù)平臺天貓就再一次刷新了數(shù)據(jù)記錄,而強大的系統(tǒng)處理性能更是讓業(yè)界敬佩不已:單日數(shù)據(jù)處理量達到970PB,每秒處理峰值數(shù)據(jù)高達25億條,并幫助天貓產(chǎn)品推薦的點擊率提高了4%——這一連串的數(shù)據(jù)背后,離不開Alink的支撐。
作為業(yè)界同時支持批式算法、流式算法的機器學(xué)習(xí)平臺之一,Alink基于Flink開發(fā)而來,提供了豐富的算法組件庫和便捷的操作框架,且目前已被廣泛運用在阿里內(nèi)部的搜索、推薦、廣告等多個核心實時在線業(yè)務(wù)中,以及支持Kafka、HDFS和HBase等一系列開源數(shù)據(jù)存儲平臺。
在本文中,CSDN有幸采訪到了Alink創(chuàng)始人楊旭,他將從一線開發(fā)的視角,帶我們了解這個開源機器學(xué)習(xí)平臺的技術(shù)路徑、典型應(yīng)用案例及發(fā)展規(guī)劃等內(nèi)容。
楊旭,機器學(xué)習(xí)Alink創(chuàng)始人,阿里巴巴集團計算平臺事業(yè)部的資深算法專家,阿里云機器學(xué)習(xí)算法平臺PAI中基礎(chǔ)機器學(xué)習(xí)算法的負責(zé)人。
Alink衍生背景:算法工程師的開發(fā)訴求
隨著大數(shù)據(jù)時代的到來和人工智能的崛起,機器學(xué)習(xí)所能處理的場景更加廣泛和多樣。構(gòu)建的模型需要對批量數(shù)據(jù)進行處理,為了達到實時性的要求還需要直接對流式數(shù)據(jù)進行實時預(yù)測,還要具備將模型應(yīng)用在企業(yè)應(yīng)用和微服務(wù)上能力。為了取得更好的業(yè)務(wù)效果,算法工程師們需要嘗試更多更復(fù)雜的模型,需要處理更大的數(shù)據(jù)集,使用分布式集群已經(jīng)成為常態(tài);為了及時對市場的變化進行反應(yīng),越來越多的業(yè)務(wù)選用在線學(xué)習(xí)方式直接處理流式數(shù)據(jù)、實時更新模型。
楊旭解釋道,“我們團隊一直從事算法平臺的研發(fā)工作,感受到了高效能的算法組件和便捷操作平臺對開發(fā)者的幫助?!贬槍φ谂d起的機器學(xué)習(xí)廣泛而多樣的應(yīng)用場景,他和所帶領(lǐng)的團隊在2017年開始基于Flink研發(fā)新一代的機器學(xué)習(xí)算法平臺,使得數(shù)據(jù)分析和應(yīng)用開發(fā)人員能夠輕松搭建端到端的業(yè)務(wù)流程。
Alink究竟是什么?
Alink 是阿里巴巴計算平臺事業(yè)部PAI團隊從2017年開始基于實時計算引擎 Flink 研發(fā)的新一代機器學(xué)習(xí)算法平臺,提供豐富的算法組件庫和便捷的操作框架,開發(fā)者可以一鍵搭建覆蓋數(shù)據(jù)處理、特征工程、模型訓(xùn)練、模型預(yù)測的算法模型開發(fā)全流程。項目之所以定為Alink,是取自相關(guān)名稱(Alibaba, Algorithm, AI, Flink, Blink)的公共部分。
借助Flink在批流一體化方面的優(yōu)勢,Alink能夠為批流任務(wù)提供一致性的操作。楊旭提到,在2017年初,他們通過調(diào)研團隊看到了Flink在批流一體化方面的優(yōu)勢及底層引擎的優(yōu)秀性能,于是基于Flink重新設(shè)計研發(fā)了機器學(xué)習(xí)算法庫,即Alink平臺。該平臺于2018年在阿里集團內(nèi)部上線,隨后不斷改進完善,在阿里內(nèi)部錯綜復(fù)雜的業(yè)務(wù)場景中鍛煉成長。
“作為業(yè)界首個同時支持批式算法、流式算法的機器學(xué)習(xí)平臺,Alink 提供了 Python 接口,開發(fā)者無需 Flink 技術(shù)背景也可以輕松構(gòu)建算法模型?!?/p>
據(jù)楊旭介紹,Alink 已被廣泛運用在阿里巴巴搜索、推薦、廣告等多個核心實時在線業(yè)務(wù)中。在此前落幕的天貓雙 11 中,單日數(shù)據(jù)處理量達到 970PB,每秒處理峰值數(shù)據(jù)高達 25 億條。Alink 成功經(jīng)受住了超大規(guī)模實時數(shù)據(jù)訓(xùn)練的檢驗,并幫助提升 4% CTR(商品點擊轉(zhuǎn)化率)。
Alink功能簡介
1、豐富的算法庫
Alink擁有豐富的批式算法和流式算法,幫助數(shù)據(jù)分析和應(yīng)用開發(fā)人員能夠從數(shù)據(jù)處理、特征工程、模型訓(xùn)練、預(yù)測,端到端地完成整個流程。如下圖所示,Alink提供的開源算法模塊中,每一個模塊都包含流式和批式算法。比如線性回歸,包含批式線性回歸訓(xùn)練、流式線性回歸預(yù)測和批式線性回歸預(yù)測。
2、友好的使用體驗
“為了提供更好的交互式和可視化體驗,我們在開源的同時推出了PyAlink,用戶可以通過PyAlink的Python包以notebook的方式使用Alink?!睏钚癖硎?,PyAlink不僅支持單機運行,也支持集群提交,并且打通了Operator(Alink算子)和DataFrame的接口,從而使得Alink整個算法流程無縫融入Python。PyAlink也提供使用Python函數(shù)來調(diào)用UDF或者UDTF。PyAlink在notebook中使用如下圖,展示了一個模型訓(xùn)練預(yù)測,并打印出預(yù)測結(jié)果的過程。
3、與Spark對比
在離線學(xué)習(xí)算法方面,Alink 跟 SparkML 性能對比基本相當(dāng),下圖給出的是一些經(jīng)典算法的性能對比:
通過上圖可以看出,Alink在大部分算法性能優(yōu)于Spark,個別算法性能比Spark弱,整體是一個相當(dāng)?shù)乃健?/p>
但是,“在功能的完備性方面,Alink更有優(yōu)勢”,Alink除了覆蓋Spark的算法,還包含流式算法、流批混跑、在線學(xué)習(xí)、中文分詞等。
阿里和Alink的開源之路
在2018年,GitHub新增活躍用戶數(shù)量超過了前六年的總和,相較于2017年新增了40%的組織機構(gòu)和30%的代碼倉庫。從全球趨勢來看,開源無疑是軟件發(fā)展的大勢所趨。目前在國內(nèi),阿里是貢獻開源最出色的企業(yè)。GitHub上有大量的開源項目由阿里創(chuàng)建,據(jù)阿里經(jīng)濟體GitHub開源生態(tài)報告統(tǒng)計,國內(nèi)Top10的開源項目中,阿里的開源項目有6個。
在談Alink開源之前,楊旭首先介紹了與之相關(guān)的Flink與FlinkML?!癋link是一個面向數(shù)據(jù)流處理和批量數(shù)據(jù)處理的可分布式的開源計算框架,我們看好Flink引擎的優(yōu)秀性能,希望基于Flink解決流程機器學(xué)習(xí)場景的問題?!盕linkML為Flink自帶的機器學(xué)習(xí)算法庫,分為舊的版本和新的版本?!霸谧鯝link前,我們首先認真調(diào)研了當(dāng)時的FlinkML(即舊版本FlinkML)的情況,其僅支持10余種算法,支持的數(shù)據(jù)結(jié)構(gòu)也不夠通用,在算法性能方面做的優(yōu)化也比較少,而且其代碼也很久沒有更新。所以,我們放棄了基于舊版FlinkML進行改進、升級的想法,決定基于Flink重新設(shè)計研發(fā)機器學(xué)習(xí)算法庫,隨后發(fā)展為現(xiàn)在的Alink。”
Alink在發(fā)展的過程中一直與Flink社區(qū)緊密關(guān)聯(lián),在每年的Flink Forward大會上,團隊一直有匯報項目的進展,共同探討技術(shù)問題,獲取反饋和建議。隨著Alink功能的不斷增強和完善,“社區(qū)中歡迎Alink進行開源的呼聲日益高漲,我們也開始和Flink社區(qū)更緊密聯(lián)系,推動開源Alink的代碼進入FlinkML。”
與此同時,社區(qū)中更多的人意識到舊版FlinkML的問題,決定整個廢棄掉舊版FlinkML,建設(shè)新版FlinkML?!拔覀兎e極參加新版FlinkML API的設(shè)計,分享Alink API設(shè)計的經(jīng)驗;Alink的Params等概念被社區(qū)采納;之后開始為新版FlinkML貢獻算法實現(xiàn)代碼,已提交了40余個PR,包括算法基礎(chǔ)框架、基礎(chǔ)工具類及若干算法實現(xiàn)。”
Alink包含了非常多的機器學(xué)習(xí)算法,在向FlinkML貢獻的過程中,需要社區(qū)commiter的討論設(shè)計與審查代碼,這個過程有助于代碼的精益求精,但由于社區(qū)commiter的資源有限,代碼完全貢獻到FlinkML的過程會持續(xù)很長時間?!斑@時,我們不得不考慮是否有其他方式,可以讓用戶先用起來”,“Alink單獨開源是個很好的解決方式”,它與向FlinkML繼續(xù)貢獻算法實現(xiàn),可以同時進行。用戶的使用反饋也有助于更好的改進算法實現(xiàn)。
此想法獲得了社區(qū)的支持,獲得了阿里內(nèi)部的支持,在Flink Forword Asia 2019大會上,Alink正式宣布開源。
目前,Alink開源已經(jīng)四個多月,在這段時間里Alink在開源社區(qū)的聲望越來越高,Alink在Github上已經(jīng)有2000多顆Star,400多次fork。楊旭感嘆道,“目前為止,我們的開源用戶群已經(jīng)將近1000人,并且已經(jīng)有多位社區(qū)開發(fā)者向Alink提交算法code,有幾十位社區(qū)的Alink用戶向我們提出Alink算法bug或者算法改進需求。Alink開發(fā)團隊也積極和社區(qū)互動,共同推進Alink平臺的發(fā)展?!币环矫妫珹link團隊積極支持社區(qū)用使用Alink,幫助數(shù)百位社區(qū)用戶解決他們在使用Alink算法遇到的困難。另一方面,針對社區(qū)用戶提出的算法bug和算法改進需求,Alink團隊第一時間作出響應(yīng),對這些bug和改進需求進行排期,并在開發(fā)完成后及時開源到社區(qū),解決社區(qū)用戶的需求。
“雖然Alink的開源已經(jīng)取得了階段性成果,我們?nèi)匀辉诜e極向FlinkML貢獻代碼”,楊旭最后表示,他希望將更多優(yōu)秀的機器學(xué)習(xí)算法貢獻給Flink項目,也希望和社區(qū)一起努力,共同促進Flink社區(qū)機器學(xué)習(xí)生態(tài)的發(fā)展和繁榮。
-
算法
+關(guān)注
關(guān)注
23文章
4623瀏覽量
93104 -
數(shù)據(jù)處理
+關(guān)注
關(guān)注
0文章
610瀏覽量
28599 -
機器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8428瀏覽量
132835
發(fā)布評論請先 登錄
相關(guān)推薦
評論