開源DAWN,Spark和Mesos後Stanford的又一力做

本文由 【AI前線】原創,原文連接:http://t.cn/RTkgXrGgit


做者|Peter Bailis 等github

譯者|Debra正則表達式

編輯|Emily算法

AI 前線導讀:」這是個普及機器學習實踐的項目,可是不須要使用者具備 AI 背景,他們取名爲 DAWN,意思爲「下一代數據分析」。背後的團隊曾成功的研發出 Spark、Mesos、DeepDive、HogWild 等。能夠想象這又會是一個成功的項目。」數據庫


隨着 ML 應用程序技術的發展,愈來愈多的組織開始將這種技術用於生產中以提升效率。然而,事實上,這種「高端」技術只有那些資金充足和有龐大技術團隊的組織才能享用,爲了大幅簡化 AI 應用程序構建過程,普及 AI 技術,讓非 ML 專家也能利用這項技術造福社會,斯坦福大學開啓了一個爲期五年的項目——DAWN( Data Analytics for What’s Next,下一代數據分析)。編程

DAWN 是斯坦福大學的一個工業分支機構計劃,從 2007 年啓動,由幾家公司提供不受限制的資金支持,每一年約有 50 萬美圓的贊助金,包括 Intel、Microsoft、Teradata、VMware 等,另外還獲得 NSF(美國國家科學基金會,National Science Foundation)和 DARPA(美國國防高級研究計劃局,Defense Advanced Research Projects Agency)等政府資助機構的額外支持。緩存

據該團隊聲稱,其過去的研究(Spark、Mesos、DeepDive、HogWild 等)已經開始服務硅谷和世界各地,在打擊人口販賣、協助癌症診斷和進行高通量基因組測序等方面,開發了大量人工智能和數據產品開發工具。而他們的下一步,是使這些工具更高效,更容易訪問,從訓練集建立和模型設計,到監控和高效運行等各方面。服務器

簡單來講,DAWN 要解決的問題是:網絡

一個擁有專業知識,可是沒有機器學習博士學位,不是系統專家,不瞭解最新的硬件的專家,如何創建本身的 ML 產品?架構

如下爲該項目關於機器學習實踐基礎架構的一篇論文介紹:

背景介紹:

儘管最近機器學習有了使人難以置信的進展,但機器學習應用程序仍然使人望而卻步,除了那些訓練有素、資金充足的工程機構,它們對於普通公司萊來講耗時且成本昂貴。應用機器學習的成本高昂不是由於須要新的統計模型,而是缺少從數據準備和標籤,到生產和銷售監控的系統和工具,用於支持端到端機器學習應用開發。

                                                         DAWN 項目成員

DAWN 項目簡介和目標

咱們正處於機器學習和 AI 發展的黃金時代。算法的不斷進步,加上海量可用的數據集和快速的並行計算,讓幾年前只在科幻小說裏的場景變成現實。在過去的五年裏,語音我的助理已經普及,圖像識別系統堪比人類,自動駕駛汽車也在迅速成爲現實。毫無疑問,機器學習將會改變咱們經濟和社會的大部分領域。企業、政府、科學實驗室則翹首以盼,機器學習能如何解決他們的實際問題。

然而,雖然新的機器學習(ML)應用取得了使人印象深入的進步,可是構建起來卻很是昂貴。每個重大的 ML 產品,如蘋果 Siri、亞馬遜 Alexa 和特斯拉的自動駕駛汽車,背後都須要一個由領域專家、數據科學家、數據工程師和 DevOps 組成的龐大而昂貴的團隊的支持。即便在成功應用 ML 的組織中,ML 仍然只是一小部分團隊成員能夠觸及的稀有商品。此外,許多 ML 模型須要大量的訓練數據,而得到這樣的訓練數據對許多應用領域來講是極具挑戰性的。例如,雖然 ML 算法能夠準確識別一隻狗的圖像(由於網上有數百萬張可用的標記圖像),但在識別醫療圖像中的腫瘤方面,卻不能達到一樣的精確度,除非組織請人類專家花費數年時間爲訓練數據作標記。最後,一旦 ML 產品生成,就須要進行大量的部署、操做和監控工做,特別是其成爲關鍵業務流程的中流砥柱之時。綜上所述,ML 技術與早期的數字計算機處於相似的階段,在這個階段,一些穿白色大褂的技術人員在生產過程當中維持着少許機器正常運轉:ML 技術顯然具備巨大的潛力,但目前來講,基於 ML 的應用程序對於大多數領域來講仍是太昂貴了。

