天天看點

DI-X平台釋出:雲上的深度學習,助力接入AI快車道

DI-X(Data Intelligence X)是基于騰訊雲強大計算能力的一站式深度學習平台。它通過可視化的拖拽布局,組合各種資料源、元件、算法、模型和評估子產品,讓算法工程師和資料科學家在其之上,友善地進行模型訓練、評估及預測。6月22日,騰訊海量計算及智能學習總監黃明先生在在「雲+未來」峰會現場正式對外介紹了這款深度學習平台産品。

以下是黃明先生的分享全文:

大家好,今天由分享的是由騰訊TEG資料平台部和騰訊雲聯袂合作的打造的産品,DI-X。這是騰訊雲上的深度學習平台,對騰訊雲更新為AI雲有着重要的意義。

今天是AI大資料的專場,大家都知道在過去兩年,人工智能得到了迅猛的發展,這主要是因為三個要素:

第一個是大資料,從2010年—2015年,網際網路行業有了豐富的大資料積累,這給人工智能提供了一個充分的訓練資料。

第二個是大計算,在過去兩年,基于GPU的計算能力突飛猛進,給人工智能提供了一個非常好的加速器。

第三個就是深度學習,在2015年到2017年,各種深度學習的架構、算法和模型紛紛湧現,改變了人工智能的派系格局和研究的方向。

基于這三個要素,在過去兩年期間,人工智能得到了迅猛的發展。

參考這三大要素,我們來對标一下騰訊雲的産品。

首先騰訊雲有COS,這是一款比較經典的産品,目前它的存儲量已經達到了1000P+

,這是非常可觀的數字,大資料我們已經有了。

其次我們有GPU雲伺服器,這是我們今年剛剛推出的産品,在上面使用者可以進行GPU的申請,獲得一個單機執行個體,并進行GPU的計算,這樣大計算我們也有了。

那接下來就是深度學習平台了,我們推出了DI-X,通過它把COS和GPU連接配接到一起,打通這兩個産品,形成合力。

DI-X平台釋出:雲上的深度學習,助力接入AI快車道

我們來看一下DI-X這個平台的架構。首先我們可以看到DI-X是接入到COS存儲的,在上面有豐富的使用者資料,包括各種各樣的文本、圖檔、語音和視訊。而在DI-X的底層,我們通過GaiaStack這個資料總管,對底層的CPU、GPU、記憶體和硬碟進行統一化的管理。資源上面是架構層,我們結合了三大架構,包括TensorFlow、Caffe和Torch,基本可以滿足大部分使用者的需求。再上一層是算法層,目前我們內建了RNN、LSTM、CNN、DBN這幾類,在上線之後,我們會根據使用者的回報做進一步的豐富。再上面是模型層,使用者對資料計算之後會産生一系列的模型,包括圖形模型、語音模型、時序模型、視訊模型和NLP模型等等,這些我們會在DI-X裡面進行一個統一的管理。整體基于這個平台,我們給上層的使用者,包括其它中小企業提供更好的AI服務,包括圖像識别、語音識别、精準推薦、實時風控等等。

有些使用者可能會覺得,有了COS和GPU之後,我們其實并不需要這樣一個DI-X平台,使用者也可以在上面玩深度學習,有一個平台反而會束手束腳。那DI-X到底會帶來什麼樣的變化呢?接下來,我從6個方面來介紹一下DI-X帶來的變化,包括資源、架構、排程、調參、模型和預測這6個方面。

DI-X平台釋出:雲上的深度學習,助力接入AI快車道

首先我們來看一下資源,如果沒有DI-X的話,它的資源申請是一個使用者到執行個體的級别,在GPU雲伺服器上,現在有兩個類型,一個是G2,一個是G2large,使用者申請之後是要按月付費的,這是一個比較粗的力度。有了DI-X之後,我們現在是基于GaiaStack,它使用docker和Kubernates的技術,能夠對GPU底層的資源進行優化和管理,這樣配置設定資源的粒度就按照工程和GPU卡數的關系來配置設定的,它的粒度更細,也更靈活,而且後續也可以做到按照運作時長來收費。

DI-X平台釋出:雲上的深度學習,助力接入AI快車道

第二部分我們看看架構,在沒有DI-X的情況下,從運作一個執行個體到跑出一個算法,如果是沒有經驗的人折騰一兩天是很正常的事情。我們可以看到,在整個的過程,包括了系統準備、Docker安裝,安裝Cuda、安裝深度學習架構、對接COS存儲,也就是需要把你的代碼和COS存儲做一個對接,當這些打通了之後,算法規程師才可以上傳算法,然後啟動一個腳本,把這個任務運作起來。這個過程中隻有一個是紅色的,隻有這一步是算法工程師是擅長的,其它幾步對工程能力弱的人來說都無疑是很難的,分分鐘會可能卡住走不下去,而且這都是重複性的事情,A使用者做了,B使用者還要繼續做,他們的工作不能被複用。

有了DI-X,這個事情就非常簡單了,基于一個可視化的拖拽過程,使用者隻需要拖一個元件出來,然後設定一下參數,包括算法參數和資源參數,點一下運作就可以了,省去了大量重複的勞動,目前我們支援Caffe、TensorFlow和Torch三個元件,算法方面我們也支援這樣的方式,讓使用者做到即拖即用,釋放一個算法工程師的生産力。

