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