而 DAWN 的目標,不是爲了改進 ML 算法,由於對於許多重要的應用程序來講,算法已經足夠完善,而是使 ML 可以爲小型團隊所用,非 ML 專家也能夠應用 ML 解決他們的問題,實現高質量的結果,並部署能夠在特定應用中使用的生產系統。咱們的問題是:如何可以讓全部具有專業知識的人創建屬於本身的高質量數據產品(而不須要一羣不瞭解最新硬件系統的機器學習、大數據或分佈式系統專業的博士)?總之,就是讓 AI 普及。

DAWN 與 ML 實踐系統調研

爲了讓咱們這個項目目標所帶來的機會最大化,並借鑑以前的 Apache Spark [27]、Apache Mesos [11]、Delite [5] 和 DeepDive [6] 等大型分析系統構建的經驗,咱們將用將來五年時間來研究和構建工具,以解決機器學習實踐中的端到端問題。經過把從算法到系統硬件等領域相結合,以及從事數據密集型領域的合做夥伴密切合做,咱們計劃在 ML 生命週期分階段來完成 DAWN 的目標。

咱們在 DAWN 協議棧中的設計理念主要基於三個原則:

a)以端到端 ML 工做流程爲目標。ML 應用程序開發不只包括模型訓練。所以,如今開發新的 ML 應用程序所面臨的最大挑戰並不在模型訓練,而在於數據準備、特徵選擇 / 提取和生產(服務、監控、調試等)。所以,系統應該定位到整個 ML 端到端的整個工做流程。

b)賦能領域專家。最有影響力的 ML 應用將由領域專家開發,而不是 ML 專家。然而,可供領域專家編碼,利用自動化和機器學習模式的系統太少。將來的系統應該賦能非 ML 專家的用戶,爲他們提供諸如標籤、特徵工程和數據加強等繁重任務的工具。

c)優化端到端。在模型訓練中,ML 的執行速度很是重要,速度快能夠更好地建模(例如,經過輸入更多數據或更普遍的搜索參數);速度對於部署的生產服務一樣重要。

圖 1:用於機器學習實踐的 DAWN 協議棧:在斯坦福 DAWN 項目中,咱們構建了一個跨越 ML 生命週期每一個階段的軟件和工具的研究堆棧,以及重新硬件到新接口的抽象,來強調 ML 實踐構架的重要性。咱們認爲這個並行的端到端,接口到硬件的方法對於充分實現 ML 實踐的潛力是必需的。

這些模型在實踐中具備成本效益。可是,今天的 ML 工具性能一般低於硬件限制 10-100 倍,所以須要昂貴的軟件工程來創建生產系統。咱們早期的結果顯示,經過構建工具優化 ML 端到端流程,並利用算法的統計特性,如對不嚴格執行的耐受性,能夠在當前和新興硬件上運行的 ML 應用程序將提速 10-100 倍。

總而言之,咱們相信那些針對全部應用開發的非專業需求,以及全面優化系統軟件和硬件,對於充分實現 ML 實踐的潛力相當重要。

DAWN 的研究方向

爲了體現這些原則,咱們正在沿着幾個方向進行研究。如下是咱們的研究方向概述,和每一個領域可引用的早期成果:

ML 的新接口。

爲了賦能非 ML 專家的領域專家,咱們須要開發 ML 技術的新接口,以適配型號規格、模型監控等:

