流批一體機器學習算法平臺

發佈會傳送門

產品詳情

針對正在興起的機器學習廣泛而多樣的應用場景,阿里巴巴計算平臺基礎算法團隊在2017年開始基於Flink研發新一代的機器學習算法平臺。該項目名稱定爲Alink,取自相關名稱(Alibaba, Algorithm, AI, Flink, Blink)的公共部分。經過三年的投入研發,Alink在算法性能、算法規模、算法易用性等方面取得了不錯的成果,並實現了產品化。這使得數據分析和應用開發人員能夠輕鬆搭建端到端的業務流程。

在後面的篇幅中,我們將從算法功能、算法性能、用戶界面、可視化等方面對Alink做一個系統的介紹。

  • 算法功能

Alink擁有豐富的批式算法和流式算法,能夠幫助數據分析和應用開發人員能夠從數據處理、特徵工程、模型訓練、預測,端到端地完成整個流程。如下圖所示,Alink提供的功能算法模塊中,每一個模塊都包含流式和批式算法。比如線性迴歸,包含批式線性迴歸訓練,流式線性迴歸預測和批式線性迴歸預測。另外,Alink算法覆蓋分類、迴歸、聚類、評估、統計分析、特徵工程、異常檢測、文本、在線學習、關聯分析等經典領域,是一個通用的機器學習算法平臺。

9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

目前,Alink已經被阿里巴巴集團內部多個BU使用,並取得了不錯的業務提升。特別是在2019年天貓雙11中,單日數據處理量達到 970PB,每秒處理峯值數據高達 25 億條。Alink 成功經受住了超大規模實時數據訓練的檢驗,並幫助天貓產品推薦的點擊率提高了4%。

  • 算法性能

下圖給出的是一些經典算法與Spark的性能對比,通過該圖可以看出,Alink在大部分算法性能優於Spark,個別算法性能比Spark弱,整體是一個相當的水平。

9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

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

  • 用戶使用界面

爲了提供更好的交互式體驗,我們提供兩種用戶使用界面:webPyAlink

首先我們介紹一下web界面。Web界面提供拖拽的方式創建試驗,通過對每一個組件進行配置完成整個試驗的參數配置。下圖給出的是web界面創建的批式、流式、流批混合的試驗。

9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

並且Alink可以支持節點的級別實驗運行狀態顯示。在各個算法節點旁,我們用閃爍的小燈泡💡表示“運行中”的狀態,用對勾✅表示“運行完成”的狀態。一般情況下,只有批式(batch)組件纔有可能運行結束。基於各個組件的運行狀態,可以十分方便地判斷當前實驗運行到了什麼程度。並且,如果實驗運行中出現了報錯或者長時間不結束的情況,也能根據組件運行狀態更加方便地定位潛在出問題的組件。除了簡單的運行狀態以外,Alink還提供了查看組件輸入、輸出數據量指標的功能。對於不同類型的組件,Alink提供了不同的指標展現方式:對於流式(stream)組件來說,在組件運行時,可以接近實時地看到組件的輸出BPS和RPS數值。而對於批式(batch)組件,在組件運行完成後,會展示總的輸出數據條數和字節數。這些指標的展示對於判斷實驗/業務是否正常運行可以提供很多的參考,尤其對於一些線上實時的業務,通過這些指標就能直觀地看到是否正常運行。

下面我們繼續介紹PyAlink。爲了滿足腳本用戶的需求,我們提供了PyAlink on notebook,用戶可以通過PyAlink的python包使用Alink。PyAlink支持單機運行,也支持集羣提交。並且打通Operator(Alink算子)和DataFrame的接口,從而使得Alink整個算法流程無縫融入python。PyAlink也提供使用Python函數來調用UDF或者UDTF。PyAlink在notebook中使用如下圖,展示了一個模型訓練預測,並打印出預測結果的過程:

9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

  • 可視化

Alink中的可視化包括統計相關的可視化、模型類可視化以及評估可視化等,當前能進行大屏可視化的組件包括:統計分析類組件,直接展示的統計算法的結果;機器學習模型類組件,展示訓練好的模型的信息;評估類組件,展示評估接口。
下圖給出的是統計可視化,通過下圖可以看到我們的統計可視化支持窗口統計和累計統計,並且支持曲線、柱狀圖、統計表、矩陣圖等多種展示方式。

同樣,下面兩幅圖給出的是模型的可視化和評估的可視化。

9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

  • 總結展望

經過三年的發展,Alink已經成爲一個功能完備的機器學習算法平臺,而且已經在2019年FFA19將代碼開源到社區,讓更多的人能夠使用這個平臺解決業務問題。雖然Alink開源已經取得了階段性成果,但是我們將繼續積極向FlinkML貢獻代碼,我們希望將更多優秀的機器學習算法貢獻給Flink項目,也希望和社區一起努力,共同促進Flink社區機器學習生態的發展和繁榮。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章