當Alpha Go點燃人類對深度學習的好奇心后,近年深度學習在市場上的討論度達到一個高峰。我們很容易從網絡資源上取得關于深度學習的開發(fā)步驟,若歸結到最根本的問題,究竟深度學習需要先準備哪里些東西?
淺談深度學習的架構,主要可分為訓練(Training)與推論(Inference)兩個階段。簡單來說,就是訓練機器學習,以及讓機器展現學習成果。再進一步談深度學習的運算架構,NVIDIA解決方案架構經理康勝閔簡單統(tǒng)整,定義出幾個步驟:
例如,必須收集學習所需的大數據,包含大量的圖片、影片、文字或語言;接著建置運算環(huán)境,例如設計類神經網絡算法、選擇合適的運算平臺軟件、運算環(huán)境中軟硬件資源的配置等;經過反復學習、驗證與調整后得出最佳化模型,也就是學習成果,最后將模型導入產業(yè)環(huán)境中使用。
因此,深度學習的第一件事,必須先建立訓練的環(huán)境。而建立訓練環(huán)境的過程,單單幾個步驟看似簡單,實則復雜,主要是因為整個訓練環(huán)境橫跨多個領域,包括半導體芯片設計、IT領域的技術、計算機科學、資料科學、數學等,若涵蓋應用端則又更廣。
由于深度學習所涉及的領域相當廣泛,對非具備相關知識的人來說,看著深度學習就像一個魔法,就算是涉獵其中一項技術的人,也不一定能融會貫通。但事實上,要實現深度學習并不難,尤其現今的開發(fā)環(huán)境中,在市場上都具備許多相當完整且成熟的產品可提供開發(fā)者使用,甚至簡化訓練過程。
象是芯片大廠NVIDIA、英特爾(Intel)紛紛在市場上推出集成軟硬件的深度學習解決方案,或是各種軟件開發(fā)工具加速深度學習。臺廠方面,掌握眾多產業(yè)Know-how的IPC大廠研華也投入市場開發(fā),以產業(yè)需求為核心提出深度學習解決方案。
隨著深度學習的前景與商機爆發(fā),投入市場的人勢必越來越多,但這些人在深度學習領域中所扮演的角色與功能不盡相同。雖然深度學習在媒體上的討論度非常高,網絡上針對每個層面的技術都有相關文章為讀者抽絲剝繭,不過,礙于龐大的生態(tài)系,碎片化的信息仍舊難以將整個生態(tài)系串聯起來。
換一個角度來看,從產業(yè)鏈來定義深度學習的開發(fā)環(huán)境,暫且把它稱之為深度學習的生態(tài)系。為簡化深度學習的生態(tài)系,研華智能系統(tǒng)事業(yè)群協(xié)理鮑志偉提出一個五層金字塔的概念,將深度學習的開發(fā)環(huán)境與過程透過五個層級,分別定義出每一層在深度學習系統(tǒng)中所扮演的角色,以及對應的產業(yè)結構。
要想明白深度學習需要怎樣的軟硬件,必須了解深度學習的工作原理。試想象一個五層金字塔,從最底層往上堆疊,第一層是深度學習在訓練過程中的「引擎」,也就是硬件基礎。深度學習之所以能夠加速發(fā)展,主要的原因是因為市場發(fā)現GPU所提供的強大平行運算架構能大舉提升比CPU更快的運算速度,這也讓GPU成為深度學習的代名詞。
雖然GPU在深度學習運算中占有絕對重要的地位,但市場上仍有部份業(yè)者投入開發(fā)不同于GPU架構的芯片。相較于GPU本來專為游戲開發(fā)卻無心插柳到AI領域,ASIC是一種專為特定目的而設計的集成電路,在效能與功耗上都要優(yōu)于GPU,但因其技術門檻高,目前大多由具備AI算法又擅長芯片研發(fā)的大廠參與,包括英特爾與Google都相繼投入開發(fā)。
而在金字塔的第二層中,則為專門提供開發(fā)者建立一個讓深度學習在運算時,可供擴展且易于部署的基礎設施環(huán)境,當中包括一些基于硬件優(yōu)化的開源軟件工具,讓開發(fā)者能夠彈性調配服務器里的GPU資源。
若是以傳統(tǒng)實體機建構的運算環(huán)境,一方面因成本太高,另一方面也因為專機專用導致使用率偏低。所幸隨著虛擬化技術的進步,現在連GPU也可以透過虛擬化達到運算資源分享,開發(fā)者可以透過云端服務商所提供的基礎設施建立起深度學習運算環(huán)境。
不過,即便部署虛擬化的運算環(huán)境,在系統(tǒng)建置上仍會遇到開發(fā)環(huán)境不兼容等的問題。對此,具有隔離性和可移植性的容器技術正因此而變得盛行。容器可將軟件與其周圍的環(huán)境隔離開來,此有助于減少在同一基礎架構上,運行不同軟件之間的沖突。而像Docker這樣的容器格式,以及由Google所設計的容器管理平臺Kubernete也正受到市場廣泛地支持。
當底層的運算環(huán)境建置起來后,在第三層的架構中則是建立訓練模型。在建立模型的過程中,開發(fā)者需要一個提供訓練空間的運算平臺軟件,也就是市場上耳熟能詳的深度學習框架?,F在有許多框架都能為開發(fā)者提供各種工具去設計、建構和訓練自己的模型,并在訓練過程中不斷進行測試與調整算法的參數以得出最佳化的模型。
自2016年開始,不少科技巨頭便紛紛投入開發(fā)高效快速的架構,市場上比較知名的三巨頭有Google的TensorFlow、Facebook的Caffe以及微軟的CNTK。大廠釋出開源框架,也大大降低開發(fā)者訓練模型的入門門檻,開發(fā)者可自己選擇從復雜的神經網絡中編寫程序,或是調整框架中的模型來訓練與設計算法。
另一方面,數據的準備工作則是訓練模型前的必要工作,對于大數據的搜集、整理和分析歸納是一門學問,在第四層架構中,資料科學是其核心,透過分析資料的關聯性,可以額外獲得新的信息。
但分析數據非常耗時耗力,所幸在入門階段的開發(fā)者可以使用現有的開源圖象資料庫快速完成前期工作。許多現有的開源圖象資料庫大多由大學或實驗室研究開發(fā),象是常見的人臉資料庫VGG-Face Dataset由牛津大學(University of Oxford)研究與整理,而全世界最大的圖象識別資料庫ImageNet也是由史丹佛大學(Stanford University)所建立。
從金字塔的一到四層建構起一個深度學習訓練系統(tǒng)后,最終開發(fā)者將訓練出最佳化的深度學習模型,而此模型便可實際導入應用端,讓機器在未來新的環(huán)境里吸收新的資料加以消化,實現各種智能化的應用,這便是深度學習的最終目的。
市場在討論深度學習時,從應用層切入是最易于引起廣泛的討論,但事實上,從訓練到推論的過程中卻牽涉很多領域的技術,且所涵蓋的知識背景也大有不同。
就像一開始所提,并非每個投入深度學習開發(fā)的人在各個領域都能專精,甚至為了加速深度學習的開發(fā),因此,盡可能向市場獲取簡便、快速的開發(fā)工具與資源,便成為現今投入深度學習市場中重要的課題。





