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

2021-01-10 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 團隊研發。
  • 全愛科技發布首款基於華為昇騰AI的機器視覺平臺
    上證報中國證券網訊(記者李興彩)11月15日,全愛科技在「2019高交會」上發布了首款基於華為昇騰AI處理器的機器視覺平臺——全愛機器視覺平臺,並發布了機器視覺AI人形機器人、電力電子積木仿真系統。據悉,全愛機器視覺平臺是具備超強算力的AI邊緣計算通用平臺。基於華為昇騰A310處理器,該平臺使用極致高效計算低功耗AI SoC,最高功耗僅30W,6.5V-17V寬電壓輸入,可採用鋰電池供電,具備超小體積,可廣泛應用於光學工業檢測、智慧機器人、智能車、智能安防、航空航天、導航等行業領域。
  • 從您的本地機器開始學習Kubernetes
    現在是他們學習導致大規模遷移到Kubernetes的工具、平臺和解決方案的時候了。 Kubernetes是什麼? 學習Kubernetes時要做的第一件事是找到關於它的清晰解釋。
  • 實踐入門NLP:基於深度學習的自然語言處理
    【NLP工程師入門實踐班】——基於深度學習的自然語言處理開車啦!!還不趕緊上車!?【課程概述 】本課程將首先介紹自然語言處理的發展現狀與挑戰,同時,講解深度學習和自然語言處理的結合應用。除了基本算法外,本課程還配備實踐環節,從一些典型的方向:機器翻譯、文本分類、問答等。最後,將和大家討論NLP的行業展望以及和各行各業的結合,比如醫療行業等。
  • 機器之心獨家對話百度 NLP:先解決語義理解,再談機器翻譯取代人類
    目前 NLP 部門為整個公司提供一個大型平臺 NLP 雲,未來這個平臺也會對公司外有所開放,目前(這個平臺)每天都有千億量級的調動量。還有貼近應用的一些大型的應用系統,比如說深度問答系統。NLP 開發的深度問答系統在百度的搜索產品上,會有一些直接展示。比如在搜尋引擎中提出一個問題,用戶可以不需要打開網頁,直觀的得到答案。
  • 百度NLP十年:基於知識增強的語言技術,實現跨模態一體化理解
    從展示中也可以看到,在百度知心輸入法、圖片搜索、小度機器人、度秘、智能客服、數字員工等明星產品背後,百度語言與知識技術也經歷了與時俱進的演變:首先在研究方法上,百度語言與知識的研究方法從最早的基於規則的學習到機器學習,再到基於神經網絡的深度學習最後到現在基於知識增強的深度學習;第二是研究對象,百度語言與知識的研究對象從最開始的詞、短語、句子、篇章發展到了現在的包含語音、視覺以及語言的跨模態一體化
  • 機器學習時代的體驗設計(下):對創造人類行為學習系統的設計師和...
    人與機器之間的新關係在上一篇文章中,我們會發現機器學習驅動的用戶體驗不是線性的,也不是基於靜態的業務和設計規則的。它們會根據人類行為進行演變,並通過不斷變化的數據模型進行更新。每件產品或服務仿佛都有生命一般,就像如谷歌的工作人員說的那樣:「 這是一項與眾不同的工程」。
  • 章魚大數據正式發布基於Hadoop3.0的大數據教學實驗實訓平臺
    基於Hadoop3.0的大數據教學實驗實訓平臺領先發布章魚大數據於2019年8月的在教育行業內率先正式發布基於Hadoop3.0的大數據教學實訓平臺,平臺內所有大數據生態工具與開發環境同步升級,達到完美結合,繼續為高校大數據教學實驗提供有力支撐
  • 鄰居網:基於地理位置的信息分享平臺
    鄰居網:基於地理位置的信息分享平臺在和朋友交流的時候,曾經探討過這樣一個問題:手機和網際網路平臺相比,地理位置是不是其獨特的優勢?
  • 基於問題式學習的英語翻譯教學改革與實踐
    從實驗的統計數據來看,相較於傳統教學模式,基於問題式學習的教學模式在培養學生綜合翻譯能力方面有明顯優勢,能夠更好地激發學生的學習動機;從問卷調查的結果看,學生對問題式學習的教學模式滿意度較高。由此可見,通過基於問題式學習的翻譯教學模式,實驗班學生的翻譯能力水平已經與對照班學生拉開了差距。進一步說明,基於問題式學習的翻譯教學模式能更好地提高學生的翻譯能力水平,教學效果明顯優於傳統的翻譯教學模式。
  • 盒子魚宣布完成B+輪融資 發布基於AI的8.0版本
    【TechWeb報導】11月17日消息,在線教育平臺盒子魚CEO黎小說公布,盒子魚已經完成B+輪融資,具體金額和投資方不做透露。盒子魚宣布完成B+輪融資 發布基於AI的8.0版本此次,盒子魚還宣布推出8.0新版本,新版本加入了AI 技術,學生能夠通過機器了解英文文章的難度、判斷句子的種類
  • 基於百度EasyDL定製化圖像識別平臺的海洋魚類識別方法
    【方法】本文提出了一種基於百度EasyDL定製化圖像識別平臺的海底魚類識別方法。首先使用伽馬校正法和暗通道先驗算法對圖片數據進行預處理,提高圖片亮度和清晰度,接著利用百度EasyDL定製化圖像識別平臺構建初魚類識別模型,再使用數據增強等方法對模型進行調優,提高模型識別能力。
  • 科學家想用機器學習+電擊實驗,幫你增強記憶力
    首先,他們準備了記載了很多事項的表格要求志願者學習,同時記錄他們學習和回憶時的腦信號。之後他們用機器學習的方法來分析大腦信號數據,想研究能否來基於實驗者的大腦狀態,來預測他們是否可以記住更多事項。隨後,Kahana在實驗者記憶時為他們大腦輸入隨機震動。他們發現了電極震動對大腦的影響。
  • 火貓平臺翻臉要求玩機器索賠違約金
    火貓平臺翻臉要求玩機器索賠違約金 孫笑川帶惡人!火貓平臺翻臉要求玩機器索賠違約金!就在近日,CSGO遊戲直播大平臺「火貓直播」官方微博稱玩機器違約並且在第三平臺直播,並向玩機器索賠違約金。
  • Pedro Domingos深度解析機器學習五大流派中主算法精髓
    填補現有知識的空白和科學家工作的方式很像,觀察——做出假設——通過理論來進行解釋——成功(或失敗,嘗試新的)等2.大腦仿真世界上最偉大的學習機器就是人的大腦,因此讓我們對它進行逆向工程。找出圖中的生物學家其實是那臺機器,圖中的機器是一名完整的、自動的生物學家,它也是從分子生物學中的DNA、蛋白質、RNA開始學習的。使用逆向演繹來進行假設,設計實驗來測試這些假設是否成立(在沒有人類的幫助下)。
  • 機器喵大作戰!
    先來簡單扒一扒各種學習方法——▌有監督學習由「專家」先把數據的特徵標記好,交給機器來學習這些特徵,然後,機器會得到一個「模型」。這個過程,稱之為訓練。這,就是「無監督學習」。▌強化學習在機器學習中,還有一種方法,叫做強化學習,俗稱:打一巴掌,給個甜棗。讓機器對問題作出判斷,如果機器給出了錯誤的答案,就對機器進行「懲罰」,負面反饋。
  • 一起教育科技基於英特爾 技術優化 AI 口語測評平臺 賦能英語教學
    在傳統口語學習場景中,要評判口語水平,往往需要師生以「一對一」的方式來進行,教師有限的時間和精力與學生大量的口語評判需求之間形成了尖銳的矛盾,學校需要能夠智能、準確地測評學生口語的平臺,以滿足口語學習的旺盛需求。  在此背景下,利用 AI 技術的口語測評平臺應運而生。
  • 劉慶峰的人工智慧機器模仿川普講話_機器漢英翻譯已達6級
    在此判斷的基礎上,雲知聲2016年將重點布局「雲端芯」一體化的AI芯戰略,幫助人們實現萬物「智」聯,基於這個概念雲知聲開始實踐人工智慧。 未來是數據的世界,黃偉一再強調:「今天,人工智慧之所以能夠看得到一點曙光,能夠落地,其實就是天時地利人和、運算能力、數據以及算法。」
  • 基於Android平臺的數獨遊戲的設計與實現-開題報告
    而手機遊戲有很大的優勢,1易於學習:既然手機遊戲面向的是普通消費者而不是計算機專家,那麼他們不可能深入的學習遊戲技巧。消費者不會花幾個小時去研究一個3元的手動操作的遊戲。保持遊戲的簡單是最基本的要求。2可中斷性:多任務處理是手機生活方式的基本特徵。手機用戶常常在任務(如等一個電子郵件或者等車)之間有一小段時間。
  • 百度機器翻譯獲國家科技進步獎
    1月8日,2015年度國家科學技術獎勵大會在人民大會堂舉行,百度機器翻譯項目獲頒國家科學技術進步獎二等獎,這是該獎項首次出現網際網路巨頭(BAT)的身影。   機器翻譯一直被公認為人工智慧領域最難的課題之一,百度機器翻譯的突破性成果,使我國掌握了網際網路機器翻譯的核心技術,佔領了技術制高點。