a)經過觀測 ML(數據準備、特徵工程)簡化模型規範:咱們是否能夠經過觀察領域專家提升學習質量,創建 ML 模型系統?例如,在標記數據時,領域專家一般使用一組啓發式規則,來肯定特定數據點的標籤(例如,若是短語「烤箱預熱」在文檔集中反覆出現,打的標籤極可能是烹飪)經過爲這些用戶提供簡單的界面,以確立用戶對數據規則的認識(例如,正則表達式),咱們能夠將這些規則中的一小部分結合起來應用到海量數據集中。咱們使用無監督 ML 來消除規則和學習其準確性,並訓練監督式 ML 模型產生成機率標籤,創建一個咱們稱之爲數據編程的新範例 [18]。經過一個能夠從低質量的規則中生成高質量模型,被稱爲 Snorkel 的新系統 [17],咱們取得了不錯的早期成果。咱們也正在使用弱監督式 ML 制定新的研究路線,以提升模型的質量,而無需用戶手動操做,如特徵發現 [24,25] 和結構學習 [2]。

b)向人類解釋結果(特徵工程、生產):咱們如何向人類解釋一個特定 ML 模型的結果?隨着 ML 模型在日益重要的關鍵業務型程序中得以應用,可以以人類可理解的方式解釋分類決定所作的預測將變得相當重要。具備挑戰性的是,那些龐大而複雜的模型提供了高度準確的結果,但這些結果解釋的難度很是大。一個有效的方法是。ML 預測不在「真空」中進行:每一個用戶有幾十到幾百個可用於分割、關聯和上下文化預測的屬性(例如,運行 v47 版本軟件的用戶可能被異常標記爲垃圾郵件)。而這對於基於基本相關性分析 [4] 的初試結果尤爲有效,咱們計劃將這個功能擴展到其餘領域,包括文本、視覺和時間序列數據 [21]。

c)調試和可觀察性(特徵工程、生產):ML 模型的「漂移」現象多是災難性的,ML 模型部署以後必須受到監控,並按期進行更新。咱們對開發和部署監測 ML 模型預測質量的,廉價的、有用的監測工具很是感興趣,尤爲是當新模型是被潛在的異構用戶和設備平臺所使用時。此外,後續識別和糾正預期行爲誤差的需求,也將促進界面和模型訓練方面取得進展。

d)評估和提升數據質量(數據準備、特徵工程):生成高質量的模型須要通過多樣化、高質量的數據訓練。隨着愈來愈多的數據源數字化,集成結構化(例如數據倉庫、CSV)和非結構化(例如文本、圖像、時間序列)數據在模型構建中提取信號將變得愈來愈重要。問題來了:在多樣化的數據來源中,哪些是可信任的?應該擴展和豐富哪些資源?是經過手動添加標籤,仍是擴展示有知識庫?咱們早期的結果 [20] 代表,若是明確每一個建模數據源的質量,就能夠自動識別最須要濃縮的數據源,從而下降數據清理和獲取的成本。

端到端 ML 系統。

咱們相信,在許多重要領域,設計一個相似於搜索引擎或 SQL 數據庫,包括整個 ML 工做流程,並對用戶隱藏內部數據的端到端系統是可能的。咱們正在研究這些領域:

a)大規模數據分類(數據準備、特徵工程、生產):分類和排名是每一個現代搜索引擎背後的核心技術。可是,除了靜態文本和圖像分類以外,咱們怎樣才能對傳感器數據、時間序列和其餘在每秒鐘以內可能發生數千萬次事件的數據流進行分類呢?咱們對開發高質量,通過優化的運算器很是有興趣,它能夠對不一樣的數據進行分類和彙總、功能轉換、分類和數據流聚合。MacroBase 引擎 [3] 的初步研究代表,包括製造業的傳感器、移動分析和汽車等領域的少數運算器能夠進行大規模重用。咱們有興趣將此功能擴展到視頻處理等其餘領域,在視頻處理這個領域,0.50 美圓的圖像傳感器目前須要 1200 美圓的圖形卡適配才能進行實時處理;另外,在統一的系統框架和「分類器」工具箱內使用傳統的系統技術,如緩存、增量記憶、分枝限制修剪和自適應(例如訓練一個場景特定的對象檢測器),能夠在不影響精度的狀況下達到很是高的速度 [8,12]。

