天天看點

中科院計算所開源Easy Machine Learning系統,用互動式圖形界面簡化ML開發過程

雷鋒網ai科技評論按:6.13号上午,中科院計算所研究員徐君在微網誌中宣布,easy machine learning 系統開源,歡迎大家下載下傳。雷鋒網編輯第一時間為大家帶來該系統的功能介紹。

中科院計算所開源Easy Machine Learning系統,用互動式圖形界面簡化ML開發過程

在許多大資料應用中,機器學習算法已經成為至關重要得

一部分。不過,機器學習的全部潛能還遠遠沒被開發出來,因為使用機器學習算法很困難,尤其是在像hadoop和spark的分布式平台。主要障礙不僅是來自算法本身的運作,而且在真實應用中,運作它們的過程中往往包含多重步驟和不同算法。在這個示範中,展示了一個通用的基于資料流的系統,以減化在真實世界中應用機器學習算法的過程。在該系統中,學習任務被構造成一個有向非循環圖(dag),其中每個節點代表一個操作(例如,一個機器學習算法),每個邊緣代表資料流從一個節點到它的後續節點。實作了互動圖形使用者界面,使使用者能夠以拖放的方式建立、配置、送出和監視任務。

中科院計算所開源Easy Machine Learning系統,用互動式圖形界面簡化ML開發過程

圖2顯示了系統的體系結構。整個系統由三部分組成:提供基礎服務的大資料基礎結構,提供機器學習任務的核心構模組化塊的機器學習庫,和提供友好界面降低使用機器學習的難度的機器學習工作室。

中科院計算所開源Easy Machine Learning系統,用互動式圖形界面簡化ML開發過程

該系統是建立在開源大資料系統hadoop和spark之上的。所有的資料,機器學習算法以及其它相關的資訊都存儲在分布式檔案系統hdfs和hive資料管理系統,mysql的相關資料庫系統用于存儲中繼資料。我們的系統也依賴于分布式計算架構map-reduce

spark。所有計算資源都由yarn管理.每一個送出的機器學習任務(資料流dag)首先轉換為一個工作流dag,然後随着工作流的調動程式調動。

機器學習庫實作了一系列流行的機器學習算法(如分類、主題模組化、圖形處理、資訊推薦等)。對于每種算法,都在spark上運作了單機版和分布式版,因為在資料不夠大的時候,單機版往往比分布式版更有效。除了核心算法,該庫也會執行必要的子產品來支援核心算法,包括資料預/後處理實作所需要的功能子產品、資料格式轉換、特征提取、績效評價等,所有的算法和子產品可以通過指令行和java

api來調用。這些算法構成了使用者定義機器學習任務的核心建構塊。

機器學習工作室的主要目标是提供一個友好的使用者互動界面,使普通使用者可以使用機器學習算法輕松地解決自己的問題。機器學習工作室是作為一個web服務實作的,可以通過web浏覽器通路。它提供了以下主要功能:

1)資源管理

在機器學習庫中實作的所有算法都可以從studio系統中通路。該系統還提供了一些資料和任務,用于示範如何使用這些算法來解決問題。為了構造機器學習任務,使用者可以直接使用系統中的算法和資料。他們還可以上傳自己的資料和算法包。要上傳一個算法包,使用者需要指定運作該算法的指令行模式字元串的格式。字元串定義程式名、輸入端口、輸出端口和參數設定。這樣,上傳的算法可以在不同的參數設定下運作。在指定的任務資料流dag中,該算法可以按照指令行模式運作。在送出機器學習任務之後,它将被配置設定一個唯一的id,并存儲在任務存儲庫中。使用者可以在将來檢查和重用任務。還可以将任務共享給其他使用者。

2)任務設計

構造一個機器學習任務,使用者可以将算法和資料集(節點)拖到工作面闆上,将這些節點連接配接成一個資料流dag,并設定所有節點的參數。如果使用者可以在庫中找到一個類似的工作(大多數情況下),可以直接複制現有的任務和進行必要的修改(添加/删除節點和邊,改變參數)。通過在工作面闆中選擇一個節點,參數設定面闆将顯示在頁面的右邊,這使得使用者可以為任務中相應的算法設定特定的參數值。送出一個機器學習任務後,工作室将檢查資料流dag的正确性,産生時間檔案的檔案路徑,将資料流dag轉化為工作流dag,最後送出工作流程dag到

oozie執行。

3)任務監視

使用者可以通過studio監控送出任務的進度。在執行任務時,使用不同的顔色訓示節點的狀态:綠色成功完成,黃色運作不足,紅色完成錯誤,灰色等待執行。成功節點的結果可以通過右擊相應的輸出端口進行檢查和下載下傳。列印到标準輸出和标準錯誤控制台的資訊也可以通過右鍵單擊相應的節點來檢查。通過這種方式,使用者可以知道任務的狀态,并在出現錯誤時調試其算法和任務。

4)任務重用

現有任務不僅可以作為設計新任務的模闆,而且可以重用,以節省執行時間和系統資源。使用者可以直接修改完成的任務(例如,修改參數的節點,添加節點和邊,或删除節點和邊等)并重新送出任務。在新送出的任務,隻有受影響的節點會再次執行而未受影響的節點輸出的結果将直接重複使用。為了解決實際任務,使用者通常需要反複調整任務的資料流dag和算法的參數。任務重用提供了一種有效的機制來節省使用者的等待時間和資源。

它是一個簡單易用且功能強大的系統。機器學習任務的資料流dag描述直覺且易于了解。許多不必要的細節被隐藏。另一方面,它仍然為專家使用者提供了大量的詳細資料(例如,參數設定,輸入/輸出端口等)。

系統在一個任務中無縫內建多個程式。由于使用hdfs在不同的節點上交換資訊,是以很少對dag節點的程式形式有限制。該程式對應于一個節點,可以獨立或分布式地執行。可以用c++、java、python程式設計語言,perl或shell語言。

系統中的資料、算法和任務是高度可重用的。使用者可以利用系統開發的資料和算法建構不同的機器學習任務。也可以利用其他使用者上傳/共享的資料和算法,可以克隆一個任務來構造類似的任務。此外,現有任務的中間結果可以通過直接修改和追加新任務來重複使用。

最後,告訴大家一個好消息,雷鋒網(公衆号:雷鋒網)聯合人工智能教育訓練平台ai慕課學院與中科院計算所達成合作,于北京開展中國計算機學會學科前沿講習班,每年隻舉辦十期。現在6月份課程已經進行到第三期——存儲器件與系統前沿,接下來還會有區塊鍊,類腦計算,社交網絡與資料挖掘等熱門課程,單次課程原價699,現在隻需要499。如果10期全購更有巨大優惠。這裡有頂級的專家講師團隊,探讨最前沿的技術發展趨勢,你還在等什麼?詳情戳這裡https://www.leiphone.com/special/ccf_adl

雷鋒網整理編譯

本文作者:楊文

繼續閱讀