斬獲GitHub 2000+ Star,阿里雲開源的Alink機器學習平臺如何跑贏雙11數據“博弈”?

斬獲GitHub 2000+ Star,阿里雲開源的Alink機器學習平臺如何跑贏雙11數據“博弈”?

斬獲GitHub 2000+ Star,阿里雲開源的Alink機器學習平臺如何跑贏雙11數據“博弈”?

作者 | 郭芮

來源 | CSDN(ID:CSDNnews)

「AI技術生態論」人物訪談欄目是CSDN發起的百萬人學AI倡議下的重要組成部分。通過對AI生態頂級大咖、創業者、行業KOL的訪談,反映其對於行業的思考、未來趨勢的判斷、技術的實踐,以及成長的經歷。2020年,CSDN將對1000+人物進行訪談,形成系列,從而勾勒出AI生態最具影響力人物圖譜及AI產業全景圖!

本文為該系列訪談的第九期,通過和阿里資深算法專家、Alink創始人楊旭的一對一訪談,深入批流一體機器學習平臺Alink的“臺前幕後”。

百萬人學AI你也有份!參與文章評論,評論區留言入選,可獲得價值299元的「2020 AI開發者萬人大會」在線直播門票一張。

每次購物狂歡都是技術平臺的一場數據“博弈”。去年雙十一,阿里旗下的電子商務平臺天貓就再一次刷新了數據記錄,而強大的系統處理性能更是讓業界敬佩不已:單日數據處理量達到970PB,每秒處理峰值數據高達25億條,並幫助天貓產品推薦的點擊率提高了4%——這一連串的數據背後,離不開Alink的支撐。

作為業界同時支持批式算法、流式算法的機器學習平臺之一,Alink基於Flink開發而來,提供了豐富的算法組件庫和便捷的操作框架,且目前已被廣泛運用在阿里內部的搜索、推薦、廣告等多個核心實時在線業務中,以及支持Kafka、HDFS和HBase等一系列開源數據存儲平臺。

在本文中,CSDN有幸採訪到了Alink創始人楊旭,他將從一線開發的視角,帶我們瞭解這個開源機器學習平臺的技術路徑、典型應用案例及發展規劃等內容。

楊旭,機器學習Alink創始人,阿里巴巴集團計算平臺事業部的資深算法專家,阿里雲機器學習算法平臺PAI中基礎機器學習算法的負責人。

斩获GitHub 2000+ Star,阿里云开源的Alink机器学习平台如何跑赢双11数据“博弈”?

Alink衍生背景:算法工程師的開發訴求

隨著大數據時代的到來和人工智能的崛起,機器學習所能處理的場景更加廣泛和多樣。構建的模型需要對批量數據進行處理,為了達到實時性的要求還需要直接對流式數據進行實時預測,還要具備將模型應用在企業應用和微服務上能力。為了取得更好的業務效果,算法工程師們需要嘗試更多更復雜的模型,需要處理更大的數據集,使用分佈式集群已經成為常態;為了及時對市場的變化進行反應,越來越多的業務選用在線學習方式直接處理流式數據、實時更新模型。

楊旭解釋道,“我們團隊一直從事算法平臺的研發工作,感受到了高效能的算法組件和便捷操作平臺對開發者的幫助。”針對正在興起的機器學習廣泛而多樣的應用場景,他和所帶領的團隊在2017年開始基於Flink研發新一代的機器學習算法平臺,使得數據分析和應用開發人員能夠輕鬆搭建端到端的業務流程。

斩获GitHub 2000+ Star,阿里云开源的Alink机器学习平台如何跑赢双11数据“博弈”?

Alink究竟是什麼?

Alink 是阿里巴巴計算平臺事業部PAI團隊從2017年開始基於實時計算引擎 Flink 研發的新一代機器學習算法平臺,提供豐富的算法組件庫和便捷的操作框架,開發者可以一鍵搭建覆蓋數據處理、特徵工程、模型訓練、模型預測的算法模型開發全流程。項目之所以定為Alink,是取自相關名稱(Alibaba, Algorithm, AI, Flink, Blink)的公共部分。