b)個性化推薦(特點工程、生產):個性化對於許多流行的 ML 應用程序很是關鍵,關於個性化推薦算法的文獻也數不勝數。然而,推薦引擎除了簡單的輸入和輸出,從業者仍須要將低級算法和工具結合在一塊兒,從頭開始構建引擎。咱們計劃創建一個通用的端到端推薦平臺,包括一個簡潔的輸入界面(例如來自用戶的點擊或評級)、自動模型調整、自動服務、監控和模型再訓練。早期的研究結果代表,分佈逐漸完成這些任務並不是不可能。輸入數據後,建立一個「即插即用」的個性化推薦系統,用戶能夠簡單地輸入用戶交互,並實時獲得最新的推薦。

c)結合推理和決策(特徵工程、數據準備、生產):當 ML 由於具有更深的看法和決策能力而變得功能強大時,咱們應該如何實現自主決策過程呢?現在,除了少許的應用程序,如自動駕駛車輛以外,推理 / 預測(即預測會發生什麼)和預測行動 / 決策(即基於預測採起行動)一般是兩個系統分頭來執行的(一般由一個自動推理引擎和一我的類「決策者」組成)。咱們如何將決策置於 ML 工做流程的優先位置?幸運的是,隨着自動化 API 的出現,決策變得史無前例的簡單(例如,向自動控制中心發送一個 POST 請求); 而咱們缺乏的是整合 ML 和自動化 API,以及關於組合的推理邏輯所需的「膠水」,所以,咱們正在開發從警報和通知,到對環境的物理操做等一系列決定推理的組合。

d)統一 SQL、圖形和線性代數(生產):ML 產品流水線包含一組不一樣的集合操做,包括 SQL、圖形計算和 ML 訓練和評估。不幸的是,大部分執行引擎只針對這些計算模式之一進行優化。那麼,咱們如何創建一個能夠優化全部計算模式的引擎呢?也許,這其中的許多模式能夠做爲傳統關係鏈接的一個實例,例如,PI Re 最近開發了一個速度更快的鏈接運算 [14]。在實踐中,咱們發現,當與 SIMD 優化運算相結合時,這個優化的鏈接速度很是快,可以爲每個 SQL 和圖形 [1] 進行匹配優化。那麼 ML 呢?咱們相信,將這些理論結果擴展到包括線性代數運算和係數矩陣運算在內的傳統 ML 模式中,ML 一樣能夠作到這一點。經過在單個引擎中結合這些運算,咱們能夠優化端到端 SQL 的流程、圖計算、線性代數等。

ML 的新基材。

快速、經濟、高效地訓練和部署 ML,須要開發從語言支持到分佈式運行時,以及加速硬件等新的計算基材。

a)端到端編譯器優化(特徵工程、生產):目前,ML 應用程序包括 TensorFlow、Apache Spark、scikit-learn、Pandas 等多樣化的庫和系統。儘管每一個庫都有其優勢,而在實際工做流程中每每須要須要結合多個庫,因此大規模的生產一般須要一個軟件工程團隊,來重寫整個應用程序的低級代碼。咱們正在開發一個新的運行時——Weld [15],它能夠優化多個庫的數據密集型代碼,並自動生成 ML 訓練。

經過優化運算器,Weld 已經能夠實現 Apache Spark、Pandas、Apache、TensorFlow 等現代數據分析工具的運行速度提升 10 倍,跨庫工做負載速度提升 30 倍,這一點可能讓不少人感到驚訝。此外,Weld 的設計還能實現異構硬件移植。所以,咱們也能夠在 GPU、移動處理器和 FPGA 上運行這些庫。除了 Weld,咱們還爲 ML Delite [5] 開發新的編譯器技術,這是一種用於開發特定領域語言,以及隱私保護數據分析平臺 Splinter[26] 的框架。

b)精度下降處理(生產):衆所周知,ML 運算具備隨機性和機率性,咱們如何在運算過程當中利用這個特性呢?早期的 HogWild![19] 是第一個證實運算中的異步實際上能夠縮短收斂時間的項目,而 Google、Microsoft 和其餘大型科技公司的平常生產中均使用基本的算法。不過,咱們認爲能夠作到的還有不少,例如經過將隨機性控制在 bit 級,以提升性能、下降能耗:咱們能夠設計專門用於 ML 的芯片,在低耗能的前提下,進行低精度運算,也能夠產生高效的結果。咱們最近的理論成果說明,以低精度運行,但不下降準確性 [7] 是有可能的,在實踐中也取得了可喜的成果 [22]。

c)核心內核可重構硬件(特徵工程、生產):計算機架構師一般認爲 FPGA 發佈以後的一年是真正的「FPGA 之年」。然而,目前用 FPGA 來編程仍然很困難,且成本高昂。儘管如此,ML 多是一個轉折點:2017 年,不管是在訓練時間,仍是在推理時間方面,計算都成爲 ML 分析的一個急需破解的瓶頸。考慮到即將到來的 CPU 和 FPGA 之間的競爭,具備高級可編程功能的可重配置硬件將會愈來愈重要。另外,咱們正在開發新的可重構基材,能夠輕鬆地用於模塊化和高效的計算內核 [16],這對於提升耗電比意義非凡,特別是在軟件堆棧的上層不斷髮展的狀況下。

d)分佈式運行時(生產):隨着模型的不斷髮展,能夠進行大規模訓練,以及訓練的執行推理變得愈來愈重要。ML 與分佈式系統的結合是一個真正讓人頭痛的問題:一個模型表現不佳到底是由於其分配的服務器過多,仍是由於匹配性差?最佳的異步數量是多少?最佳分佈式訓練框架是什麼樣的?咱們的研究對利用設備內(例如 FPGA、GPU 矢量化)和設備間(例如集羣計算)並行性資源消耗(即自動和動態分配到到羣集內的不一樣硬件中)很是感興趣。並且,咱們最近的一些理論 [10] 證實,咱們能夠明確地爲不一樣的硬件和計算網絡自動調整匹配最優的基層學習算法。但仍是有不少問題亟待解決:分佈式異步計算對推理時間有何益處(即在模型服務中)?新的計算基材,如無服務器計算(亞馬遜 Lambda)是否能夠進一步擴大推理程序?什麼是分佈式計算的統一編程模型?咱們打算創建新的工具,並結合現有的 TensorFlow 和 Spark 等框架來回答這些問題。

研究思路和成功指標

據 DAWN 所稱,他們在項目內部將與目標研究合做夥伴合做,進行校園內外實踐,以實現上述研究目標。而這個項目成功的主要指標,在於可用性,包括 i)應用 ML 應用程序的時間和成本(包括數據源和功能);ii)生產中執行應用程序的時間和成本(包括監測 ML 模型的硬件和人力資源);以及 iii)最終用戶的收益。此外,DAWN 還計劃將全部的研究開源,使全部行業均可以從 DAWN 項目中受益。

成果和旗艦項目

聽說,DAWN 早期在生產中部署的包括 Snorkel、MacroBase 和 DeepDive 在內的系統,已經在硅谷和全世界各地得以應用,證明了 DAWN 項目的巨大潛力,以及從根本上改進現有技術的但願。

在該項目的官網上列出了 DAWN 項目的旗艦項目,其中包括:

Macrobase: 優先關注快速數據

https://github.com/stanford-futuredata/macrobase/releases

MacroBase 是一個新的分析監督引擎,旨在進行大型數據集和數據流優先處理。與傳統的分析引擎不一樣,MacroBase 專門用於一項任務:查找和解釋數據中不尋常或有趣的趨勢。

Snorkel:訓練集穿件系統

https://hazyresearch.github.io/snorkel/

Snorkel 是一種快速建立、建模和管理訓練數據的系統,目前主要聚焦在加速開發結構化或「黑暗」數據提取的應用程序,該應用程序適用於大規模標註訓練集不切實際或不容易獲取的領域。

Spatial:用於 FPGA 的 DSL

https://github.com/stanford-ppl

Spatial 是一種新的領域特定語言,用於從參數化的高級抽象中對可重配置硬件進行編程。

Weld:加速數據分析

https://github.com/weld-project/weld

官網連接:

http://dawn.cs.stanford.edu/

原文連接:

https://arxiv.org/pdf/1705.07538.pdf

關注後回覆「AI」你懂的

相關文章
相關標籤/搜索