當前位置:
首頁 > 知識 > 中科院計算所開源Easy ML:讓機器學習應用開發簡單快捷

中科院計算所開源Easy ML:讓機器學習應用開發簡單快捷

選自Github

機器之心編譯

今日,中科院計算所研究員徐君在微博上宣布「中科院計算所開源了 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-Reducecite 上自動安排運行。

如何參與我們的項目?

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 項目的開發做出了貢獻。

Jun Xu, Institute of Computing Technolgy, Chinese Academy of Sciences. Homepage: http://www.bigdatalab.ac.cn/~junxu

Xiaohui Yan, Huawei Technologies

Xinjie Chen, Institute of Computing Technolgy, Chinese Academy of Sciences

Zhaohui Li, Institute of Computing Technolgy, Chinese Academy of Sciences

Tianyou Guo, Institute of Computing Technolgy, Chinese Academy of Sciences

Jianpeng Hou, Institute of Computing Technolgy, Chinese Academy of Sciences

Ping Li, Institute of Computing Technolgy, Chinese Academy of Sciences

Xueqi Cheng, Institute of Computing Technolgy, Chinese Academy of Sciences. Homepage: 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)把單機使用的演算法和分布式演算法集成到一個任務中。這個系統是一個機器學習服務,可以通過網路進行訪問。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器學習 的精彩文章:

范德堡大學用機器學習預測自殺,準確率在80%以上
資料 | 機器學習入門書單及下載
讓機器耳濡目染:MIT提出跨模態機器學習模型
機器學習已滲透到金融的各個領域
曠視科技招聘深度學習/機器學習研究員

TAG:機器學習 |

您可能感興趣

MagicLeap與NBA合作開發AR應用 並展示機器實物
PS Classic的模擬器非自家開發 採用了開源模擬器PCSX
Databricks 開源 MLflow 平台,解決機器學習開發四大難點
DeepMind開發新系統 讓AI機器人具備自學能力
Mapbox發布新SDK幫助開發人員開發AR導航應用程序
Google開源機密運算開發框架Asylo
適用於開發者的Magic Leap One AR耳機
DELL 推出新款筆電,內建 intel 及 AMD 合作開發處理器
傳蘋果正秘密開發Mac與iOS通用應用
MakerBot 3D印表機幫助KUKA開發「智能工廠」機器人手臂
Oracle 被指在開源 JMC 後迅速解僱原開發團隊
蘋果致力開發microLED相關顯示技術
Evans Data顯示:人工智慧和機器學習方面的開發人員數量巨大
e 絡盟推出德州儀器參考設計,以簡化 Xilinx MPSoC、SoC 和 FPGA 應用電源解決方案的開發
MyBatis開發DAO的方式
SpringBoot2快速開發應用系統:開篇
以尖端可信計算技術驅動,Taxa Network帶來包容可用可開發的DApp服務
DeepMind和Unity合作,開發虛擬環境訓練AI
IBM的Watson AI用於開發多面跟蹤演算法
Magic Leap One開發NAB專屬AR應用程序