中科院计算所开源Easy Machine Learning:让机器学习应用开发简单快捷 By 机器之心2017年6月13日 13:05 今日,中科院计算所研究员徐君在微博上宣布「中科院计算所开源了
中科院計算所開源Easy Machine Learning:讓機器學習應用開發(fā)簡單快捷
By?機器之心2017年6月13日 13:05 今日,中科院計算所研究員徐君在微博上宣布「中科院計算所開源了 Easy Machine Learning 系統(tǒng),其通過交互式圖形化界面讓機器學習應用開發(fā)變得簡單快捷,系統(tǒng)集成了數(shù)據(jù)處理、模型訓練、性能評估、結果復用、任務克隆、ETL 等多種功能,此外系統(tǒng)中還提供了豐富的應用案例,歡迎大家下載使用。」在此文章中,機器之心對開源的 Easy Machine Learning 系統(tǒng)進行了介紹。GitHub 項目地址:https://github.com/ICT-BDA/EasyML
什么是 Easy ML 系統(tǒng)?
機器學習算法已然成為諸多大數(shù)據(jù)應用中不可或缺的核心組件。然而,由于機器學習算法很難,尤其是在分布式平臺比如 Hadoop 和 Sparks 上,機器學習的全部潛能遠遠沒有發(fā)揮出來。關鍵障礙不僅來自算法本身的實現(xiàn),還常常來自涵蓋多步操作和不同算法的實際應用過程。
我們的平臺 Easy Machine Learning 提供了一個通用的數(shù)據(jù)流系統(tǒng),可以降低將機器學習算法應用于實際任務的難度。在該系統(tǒng)中,一個學習任務被構造為一個有向非循環(huán)圖(DAG/directed acyclic graph),其中每個節(jié)點表征一步操作(即機器學習算法),每一條邊表征從一個節(jié)點到后一個即節(jié)點的數(shù)據(jù)流。任務可被人工定義,或根據(jù)現(xiàn)有任務/模板進行克隆。在把任務提交到云端之后,每個節(jié)點將根據(jù) DAG 自動執(zhí)行。圖形用戶界面被實現(xiàn),從而可使用戶以拖拉的方式創(chuàng)建、配置、提交和監(jiān)督一項任務。該系統(tǒng)的優(yōu)點有:
1. 降低定義和執(zhí)行機器學習任務的門檻;2. 共享和再利用算法的實現(xiàn)、 job DAG 以及試驗結果;3. 在一個任務中無縫整合單機算法和分布式算法。
該系統(tǒng)包含三個主要組件:
- 一個分布式的機器學習庫,不僅能實現(xiàn)流行的機器學習算法,也能實現(xiàn)數(shù)據(jù)預處理/后處理、數(shù)據(jù)格式轉變、特征生成、表現(xiàn)評估等算法。這些算法主要是基于 Spark 實現(xiàn)的。
- 一個基于 GUI 的機器學習開發(fā)環(huán)境系統(tǒng),能讓用戶以拖放的方式創(chuàng)造、安裝、提交、監(jiān)控、共享他們的機器學習流程。機器學習庫中所有的算法都可在此開發(fā)環(huán)境系統(tǒng)中獲得并安裝,它們是構建機器學習任務的主要基礎。
- 執(zhí)行任務的云服務。我們基于開源的 Hadoop 和 Spark 大數(shù)據(jù)平臺建立了該服務。為了建立一個平臺,我們在 Docker 上組織了服務器集群。從 GUI 上接受一個 DAG 任務之后,在所有的獨立數(shù)據(jù)源準備好時,每個節(jié)點將會自動安排運行。對應節(jié)點的算法將會依據(jù)實現(xiàn)在 Linux、Spark 或者 Map-Reduce\cite 上自動安排運行。
如何參與我們的項目?
pull 整個項目,并準備好必需的環(huán)境和開發(fā)工具。按照 https://github.com/ICT-BDA/EasyML/blob/master/QuickStart.md 這里的步驟,你可以在你的計算機中創(chuàng)建我們的系統(tǒng)。
怎樣使用 Easy ML 開發(fā)環(huán)境?
在運行 Easy ML 之后,你能使用我們官方賬號 bdaict@hotmail.com、密碼 bdaict 登錄 http://localhost:18080/EMLStudio.html。為了最佳的用戶體驗,我們建議使用 Chrome 瀏覽器。
正如下圖所示,用戶可以根據(jù)左邊菜單的選擇算法和數(shù)據(jù)集創(chuàng)建一個機器學習任務(一個數(shù)據(jù)流 DAG)。用戶可以點擊選擇在 Program 和 Data 菜單項下面的算法和數(shù)據(jù)集,同樣也可以點擊 Job 菜單項選擇現(xiàn)存的任務,并復制和做一些必要的修改。用戶同樣可以在右邊的菜單修改任務信息和每一個結點的參數(shù)值。任務中的結點可以對應于單機 Linux 程序或在 Spark、Hadoop Map-Reduce 上運行的分布式程序。
在點擊了 submit 按鈕后,該任務被提交給云端運行。每個節(jié)點的狀態(tài)由不同的顏色表示,如下圖所示:
用戶可以右鍵點擊完成的執(zhí)行節(jié)點上 green output port 按鈕來預覽輸出數(shù)據(jù)。也可以從每個完成的執(zhí)行節(jié)點的右鍵菜單中檢查 stdout 和 stderr 日志。用戶可以通過右鍵單擊相應的輸出端口來檢查節(jié)點的輸出。執(zhí)行時打印的標準輸出和標準錯誤信息可通過右鍵單擊相應節(jié)點并選擇菜單中 Show STDOUT/Show STDERR 的方式進行檢查。
在結束后(無論成功與否),任務可以被繼續(xù)修改,再次提交并運行,如下圖所示。我們的系統(tǒng)指揮安排受影響的節(jié)點來運行。不受影響的節(jié)點輸出直接重用,以節(jié)省運行時間和系統(tǒng)資源。
用戶可以上傳自己的算法包和數(shù)據(jù)集來建立自己的任務,并分享給他人。通過點擊 upload program 按鈕,彈出窗口允許用戶指定算法包的必要信息,包括名稱、類別、描述和命令行特征字符串等,如下圖所示。其中最重要的在于使用預定格式編寫特征字符串。它定義了節(jié)點的輸入端口、輸出端口和參數(shù)設置。我們在面板中開發(fā)了一個工具來幫助用戶編寫命令行字符串模式。通過點擊 upload data 按鈕,用戶可以用與上傳算法包相似的方式上傳數(shù)據(jù)集。
致謝
以下人員對 EasyML 項目的開發(fā)做出了貢獻。
- 徐君,中國科學院計算技術研究所. 主頁:http://www.bigdatalab.ac.cn/~junxu
- Xiaohui Yan,華為技術公司
- Xinjie Chen,中國科學院計算技術研究所
- Zhaohui Li,中國科學院計算技術研究所
- Tianyou Guo,中國科學院計算技術研究所
- Jianpeng Hou,中國科學院計算技術研究所
- Ping Li,中國科學院計算技術研究所
- 程學旗,中國科學院計算技術研究所. 主頁:http://www.bigdatalab.ac.cn/~cxq/
論文:使用數(shù)據(jù)流簡化機器學習流程(Ease the Process of Machine Learning with Dataflow)
論文地址:http://203.187.160.132:9011/www.bigdatalab.ac.cn/c3pr90ntc0td/~junxu/publications/CIKM2016_BDADemo.pdf
機器學習算法已經(jīng)變成許多大數(shù)據(jù)應用的關鍵部分。然而機器學習的全部潛力還遠遠沒有被釋放出來,因為通常使用機器學習算法是很困難的,尤其是在 Hadoop 和 Spark 這樣的分布式平臺上。最主要的障礙不僅僅來源于實現(xiàn)算法本身,也是因為將它們應用到實際應用中通常需要很多步驟和不同的算法。在本演示中,我們提出一種通用的基于數(shù)據(jù)流的系統(tǒng)(general-purpose dataflow-based system),可用于簡化機器學習算法的實際應用。在這個系統(tǒng)里,學習任務被形式化為一個有向非循環(huán)圖(DAG/directed acyclic graph),其中每一個節(jié)點(node)代表一個運算(比如機器學習算法),并且每個邊(edge)代表數(shù)據(jù)從一個節(jié)點流向其后繼節(jié)點。我們實現(xiàn)了一個圖形用戶界面,可以讓用戶通過拖放的方法去創(chuàng)建、配置、提交和監(jiān)控一個任務。這個系統(tǒng)的優(yōu)點包括:1)降低定義和執(zhí)行機器學習任務的難度;2)共享和復用算法、任務數(shù)據(jù)流 DAG 和(中間)實驗結果;3)把單機使用的算法和分布式算法集成到一個任務中。這個系統(tǒng)是一個機器學習服務,可以通過網(wǎng)絡進行訪問。
總結
以上是生活随笔為你收集整理的中科院计算所开源Easy Machine Learning:让机器学习应用开发简单快捷 By 机器之心2017年6月13日 13:05 今日,中科院计算所研究员徐君在微博上宣布「中科院计算所开源了的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: YEP共享平台释放宜人贷无限潜力
- 下一篇: 透过认知智能剖析商业本质(iPIN CE