第三方面我們看一下排程,如果沒有DI-X的話,使用者可能寫完了一個算法之後,調試好了,它需要定期運作。很傳統的做法是用一個CronTab或者它的增強工具,這個工具是很靈活的,它有很複雜的配置文法和條件,配合一些奇怪的需要的腳本,其實它是能做很多事情的。但它的缺陷也是很明顯的,就是它的可維護性是非常差的,需要人工大量的幹預。為此我們DI-X在排程上有4種驅動方式,除了正常的手工驅動之外,我們還支援定時驅動、重調驅動和參數驅動這三種方式,每種方式都有良好的調試界面可調節,使用者可以自主設定三種驅動方式的并發度,讓使用者得到一個最大的便利性。

第四是調參。我們剛剛留意到有一種排程方式就是叫參數,這是為了深度學習的調參功能,在DI-X之前,使用者需要寫腳本,進行各種各樣的參數調節,通過多種循環來進行參數的組合,然後傳給具體的任務,達到調參的目的,但是這種方式其實是風險比較高的,對于寫腳本的人來說,對他的能力有一定的高要求。而且一旦習慣了這種方式,很多人就會對平台有一個奇怪的要求,希望我們平台DI-X可以去支援一個元件,在這個元件裡面寫一個循環來調Caffe、TensorFlow或者Torch,這是非常危險的方式,會讓系統形成一些黑洞,這是不好的。為此di-x增加了一個自動化的調參工具,它有4個步驟,第一個是它能夠進行多參數的循環組合,第二是它會預生成執行個體,因為參數形成組合之後,它會有很多的組合産生,這時候是預生成的,當系統的并發度滿足條件的情況下,我們才會進行這個參數的真實替換,并且生成多執行個體并發運作。

這裡我們舉一個簡單的例子,在機器學習中是非常簡單的,類似于超參數調節的東西,它有兩個參數,第一個是數字型的,第二個是字元串型的,DI-X提供這樣的功能,經過這樣調參之後,可以友善使用者進行比較。這是DI-X目前的自動化調參,後續我們會針對深度學習的超參數調節進一步優化。

第五個模型。在DI-X之前,其實使用者訓練完了之後會有一個模型檔案的生成,Caffe、TensorFlow和Torch都有自己的格式。使用者為了把這個模型進行一個同步和上線,其實有一種最常見的方法就是用SCP,在不同的使用者之間SCP來,SCP去,在這裡面它沒有版本的管理,同時它也依賴具體運維人員的靠譜程度,決定模型的命運,包括它如果覆寫錯了,有可能一個效果好的模型,就會被效果差的模型覆寫掉,這時候效果是非常難以把控的。

為此我們推出了一個模型的概念,在DI-X中對模型進行了針對性的設計,我們把這個設計叫做小尾巴,目的就是把一個模型具像化,在一個深度學習算法裡面,它的左邊有一個小尾巴,裡邊有一個小沙瓶,在算法模型運作的過程中,這個小燒瓶不停地冒泡泡,代表它是在運作,在煉丹,這在機器學習中是一個非常常見的名詞比喻。當算法結束之後,這個小燒瓶也就滿了,代表機器學習過程完成了。這是一個把模型從抽象到具像的過程,當這個模型訓練完之後,它有豐富的行為,我們可以把這個模型進行收藏、導出和分享。收藏模型之後,這個模型就會被收到個人模型這裡,成為一個子產品,它可以被拖拽出來到畫布,而分享模型,你可以把它分享給你想要合作的同僚,你的模型就會出現在他的共享模型裡面,他也可以直接把它拖拽出來使用,

第六個就是預測。其實就是一個訓練和預測分離。我們知道深度學習裡面,預測是一個非常重要的概念,模型訓練完之後隻是走了第一步,模型的使用,也就是預測才是更加重要的一個工作。目前我們這樣一個模型拖拽出來之後,它會變成一個圓圓的一個大節點,可以對資料進行Offline的預測(推理),關于模型的線上預測(online-inference)功能,我們正在加緊上線中。

那綜合以上6點,我們來看一個di-x預發環境的線上任務流

第一個是六邊型資料節點,它會去檢查COS路徑上的資料在不在,并将路徑傳遞給下一個節點作為輸入。

第二個是長方形的算法節點,帶着一個模型訓練的小尾巴,跑完之後,它的輸出繼續傳給下一個節點

第三個是圓形的模型節點,它是之前訓練好模型,用于對上遊節點的資料,進行直接批量的預測,得到最終的結果

整體上看,這是一個多元素的任務流,有點複雜,但是相當靈活。門檻不高,使用者熟悉了之後,很容易上手。

整體來看,DI-X是一個融合了深度學習的架構、算法、模型訓練、模型推理和協作的一站式深度學習平台,在它上面可以完成一個深度學習的閉環,直接對之前存儲在COS上的資料快速的進行挖掘,而得到的模型又能夠快速的部署,降低人工智能的門檻。

DI-X的目的,最終是提升中小企業接入人工智能的速度,也是讓騰訊雲實作彎道超車,加速成為一個智能雲的重要産品,目前正在進行最後的準備階段,很快就能讓大家正式使用,敬請期待,謝謝大家!