藉助Flink在批流一體化方面的優勢,Alink能夠為批流任務提供一致性的操作。楊旭提到,在2017年初,他們通過調研團隊看到了Flink在批流一體化方面的優勢及底層引擎的優秀性能,於是基於Flink重新設計研發了機器學習算法庫,即Alink平臺。該平臺於2018年在阿里集團內部上線,隨後不斷改進完善,在阿里內部錯綜複雜的業務場景中鍛鍊成長。

“作為業界首個同時支持批式算法、流式算法的機器學習平臺,Alink 提供了 Python 接口,開發者無需 Flink 技術背景也可以輕鬆構建算法模型。”

據楊旭介紹,Alink 已被廣泛運用在阿里巴巴搜索、推薦、廣告等多個核心實時在線業務中。在此前落幕的天貓雙 11 中,單日數據處理量達到 970PB,每秒處理峰值數據高達 25 億條。Alink 成功經受住了超大規模實時數據訓練的檢驗,並幫助提升 4% CTR(商品點擊轉化率)。

斩获GitHub 2000+ Star,阿里云开源的Alink机器学习平台如何跑赢双11数据“博弈”?

Alink功能簡介

1、豐富的算法庫

Alink擁有豐富的批式算法和流式算法,幫助數據分析和應用開發人員能夠從數據處理、特徵工程、模型訓練、預測,端到端地完成整個流程。如下圖所示,Alink提供的開源算法模塊中,每一個模塊都包含流式和批式算法。比如線性迴歸,包含批式線性迴歸訓練、流式線性迴歸預測和批式線性迴歸預測。

斩获GitHub 2000+ Star,阿里云开源的Alink机器学习平台如何跑赢双11数据“博弈”?

2、友好的使用體驗

“為了提供更好的交互式和可視化體驗,我們在開源的同時推出了PyAlink,用戶可以通過PyAlink的Python包以notebook的方式使用Alink。”楊旭表示,PyAlink不僅支持單機運行,也支持集群提交,並且打通了Operator(Alink算子)和DataFrame的接口,從而使得Alink整個算法流程無縫融入Python。PyAlink也提供使用Python函數來調用UDF或者UDTF。PyAlink在notebook中使用如下圖,展示了一個模型訓練預測,並打印出預測結果的過程。

斩获GitHub 2000+ Star,阿里云开源的Alink机器学习平台如何跑赢双11数据“博弈”?

3、與Spark對比

在離線學習算法方面,Alink 跟 SparkML 性能對比基本相當,下圖給出的是一些經典算法的性能對比:

斩获GitHub 2000+ Star,阿里云开源的Alink机器学习平台如何跑赢双11数据“博弈”?

通過上圖可以看出,Alink在大部分算法性能優於Spark,個別算法性能比Spark弱,整體是一個相當的水平。

但是,“在功能的完備性方面,Alink更有優勢”,Alink除了覆蓋Spark的算法,還包含流式算法、流批混跑、在線學習、中文分詞等。

斩获GitHub 2000+ Star,阿里云开源的Alink机器学习平台如何跑赢双11数据“博弈”?

阿里和Alink的開源之路

在2018年,GitHub新增活躍用戶數量超過了前六年的總和,相較於2017年新增了40%的組織機構和30%的代碼倉庫。從全球趨勢來看,開源無疑是軟件發展的大勢所趨。目前在國內,阿里是貢獻開源最出色的企業。GitHub上有大量的開源項目由阿里創建,據阿里經濟體GitHub開源生態報告統計,國內Top10的開源項目中,阿里的開源項目有6個。

