Alink:基於Flink的機器學習平臺

2020-12-03 datafuntalk

分享嘉賓:楊旭 阿里巴巴 資深算法專家

編輯整理:朱榮

導讀:Alink是基於Flink流批一體的機器學習平臺,提供一系列算法,可以幫助處理各種機器學習任務,比如統計分析、機器學習、實時預測、個性化推薦和異常檢測。除了提供Java API也提供了PyAlink,可以輕鬆部署到單機及集群環境,通過Jupyter、Zepplin等notebook使用。Alink已在阿里巴巴內部支持了眾多的應用場景,並在2019年11月的Flink Forward Asia大會上宣布開源,隨後不斷迭代發布新的版本,增強功能,提升易用性。

本文主要介紹基於Flink平臺的機器算法的功能、性能與使用實踐,幫助大家快速上手Alink機器學習平臺。其中重點介紹了python語言使用的PyAlink的方法和實例,同時對FM算法進行了詳細的介紹,幫助大家更好上手Alink並在實際工作中得到廣泛應用。

主要圍繞下面倆點展開:

Alink基本介紹ALink快速入門01

Alink基本介紹

首先跟大家介紹一下Alink的基本情況:

1. 什麼是Alink?

Alink是由阿里計算平臺事業部研發的基於Flink的機器學習算法平臺,名稱由Alibaba Algorithm AI Flink Blink 單詞的公共部分組成。

Alink提供了豐富的算法庫並天然可以支持批式和流式的處理,幫助數據分析和應用開發人員完成從數據處理、特徵工程、模型訓練、預測多節點端到端整體流程。

Alink提供Java API和Python API兩種方式進行調用,Java API方便工程人員快速將Alink接入到現有系統中,Python API也叫PyAlink是方便提供機器學習同學完成快速的實驗。

2. Alink功能介紹

Alink作為一個重要的機器學習的平臺,覆蓋機器學習各階段13大類的62項功能點,囊括了機器學習核心的分類算法、聚類算法、回歸算法三類算法,並附帶了4項模型評估的方法,同時還包括關聯規則和協同過濾算法、相似度算法等數據挖掘方面算法。

在算法完成部分後,也提供了評估模型的評估方法,包括二分類評估、多分類評估、回歸評估、聚類評估。在算法應用之前Alink為使用者準備了數據預處理、異常檢查、文本處理等輔助功能處理工具。在在線學習方面Alink也準備了FTRL,可以在線狀態中訓練,在實時場景中提供模型實時更新機制,增強學習模型調整等時效性。在機器學習中的模型選擇與調試參數服務,為大家提供有效的參數調優。3. Alink性能比對

利用加速比對Alink與Sparkml進行性能評測。具體的測試方法是使用相同的測試數據,相同的參數,用Sparkml的計算時間除以Alink的計算時間。從下圖實際測試對比數據可知,Alink在大部分算法性能優於Spark,個別算法性能比Spark弱,整體是一個相當的水平。

4. Alink建設進展

2019年7月發布Alink version 1.2.0:

支持Flink多版本 1.11、1.10、1.09;支持多忘記系統:本地文件系統,Hadoop文件系統,阿里雲oss文件系統;CSV格式讀取、導出組件支持各文件系統;推出AK格式讀取、導出組件,簡化文件數據操作;支持模型信息摘要、輸出;FM分類、回歸算法;2019年6月發布Alink version 1.1.2:

新增30個數據格式轉化組件;支持多版本Hive數據源;在Pipline和LocalPredictor中指出SQL Select操作;2019年4月發布Alink version 1.1.1:

提升使用體驗,參數檢查方面更加智能;2019年2月發布Alink version 1.1.0:

支持Flink1.1.0和Flink1.9的平臺部署問題,PyAlink增加兼容PyFlink的功能;改進UDF/UDTF功能;支持JAVA Maven安裝和 Python PyPl安裝;支持多版本的Kafka數據源;2018年12月發布Alink version 1.0.1:

重點解決windows系統上的安裝問題。2018年11月首次發布Alink version 1.0,在Flink Forword Aisa大會上開源。

02

Alink快速入門

接下來為大家詳細的介紹Alink的使用方式:

1. 使用Maven構建Alink項目簡介

Java使用者藉助Maven中央倉庫,大家只需要4步就可以很容易的構建出Alink項目。第一步:創建項目;第二步:修改pom文件,導入Alink項目jar包;第三步:拷貝修改Alink Java Demo Code;第四步:構建運行;

詳細過程可以參考:

http://zhuanlan.zhilu.com/p/110059114

2. PyAlink安裝實踐

Python使用者藉助PyPl,也可以兩部構建Alink的使用環境。第一步,針對不同作業系統調整部署環境,包括MacOS、Windows、阿里雲伺服器。第二步,從PyPl選擇最新版本的PyAlink安裝,如果之前有PyAlink需要先卸載舊版本,再通過PyPl進行安裝。

① PyAlink任務在notebook上運行

PyAlink的運行方式分為兩種,一種是本地運行,一種是集群運行;在Alink1.1.1以後優化了運行集群運行地址指定的方式,用戶可以更簡潔的運行PyAlink的任務。

② 基於PyFlink的Alink

Alink Operator與PyFlink Table可以相互轉化,方便串聯Flink和Alink的工作流。在1.1.1新版本中還提供了getMLEnv接口,能直接使用flink的提交運行方式直接進行提交 run -py *.py 往集群提交作業。例如:直接使用 python keans.py 。

③ PyAlink使用體驗的改進

為方便的使用PyAlink,最新版本也對於兩個方面進行了優化。一個是Python UDF運行中將自動檢測python3命令,確定運行版本。另一個優化是對DataFrame和BatchOperator互轉性能做了提升,優化後性能提升了80%左右;對collectToDataFrame進行了同樣的優化。

3. Alink支持的數據源

Alink支持批式和流式5種類型的數據源,其中批式數據源包括文件數據源、Hive、Mysql、內存數據;流式數據源主要是針對Kafka。

① 讀寫Kafka示例

以邏輯回歸模型為例使用Kafka分為四步:第一步定義Kafka數據源;第二步使用json提取組件解析Kafka中的數據,完成數據類型轉換;第三步加載邏輯回歸模型,對流數據進行預測;第四步將預測結果再次寫出到Kafka。

② 將JSON格式的字符串解析為多列

Alink也針對json格式的數據進行解析組件JsonToColumnsStreamOp,比json_parser更方便的處理json格式到表格欄位列格式的數據轉化。

③ 日誌的字符串解析為多列

在PyPlink中可以通過分布方式進行處理,先處理【】括號內的數據,再處理CSV格式的數據,PyPlink提供了select選擇組件和link管道組件。

④ Alink類型轉換組件

Alink框架中常用Columns、Vector、Triple等類型的數據作為算法的輸入輸出,但用戶可能會有多種輸入輸出數據類型的需求。因此Alink提供了全面的類型轉換組件,作為銜接使用戶數據與Alink算法數據的橋梁。

Alink共支持Tripile、CSV、JSON、KV、Columns、Vector等6種類型的數據兩兩相互轉換。

批組件中,Alink實現了6種類型的數據兩兩相互轉換的全部30個組件;流組件中,實現了除Triple作為輸入外的共25個組件。

Alink對於眾多的組件使用有一些組件命名規律,組件命名格式參考:原始格式A To 目標格式【流式|批式】Op(),例如:TripleToJsonBatchOp()可以通過批式處理將Trip類型的數據轉化為Json格式的數據。

在數據相互轉化時,輸入類型和輸出類型具有特定的參數。輸入對應參數即可對組件進行配置。大家可以看到這樣的轉化規律性是非常強的,使得大家對于格式轉化的工作變的更加輕鬆。

⑤ 優化枚舉類型參數

在實際開發過中,Alink結合Java開發IDE編輯器的自動提示功能,為選擇器提供了參數聯想選擇的提示功能。

方便開發者對於模型參數的調整,避免參數過多,反覆查手冊的情況。

對於數量列名稱的優化,也有針對原始數據的優化,針對錯位列名也提供錯誤提示功能。

對於開發的開發速度和開發質量的幫助。

4. 統一的文件系統操作介紹

Alink提供了統一的文件系統操作接口,為開發者屏蔽掉對接各類文件系統的繁瑣差異。無論是本地文件系統、hadoop、雲存儲的oss相同功能都可以使用相同名稱的接口獲得相同的調用意圖和返回結果。

在確定文件的位置後,獲取到文件的輸入流輸出流,提供文件拷貝、保存、讀取功能的完備性。

在針對不同環境的文件系統構造實例是需要進行特定配置後,就可以利用統一的文件操作,使用標準化接口完成。

5. 數據文件

了解統一文件對象創建和操作接口後,我們看一下一個實際CSV文件的操作轉化實例。構建一個基於httpl網址數據文件,針對實際的處理過程是創建文件操作實例,使用數據格式轉化組件CSVSrouceBatchOp完成數據schema的構建,完成批次文件的處理操作執行。輸出執行後的文件內容並通過內容計數來驗證文件在轉化過程中內容。

統一文件系統代帶來的好處,通過一樣的代碼完成各環境中的數據處理邏輯。

6. FM算法

Alink在處理大規模稀疏數據場景,提供具有線性計算複雜度的FM算法。針對線性模型的特點,最大的特徵是每個函數有一個特徵,並且這個特徵跟整體函數關係有一個權重。為解決線性模型的表達力,也可以組織一個二階多項模型來增強線性模型對於複雜度的描述能力。

在二階模型中參數更豐富,效果更好的代價是權重矩陣wij將是一個1/2 N方的計算複雜度,當特徵增加時,維度也將隨之增大,造成實際計算中計算力的不足。

因子分解機將是一個較好的折中,在分解機中,每個特徵對應著一個向量,向量的權重就是兩個向量的內積。一個向量取幾十維或者上百維,一般就是取一百維,權重係數就是100xn,計算更可控。模型所帶來的計算量就可以帶來更好的計算效果和更合理的計算代價。

附錄,Alink開源地址:https://github.com/alibaba/Alink

今天的分享就到這裡,謝謝大家。

相關焦點

  • 阿里正式開源通用算法平臺Alink,「雙11」將天貓推薦點擊率提升4%
    整理 | 若名近日,阿里雲計算部門已在 GitHub 上發布了其 Alink 平臺的「核心代碼」,並上傳了一系列算法庫,它們支持批處理和流處理,這對支持機器學習任務至關重要。 Alink 是基於 Flink 的通用算法平臺,由阿里巴巴計算平臺 PAI 團隊研發。
  • Qeexo發布基於邊緣傳感器數據的全自動機器學習平臺AutoML
    來源:TechWeb.com.cn【TechWeb】12月3日,Qeexo奇手公司今日發布了全新的AutoML產品,這是一款一鍵式全自動化平臺,讓用戶能夠快速在邊緣設備上使用傳感器數據構建機器學習解決方案。
  • 使用Flink進行實時日誌聚合:第一部分
    使用Flink、Kafka和Solr進行日誌聚合在此初始解決方案中,讓我們使用Cloudera平臺中可用的處理框架來構建可伸縮且完全可自定義的日誌聚合堆棧。我們的目標是建立一個日誌聚合管道,以服務於我們的實時數據處理應用程式以及任何數據處理或其他類型的應用程式。
  • 專訪騰訊雲機器學習平臺技術負責人:揭秘騰訊深度學習平臺DI-X背後...
    據雷鋒網了解,DI-X將基於騰訊雲的大數據存儲與處理能力,為其用戶提供一站式的機器學習和深度學習服務。馬化騰曾表示:「人工智慧、物聯網,甚至未來的無人駕駛、機器人等等,它的後臺的核心一定有一顆在雲端的大腦。」而對於騰訊而言,馬化騰所提及的雲端大腦正是構建與其騰訊雲服務之上。
  • 基於機器學習的入侵檢測系統
    根據他們發現的地方,可以分為:IDS也可以根據它的行為進行分類:在列出IDS的一般限制之後,我們將討論使用機器學習的混合入侵系統。幾次真正的攻擊遠遠少於虛假警報的數量,這導致真正的威脅經常被忽視。噪聲會通過產生高誤報率嚴重降低IDS的能力。基於籤名的IDS需要不斷的軟體更新才能跟上新威脅。IDS監控整個網絡,因此容易受到網絡主機的相同攻擊。基於協議的攻擊可能導致IDS失敗。網絡IDS只能檢測網絡異常,這些異常限制了它可以發現的各種攻擊。所有入站和出站流量都通過它時,網絡IDS可能會產生瓶頸。
  • 阿里發布的機器學習平臺PAI2.0,和騰訊的DX-I區別在哪? | 雲棲2017...
    本屆雲棲大會的主題是「飛天 · 智能」,和去年10月杭州站的「飛天·進化」相比看似沒有太大的變化,但很明顯的是,無論是主題演講還是會場展區,人工智慧已經取代雲計算成為了出現頻率最高的詞,而其最新發布的機器學習平臺PAI2.0當之無愧成為了大會的焦點。
  • Flink Forward Asia 2020 總結
    尤其值得一提的是 Flink 中文社區的繁榮發展:Flink 是當前 Apache 頂級項目中唯一一個開通了中文郵件列表(user-zh@flink.apache.org)的項目,且中文郵件列表的活躍度已超過英文郵件列表;Flink 的官方公眾號訂閱數超過 3 萬人,全年推送超過 200 篇和 Flink 技術,生態以及實踐相關的最新資訊。
  • 現代汽車開發全球首款基於機器學習的智能巡航控制技術
    現代汽車集團宣布開發了全球首款基於機器學習的智能巡航控制技術,可識別和分析駕駛模式,打造定製的自動駕駛體驗。 基於機器學習的智能巡航控制 對於駕駛愛好者來說,將制動和加速控制權轉讓給諸如自適應巡航控制之類的駕駛輔助系統可能會感到有些放鬆,但也可能會感到有些機械,因為目前人工智慧在汽車上的應用還並不完善,自適應巡航系統往往會出現反應遲鈍、跑偏或者比較小心翼翼的跟車以及加速過快等問題,讓一些系統變得很雞肋。
  • 谷歌推出首款基於機器學習的古埃及象形文字翻譯工具Fabricius
    來源:TechWeb.com.cn【TechWeb】7月15日消息,今天,谷歌藝術與文化今天推出了全球首個基於機器學習的埃及象形文字的數字翻譯工具Fabricius。不管是普通人還是學者都能利用這個工具體驗象形文字,或者助力學術 研究。
  • 亞馬遜開源神經機器翻譯框架Sockeye:基於Apache MXNet的NMT平臺
    通過 Sockeye 框架,你可以建模機器學習以及其他序列到序列的任務。基於 Apache MXNet 的 Sockeye 架構可為打造、訓練和運行當前最優的序列到序列模型承擔絕大部分工作在自然語言處理 (NLP) 中,很多任務是關於序列預測問題。例如,在機器翻譯 (MT) 中,任務是在給定輸入單詞序列的情況下預測已翻譯單詞的序列。執行這種任務的模型常被稱為序列到序列模型。
  • Quora是如何使用機器學習的?
    從那時起,在Quora上使用機器學習發展的越來越快,我們不僅為現有的機器學習應用程式開發了更大更好的模型,而且還擴展了我們使用機器學習的領域。在這個答案中,我將給出一個藍圖,來描繪出在2017年Quora是如何使用機器學習的。機器學習使用實例我將介紹產品的各個不同組成部分,並討論如何在其中使用機器學習。1.
  • 雲南大學團隊在Natural Product Reports發表基於機器學習的天然產物活性研究進展
    未來網高校頻道9月11日訊(記者 楊子健 通訊員 李哲)近日,雲南大學教育部自然資源藥物化學重點實驗室肖偉烈課題組在天然產物權威評述期刊Natural Product Reports上發表文章,對基於
  • Cloudopt AdBlocker 發布基於機器學習的隱私保護瀏覽器擴展
    白澤是 Cloudopt 今年開源的直接運行在瀏覽器上的基於機器學習的啟發式隱私保護引擎,能夠有效的阻擋跟蹤腳本、惡意廣告腳本。使用 JavaScript 開發,可以運行在 Node.js、瀏覽器環境中。 傳統的過濾方式是使用過濾規則進行過濾,但這些過濾規則都是基於開源組織、公益組織或個人手動更新的,需要耗費大量的人力進行維護。
  • 第四範式入圍Forrester機器學習平臺Wave 位列前列
    AI主要由機器學習(ML)模型組成,因此選擇正確的PAML產品可幫助企業快速、規模化構建AI應用,提高企業AI生產力。Forrester也總結了PAML產品所應具備的三大能力:可為不同的團隊簡化模型開發隨著企業業務的不斷發展,AI應用場景也將從幾個擴展至數千個。為此,PAML產品應當具備適合不同團隊和角色的模型開發能力。
  • AMAX亮相PRCV 2020,為您帶來領先的機器學習平臺
    當前, GPU在機器學習模型的訓練中被廣泛使用,而Docker和Kubernetes也成為GPU容器平臺的主流選擇。隨著使用的深入,GPU如何在容器雲平臺中進行高效的調度,如何獲得更高的性能、用戶密度、吞吐量成為當務之急。
  • 讓機器學習為更小的設備服務,Qeexo AutoML 正式亮相
    10月7日消息,Qeexo奇手公司今日發布了全新的AutoML產品,這是一款一鍵式全自動化平臺,讓用戶能夠快速在邊緣設備上使用傳感器數據構建機器學習解決方案。這個產品將填補針對嵌入式邊緣設備的全自動化機器學習平臺的市場空缺。
  • 微軟發布基於FPGA的深度學習平臺Brainwave
    打開APP 微軟發布基於FPGA的深度學習平臺Brainwave 發表於 2019-08-19 17:51:01 據微軟官方博客顯示
  • MathWorks 入選《Gartner 2020 年數據科學和機器學習平臺魔力象限...
    MathWorks 近日宣布,該公司在Gartner 的《2020 年數據科學和機器學習平臺魔力象限》報告中被評為領導者。本文引用地址:http://www.eepw.com.cn/article/202003/410579.htmMathWorks 首席戰略師 Jim Tung 表示:「對我們來說,被認可為數據科學和機器學習領域的領導者,證明 MathWorks 能夠提供解決 AI 挑戰的全方位平臺。
  • 如何利用機器學習提高光學傳感器靈敏度?
    打開APP 如何利用機器學習提高光學傳感器靈敏度?利用機器學習發現了十種不同的模式為了系統地記錄當納米結構的各個參數發生變化時會發生什麼,Barth利用在柏林Zuse研究所開發的軟體計算了每個參數集的三維電場分布。然後,Barth基於機器學習,通過其他電腦程式分析了這些海量數據。「計算機搜索了大約45000條數據記錄,並將它們分成了大約十種不同的模式,」他解釋說。
  • 機器學習主要的特點是模擬人類的學習過程
    近年來,機器學習領域的發展,尤其是深度學習在語音識別、圖像識別、翻譯等應用領域取得了重大突破,與量子信息技術密切相關。本文通過量子信息技術與語音識別的深度聯繫,展現了量子信息技術與語音識別的有機結合,揭示量子信息技術在語音識別方面的潛力,有助於提升量子信息技術在語音識別領域的有效性。現在現在是機器學習的爆發年代,從智慧型手機的大火開始,機器學習開始受到了非常多的追捧。