一個新的項目旨在為實時處理開發(fā)一種速度更快的框架,可用來支持用Python編寫的機器學習應用。 加州大學伯克利分校實時智能安全執(zhí)行實驗室(RISELab)的研究人員已開發(fā)出了一種新的分布式框架,該框架旨在讓基于Python的機器學習和深度學習工作負載能夠實時執(zhí)行,并具有類似消息傳遞接口(MPI)的性能和細粒度。這種框架名為Ray,看起來有望取代Spark,業(yè)界認為Spark對于一些現(xiàn)實的人工智能應用而言速度太慢了;過不了一年,Ray應該會準備好用于生產(chǎn)環(huán)境。 Ray是率先從RISELab誕生的技術之一,加州大學伯克利分校的這個研究組織取代了曾大獲成功的AMPLab,后者開發(fā)出了一大批引人入勝的分布式技術,這些技術影響了高性能和企業(yè)計算,包括Spark、Mesos、Tachyon及其他技術。 計算機科學教授邁克爾“喬丹(Michael Jordan)是昔日AMPLab、今日RISAab的顧問之一,最近他在加州圣何塞舉行的Strata + Hadoop World大會上討論了Ray的核心原則和驅動因素。 喬丹在3月16日的主題演講中說:“之所以開發(fā)Spark,是由于我的學生抱怨Hadoop差強人意。他們抱怨,每當在邏輯回歸之類的操作中進行迭代,總是要面臨很長的延遲。“ 喬丹繼續(xù)說:“馬泰“扎哈里亞(Matei Zaharia)是實驗室的學生之一,他聽到他們抱怨后說“我會幫助你們解決這個問題。我會構建某種緩存系統(tǒng),那意味著你不必一直去使用磁盤。這就是Spark的起源。“ 他的學生們注意到扎哈里亞開發(fā)Spark后突然變得“多重要、多有名“;扎哈里亞后來順理成章地與他人創(chuàng)辦了Databricks,并成為了加州大學伯克利分校的對手:斯坦福大學的助理教授。 喬丹說:“所以現(xiàn)在是著眼于下一代技術的時候。他們說“我們絕不會將一個項目交給搞系統(tǒng)的人。我們準備自己來搞。“所以這下一個項目由機器學習學生來搞,開發(fā)之初就抱著要取代Spark的目的。“ Ray由RISELab的兩名博士:菲利浦“莫里茲(Philipp Moritz)和羅伯特“西原(Robert Nishihara)開發(fā)而成。研究人員竭力構建一種框架,可以結合在實際環(huán)境下運行機器學習或基于深入學習的應用所需要的許多不同元素。據(jù)喬丹聲稱,研究人員將應用程序分解成了各組成部分,了解如何實際構建一個允許實時決策機制的端到端系統(tǒng)。 喬丹說:“你需要靈活性。你需要的不光光是組建神經(jīng)網(wǎng)絡之類的東西,還需要規(guī)劃、搜索和模擬。這帶來了種種復雜的任務依賴關系。單單編寫MapReduce類型的范例(paradigm,又可譯成模式)就不是很容易。這種范例能編寫得出來,但是如果你有大不一樣的異構工作負載和任務,它執(zhí)行起來不會非常高效。它需要適應算法的性能,因為系統(tǒng)在不斷學習。“ 很顯然,喬丹指派Spark來完成MapReduce風格的編程。雖然Spark的速度比MapReduce快得多,但它仍然是MapReduce面向批處理的工作流程范例的一些核心元素。他表示,Ray避免了Spark使用的“塊同步“(block synchronous)范例,改用了速度更快的范例。 據(jù)喬丹聲稱,Ray的速度很快,處理單個任務時延遲只有微秒。它還可以處理異構硬件,一些應用工作負載在CPU上執(zhí)行,另一些工作負載在在GPU上運行。Ray有許多調度程序可以統(tǒng)籌安排這一切。 它還會借鑒MPI的任務依賴屬性,MPI是低級分布式編程環(huán)境,高性能計算(HPC)領域的人士使用MPI來構建模型,模擬工作負載運行起來非常快。喬丹說:“我們其實也想達到那樣級別的性能。我們不是要取代MPI。但是我們希望能夠獲得與MPI一樣好的性能,但是要簡單得多,強大得大,而且不太依賴分布式平臺。“ 喬丹在Strata大會上演示期間展示了Ray如何幫助數(shù)字機器人學會跑步。 喬丹將讓集群中的各個節(jié)點保持計算狀態(tài),但是狀態(tài)會盡可能少,這將最大限度地提高穩(wěn)定性。他補充道:“不過需要注意可以在諸任務之間共享的狀態(tài)計算(stateful computation)。然后,我們顯然想要容錯機制,我們也會實現(xiàn)序列化運行,那樣我們就能輕松共享數(shù)據(jù)了。“ Ray框架目前正在開發(fā)中,不過還不是已完成的項目。有興趣的朋友可以看一看該項目放在Github上的初期測試版代碼(https://github.com/ray-project/ray)。 Ray對于開發(fā)一系列需要利用實際數(shù)據(jù)進行快速決策的應用將大有用處,比如自主駕駛或某些新興形式的人工智能輔助醫(yī)療所需要的那種應用。由于對這個領域做出的巨大貢獻,喬丹已被戲稱為“機器學習界的邁克爾“喬丹“,他認為Ray最大的影響力將體現(xiàn)在強化學習(reinforcement learning)領域,而不是監(jiān)督式學習系統(tǒng)。由于用來解決計算機視覺和分類問題的深度學習和神經(jīng)網(wǎng)絡大行其道,監(jiān)督式學習系統(tǒng)隨之流行起來。 他說:“當你開始更接近實際的決策時,不是僅僅想要模仿人類,而是想要找出最好的決策。那就是強化學習范例。強化學習其實缺乏一種很好的系統(tǒng)級支持。“ Ray是用C ++編寫的,基本上旨在加快用Python開發(fā)的機器學習算法的執(zhí)行速度。 Python腳本提交并執(zhí)行作業(yè)(job),Ray使用Python的語法特性來表示對象和作業(yè)是如何運行的。如果你為某個函數(shù)添加了@ray.remote,這表明該函數(shù)可以跨集群異步執(zhí)行。函數(shù)運行時,它會立即返回一個對象ID,之后可以查詢該ID,獲得該函數(shù)生成的任何最終結果。Ray的說明文檔表明了可以如何結合Python的列表推導(list comprehension),運行一系列函數(shù),并自動返回結果。 雖然Ray處于初期測試版狀態(tài),但它顯然是為了支持機器學習這個主要任務而開發(fā)的。說明文檔中給出的主要例子包括:超參數(shù)優(yōu)化(這是機器學習框架的一種常見工作負載)和訓練人工智能網(wǎng)絡打乒乓球。還詳細介紹了如何將Ray與TensorFlow結合使用,包括如何借助深度學習系統(tǒng),充分利用Ray的遠程對象模型方面的若干技巧。 喬丹表示,雖然Ray仍處于早期階段,還沒有準備好用于生產(chǎn)環(huán)境,但應該在一年內作好準備。他說:“我們其實會讓這種框架盡可能強大、穩(wěn)定,但又盡量遵循學術界在激動人心的機器學習方面所要實現(xiàn)的目標。“
«
行業(yè)大數(shù)據(jù)營銷公司微步獲瑞領資本2100萬投資
|
神州專車披露廣州車禍案細節(jié):家屬要求賠償2000萬
»