在談Alink開源之前,楊旭首先介紹了與之相關的Flink與FlinkML。“Flink是一個面向數據流處理和批量數據處理的可分佈式的開源計算框架,我們看好Flink引擎的優秀性能,希望基於Flink解決流程機器學習場景的問題。”FlinkML為Flink自帶的機器學習算法庫,分為舊的版本和新的版本。“在做Alink前,我們首先認真調研了當時的FlinkML(即舊版本FlinkML)的情況,其僅支持10餘種算法,支持的數據結構也不夠通用,在算法性能方面做的優化也比較少,而且其代碼也很久沒有更新。所以,我們放棄了基於舊版FlinkML進行改進、升級的想法,決定基於Flink重新設計研發機器學習算法庫,隨後發展為現在的Alink。”

Alink在發展的過程中一直與Flink社區緊密關聯,在每年的Flink Forward大會上,團隊一直有彙報項目的進展,共同探討技術問題,獲取反饋和建議。隨著Alink功能的不斷增強和完善,“社區中歡迎Alink進行開源的呼聲日益高漲,我們也開始和Flink社區更緊密聯繫,推動開源Alink的代碼進入FlinkML。”

與此同時,社區中更多的人意識到舊版FlinkML的問題,決定整個廢棄掉舊版FlinkML,建設新版FlinkML。“我們積極參加新版FlinkML API的設計,分享Alink API設計的經驗;Alink的Params等概念被社區採納;之後開始為新版FlinkML貢獻算法實現代碼,已提交了40餘個PR,包括算法基礎框架、基礎工具類及若干算法實現。”

Alink包含了非常多的機器學習算法,在向FlinkML貢獻的過程中,需要社區commiter的討論設計與審查代碼,這個過程有助於代碼的精益求精,但由於社區commiter的資源有限,代碼完全貢獻到FlinkML的過程會持續很長時間。“這時,我們不得不考慮是否有其他方式,可以讓用戶先用起來”,“Alink單獨開源是個很好的解決方式”,它與向FlinkML繼續貢獻算法實現,可以同時進行。用戶的使用反饋也有助於更好的改進算法實現。

此想法獲得了社區的支持,獲得了阿里內部的支持,在Flink Forword Asia 2019大會上,Alink正式宣佈開源。

目前,Alink開源已經四個多月,在這段時間裡Alink在開源社區的聲望越來越高,Alink在Github上已經有2000多顆Star,400多次fork。楊旭感嘆道,“目前為止,我們的開源用戶群已經將近1000人,並且已經有多位社區開發者向Alink提交算法code,有幾十位社區的Alink用戶向我們提出Alink算法bug或者算法改進需求。Alink開發團隊也積極和社區互動,共同推進Alink平臺的發展。”一方面,Alink團隊積極支持社區用使用Alink,幫助數百位社區用戶解決他們在使用Alink算法遇到的困難。另一方面,針對社區用戶提出的算法bug和算法改進需求,Alink團隊第一時間作出響應,對這些bug和改進需求進行排期,並在開發完成後及時開源到社區,解決社區用戶的需求。

“雖然Alink的開源已經取得了階段性成果,我們仍然在積極向FlinkML貢獻代碼”,楊旭最後表示,他希望將更多優秀的機器學習算法貢獻給Flink項目,也希望和社區一起努力,共同促進Flink社區機器學習生態的發展和繁榮。

【End】

斩获GitHub 2000+ Star,阿里云开源的Alink机器学习平台如何跑赢双11数据“博弈”?
  • 半小時訓練億級規模知識圖譜,亞馬遜AI開源知識圖譜嵌入表示框架DGL-KE

  • 首次揭秘!大麥如何應對超大規模高性能選座搶票?

  • AI 四巨頭 Google、DeepMind、Microsoft、Uber 深度學習框架大比拼

  • 馬化騰、馬雲並列成為中國首富;百度回應“將上線電商直播”;.NET 5 Preview 2 發佈 | 極客頭條

  • 程序員職場背鍋甩鍋指南

  • 警惕!新騙術出現:這些虛假二維碼生成器已成功盜取 4.6 萬美元!

  • “出道” 5 年採用率達 78%,Kubernetes 的成功秘訣是什麼?


分享到:


相關文章: