深度解讀大規(guī)模深度學(xué)習(xí)工具的當(dāng)前趨勢
本文作者Panos Labropoulos博士是 Bright Computing 的高級支持工程師,原文來自 NextPlatform
在過去的十年,企業(yè)已經(jīng)開始使用機(jī)器學(xué)習(xí)(ML)收集和分析大量數(shù)據(jù)以獲得競爭優(yōu)勢?,F(xiàn)在有一些人試圖走的更遠(yuǎn) — 使用稱為機(jī)器學(xué)習(xí)分支的深度學(xué)習(xí)(DL)技術(shù)。他們正在尋求探索隱藏在數(shù)據(jù)中更深?yuàn)W的特性來為欺詐檢測、需求預(yù)測、點(diǎn)擊預(yù)測和其他數(shù)據(jù)密集型分析創(chuàng)建預(yù)測應(yīng)用程序。
使用深度學(xué)習(xí)(DL)技術(shù)開發(fā)的計(jì)算機(jī)視覺、語音識別、自然語言處理和音頻識別應(yīng)用需要大規(guī)模的計(jì)算能力來處理大量數(shù)據(jù)。為了獲得企業(yè)正在尋找的深度學(xué)習(xí)(DL)技術(shù)解決方法,需要在企業(yè)的層面上部署和管理底層的 IT 基礎(chǔ)設(shè)施。為了讓機(jī)構(gòu)能夠更快更容易地從大量復(fù)雜的數(shù)據(jù)中獲得可行見解,新解決方案正在被研發(fā)。
機(jī)器學(xué)習(xí)包括開發(fā)算法,通過從示例輸入構(gòu)建模型以進(jìn)行數(shù)據(jù)驅(qū)動(dòng)的預(yù)測或決策。諸如谷歌(Google)、Facebook、亞馬遜(Amazon)、百度(Baidu)、雅虎(Yahoo)、特斯拉汽車(Tesla Motors) 和 沃爾瑪實(shí)驗(yàn)室(Walmart Labs)等領(lǐng)先的技術(shù)公司已經(jīng)在使用機(jī)器學(xué)習(xí)工具改進(jìn)圖像識別、程序化廣告、產(chǎn)品和內(nèi)容推薦的分析應(yīng)用程序。
有三種類型的機(jī)器學(xué)習(xí):監(jiān)督式機(jī)器學(xué)習(xí)、無監(jiān)督式機(jī)器學(xué)習(xí)和強(qiáng)化學(xué)習(xí)。
通過監(jiān)督式機(jī)器學(xué)習(xí),程序在預(yù)定義的一組標(biāo)準(zhǔn)上被「訓(xùn)練」。例如,你可以基于鄰居、臥室數(shù)量和總平方英尺來給程序饋送先前房屋銷售價(jià)格的的信息,然后要求它預(yù)測新的銷售價(jià)格。一個(gè)好的房地產(chǎn)代理知道如何基于地域、鄰居和類似因素來定價(jià)房子,但是使用標(biāo)準(zhǔn)技術(shù)來變成計(jì)算機(jī)做這件事情將是非常麻煩的。另一個(gè)例子是向計(jì)算機(jī)展示預(yù)定義的數(shù)據(jù)集(比如貓和狗的圖像集合)以訓(xùn)練它正確地識別其他相似圖片。
無監(jiān)督式機(jī)器學(xué)習(xí)意味著程序被給于大量的數(shù)據(jù)并且必須找到所提供的數(shù)據(jù)間的非線性關(guān)系。這方面的一個(gè)例子可能是查看房地產(chǎn)數(shù)據(jù)并確定哪些因素導(dǎo)致城市某些地區(qū)的價(jià)格上漲。一個(gè)主要制造商正在使用這種無監(jiān)督式機(jī)器學(xué)習(xí)來預(yù)測未來對于不同零件的需求。這樣,在設(shè)備必須接地之前,零件就可用于安裝。人類專家可能知道什么因素會影響零件的需求,但是機(jī)器學(xué)習(xí)提供了自主決策所需要的附加數(shù)據(jù)。
強(qiáng)化學(xué)習(xí)意味著計(jì)算機(jī)程序與其必須執(zhí)行某個(gè)任務(wù)的動(dòng)態(tài)環(huán)境進(jìn)行交互。示例包括與社會媒體動(dòng)態(tài)交互以收集關(guān)于某個(gè)問題公眾情緒的數(shù)據(jù)。計(jì)算機(jī)可以從數(shù)據(jù)中獲得信息并預(yù)測未來的實(shí)時(shí)貢獻(xiàn)。
這些機(jī)器學(xué)習(xí)方法僅在問題可解并有可用數(shù)據(jù)時(shí)才起作用。例如,我們不能根據(jù)消費(fèi)者是否有狗來使用機(jī)器學(xué)習(xí)方法估計(jì)飛機(jī)票的價(jià)格。如果數(shù)據(jù)不能幫助人類專家解決問題,它同樣也不能幫助機(jī)器。
如例子所示,其中最頂行明顯是孩子的圖像。對于計(jì)算機(jī)來說,包含在自行車上的,在沙灘上的孩子,或者是側(cè)向翻轉(zhuǎn)的位圖是完全不同的數(shù)據(jù)集。教計(jì)算機(jī)去區(qū)分它們是非常困難的一件事情。在某些情況下,這些圖片的差異關(guān)乎生死。比如,最底部包含著道路交通的標(biāo)志。自主駕駛的汽車因?yàn)楸谎└采w而不能辨認(rèn)出道路標(biāo)志是不可接受的。一個(gè)普通的駕駛員因?yàn)槠浒诉呅蔚男螤羁梢员嬲J(rèn)出它,那么計(jì)算機(jī)應(yīng)該也可以做到。
機(jī)器學(xué)習(xí)不僅讓企業(yè)從越來越龐大和多樣化的數(shù)據(jù)集中發(fā)現(xiàn)模式和趨勢,還能夠讓傳統(tǒng)上由人類完成的分析自動(dòng)化,從商業(yè)相關(guān)的互動(dòng)中學(xué)習(xí)并且提供基于證據(jù)的回應(yīng)。它同樣提供了可能成功的建議行為的置信水平。它使企業(yè)提供新的差異化和個(gè)性化的產(chǎn)品和服務(wù),以及提升現(xiàn)有產(chǎn)品和服務(wù)的影響力并且/或者降低其成本。然而,機(jī)器學(xué)習(xí)是一種非精確計(jì)算,因?yàn)槠錄]有確定性的建模特征的方法。特征通常需要被建模為神經(jīng)網(wǎng)絡(luò)并且參數(shù)取決于輸入數(shù)據(jù)集的質(zhì)量。
深度學(xué)習(xí)作為機(jī)器學(xué)習(xí)的一個(gè)分支,是一種模擬人腦的動(dòng)態(tài)系統(tǒng),尤其是神經(jīng)元如何在大腦中相互作用,以及大腦中的不同層是如何協(xié)作的。與機(jī)器學(xué)習(xí)不同,在深度學(xué)習(xí)中,特征被建模為一個(gè)深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)與一些內(nèi)部/隱藏層,其捕獲數(shù)據(jù)的微妙信息并且分配其物理意義。深度學(xué)習(xí)能夠?qū)?shù)字圖像分割稱為更易于分析的片段;這意味著可以提取高級信息并對其編碼以供計(jì)算機(jī)使用。
例如,對于人類,臉部有眼睛。對于計(jì)算機(jī),臉部有著明暗的像素,構(gòu)成了一些類型的抽象的線條。深度學(xué)習(xí)模型的每一層都會讓計(jì)算機(jī)識別同一對象的另一級別的抽象。使用較早的動(dòng)物類比,深度學(xué)習(xí)會使用戶區(qū)分那些躺著地上的貓與那些跳躍的貓的圖片。
深度學(xué)習(xí)在過去幾年中取得了較大進(jìn)步。例如,下圖展示了作為 ImageNet 大規(guī)模視覺識別挑戰(zhàn)(ILSCRC)的一部分的圖像識別研究的準(zhǔn)確率,該技術(shù)評估了大規(guī)模的物體檢測和圖像分類的算法。這項(xiàng)研究為了使研究員可以比較更廣范圍的物體的檢測進(jìn)步,并評估計(jì)算機(jī)視覺的大規(guī)模圖像索引檢測和注釋的進(jìn)展。
圖中藍(lán)色部分顯示了在 2010 和 2011 年的可用的傳統(tǒng)計(jì)算機(jī)視覺方法,紫色顯示了最近使用的深度學(xué)習(xí)技術(shù)。紅色顯示了人的準(zhǔn)確率,這是通過要求個(gè)體和小組來描述和分類圖像測量的。小組中的人被允許考慮所示的圖像并得出共同的答案。一個(gè)人立即注意到一個(gè)穩(wěn)妥的改進(jìn)方法。在 2015 年,使用深度學(xué)習(xí)技術(shù)的計(jì)算機(jī)已經(jīng)變得和人一樣高效。
百度研究的深度語音項(xiàng)目(Deep Speech project)最近使用單一、深度循環(huán)神經(jīng)網(wǎng)絡(luò)在英語和普通話的語音識別中實(shí)現(xiàn)了人類水平的準(zhǔn)確性。這個(gè)結(jié)果表明深度學(xué)習(xí)在計(jì)算機(jī)視覺之外的領(lǐng)域也是可用的。
另一個(gè)有趣的例子是 Google DeepMind在 AlphaGo (一個(gè)被開發(fā)的圍棋計(jì)算機(jī)程序)中使用了深度學(xué)習(xí)技術(shù)。AlphaGo 的算法基于先前通過廣泛訓(xùn)練的人工神經(jīng)網(wǎng)絡(luò)(從人類和計(jì)算機(jī)游戲)「學(xué)習(xí)」到的知識來采取其移動(dòng)。在 2015 年,它成為了第一個(gè)在全尺寸的棋盤上無障礙地打敗專業(yè)人類圍棋選手的計(jì)算機(jī)圍棋程序。
人們對深度學(xué)習(xí)技術(shù)愈發(fā)感興趣的最后一個(gè)例子是 DeepMind 和 Blizzard 之間的合作,他們正在開發(fā)星際爭霸 II (StarCraft II)。使用世界上最受歡迎的電腦游戲,該項(xiàng)目正被開發(fā)為一個(gè)研究社區(qū)并對世界上的人工智能和機(jī)器學(xué)習(xí)的研究者們開放。
機(jī)器學(xué)習(xí)帶來的巨大計(jì)算挑戰(zhàn)
機(jī)器學(xué)習(xí)和深度學(xué)習(xí)技術(shù)的這些示例令人印象深刻,但是它們卻帶來了繁重的計(jì)算任務(wù)。對于深度學(xué)習(xí)的訓(xùn)練通常需要幾十個(gè)五十億的浮點(diǎn)運(yùn)算(FLOPs),這在小集群上需要轉(zhuǎn)換為幾周或者幾個(gè)月的時(shí)間。在迅速變換的環(huán)境中,許多,即使不是大多數(shù),組織不能等待如此長的時(shí)間來提取智能。
深度學(xué)習(xí)軟件模塊如果使用開源存儲庫可以花費(fèi)企業(yè)幾天的時(shí)間來下載和安裝。找到給定深度學(xué)習(xí)模塊或庫的所有依賴項(xiàng)會花費(fèi)更長的時(shí)間。由于這些工具仍然是新的,許多這些依賴項(xiàng)仍然需要用戶確保特定庫的特定版本可用。一旦尋找到,用戶可能需要耗時(shí)地對所有庫和依賴項(xiàng)進(jìn)行手動(dòng)安裝。在某些情況下,它們必須滿足 60 多個(gè)依賴項(xiàng)。許多庫并不能從標(biāo)準(zhǔn)企業(yè)
Linux 發(fā)行版的開源存儲庫安裝,這意味著用戶需要尋找并手動(dòng)安裝它們,以保證它們使用可以一起工作的版本。
用戶沒有從具有出色標(biāo)稱性能特征但缺乏優(yōu)化庫的新硬件中獲益,因?yàn)檫@將花費(fèi)幾個(gè)月或者幾年的時(shí)間來創(chuàng)建這些庫。特別地,深度學(xué)習(xí)需要有效的 C 到 BLAS、FFTs、卷積、 malloc 和 memcopy 的接口。英偉達(dá)(NVIDIA )提供了這些需要的到 cuBLAS 和 cuFFT 的接口,但這樣的優(yōu)化庫從其他密集的硬件平臺丟失了。通常,需要幾年的時(shí)間才能在新的架構(gòu)上優(yōu)化這些庫。
對于那些尋找可用機(jī)器學(xué)習(xí)軟件包概述的人,Knowm 公司的過剩的機(jī)器學(xué)習(xí)工具提供了超過 40 個(gè)機(jī)器學(xué)習(xí)軟件包和庫的詳細(xì)比較。
為深度學(xué)習(xí)搭建一個(gè)框架
新的工具和框架正在出現(xiàn),這使得深度學(xué)習(xí)更加容易。組織必須選擇在軟硬件、網(wǎng)絡(luò)、工具和庫方面的正確的組合以有效地開發(fā)和運(yùn)行應(yīng)用程序。
業(yè)務(wù)的第一個(gè)流程是簡化深度學(xué)習(xí)環(huán)境的部署、管理、操作和擴(kuò)展。企業(yè)必須首先啟用分析師和開發(fā)人員。深度學(xué)習(xí)工具并不能獨(dú)立工作。為了更有效率,公司需要向開發(fā)人員和分析師提供正確的工具和支持軟硬件的框架的集合,而不必將其轉(zhuǎn)變?yōu)?IT 管理人員。
雖然人工智能和機(jī)器學(xué)習(xí)已經(jīng)伴隨了我們幾十年,深度學(xué)習(xí)仍然是一個(gè)新的領(lǐng)域,并在不斷變化。公司需要靈活地采用新的工具和做法,并以輕快的方式快速響應(yīng)市場的需求。
現(xiàn)代深度學(xué)習(xí)環(huán)境
為了響應(yīng)這些需求,Bright Computing 開發(fā)了它的 Bright for Deep Learning 解決方案,在 Bright Cluster Manager 7.3 版本可用。新的方法提供了機(jī)器學(xué)習(xí)框架的選擇,以簡化包括 Caffe、Torch、TensorFlow、Theano 和 CNTK在內(nèi)的深度學(xué)習(xí)項(xiàng)目。它包括幾個(gè)最受歡迎的機(jī)器學(xué)習(xí)庫,以幫助訪問數(shù)據(jù)集,數(shù)據(jù)集包括 MLPython、cuDNN (NVIDIA CUDA Deep Neural Network library )、DIGITS (Deep Learning GPU Training System) 和 CaffeOnSpark(在大數(shù)據(jù)集群上的開源的分布式深度學(xué)習(xí)解決方案)。
為深度學(xué)習(xí)處理大量數(shù)據(jù)需要大量的計(jì)算能力。隨著專為深度學(xué)習(xí)設(shè)計(jì)的新工具變得可用,開發(fā)人員正在使用它們并利用加速器(比如 NVIDIA GPUs)在高級高性能(HPC)的集群上搭建他們的應(yīng)用。
GPUs 使得機(jī)器學(xué)習(xí)中所需的計(jì)算密集型程序的計(jì)算速度比僅適用 CPU 的解決方案快得多。The Bright for Deep Learning 解決方案提供了 GPU 加速版本的通用機(jī)器學(xué)習(xí)庫以便更輕松地布置和管理硬件以及相關(guān)軟件、APIs 和機(jī)器學(xué)習(xí)庫。這意味著研究員和開發(fā)者只需要專注于他們的工作——而不是管理工具。
這也意味著用戶不必?fù)?dān)心查找、配置和部署運(yùn)行這些深度學(xué)習(xí)庫和框架所需的所有依賴項(xiàng),包括超過 400 MB 的支持機(jī)器學(xué)習(xí)軟件包的 Python 模塊,以及 英偉達(dá)(NVIDIA)硬件驅(qū)動(dòng)、CUDA(平行計(jì)算平臺 API)驅(qū)動(dòng)程序、CUB(CUDA 構(gòu)建塊)和 NCCL (標(biāo)準(zhǔn)集體通信程序庫)。在未來會增加更多,比如 CNTK、Bidmach、Keras、MXNet 和其他。
如果用戶需要更多的容量,他們可以使用深度學(xué)習(xí)功能將支持 GPU 的實(shí)例擴(kuò)展到使用 Bright 的云爆發(fā)功能的云中。他們還可以輕松地集成深度學(xué)習(xí)應(yīng)用程序,或者在私有 OpenStack 云中運(yùn)行它們。用戶甚至可以通過使用 CaffeOnSpark 運(yùn)行深度學(xué)習(xí)應(yīng)用程序來利用現(xiàn)代集群提供的性能。
企業(yè)將最先進(jìn)的 HPC 集群與深度學(xué)習(xí)相結(jié)合
各種企業(yè)已經(jīng)使用該解決方案將最先進(jìn)的 HPC 集群和深度學(xué)習(xí)相結(jié)合。例如,斯坦福大學(xué)正在致力于計(jì)算機(jī)視覺、自然語言處理和信用卡詐騙檢測研究。喬治梅森大學(xué)正在對科學(xué)模擬數(shù)據(jù)進(jìn)行分析。
Illumina 開發(fā)了用于生命科學(xué)研究、翻譯和消費(fèi)者基因組學(xué)以及分子診斷的測序和陣列技術(shù),其正在進(jìn)行基因預(yù)測研究以鑒定可以編碼某些功能的基因組部分。三星正在致力于將 Caffe 深度學(xué)習(xí)網(wǎng)絡(luò)應(yīng)用于醫(yī)療保健應(yīng)用的計(jì)算機(jī)視覺工作。RICOH 正在研究圖像識別的深度學(xué)習(xí)技術(shù),紐約大學(xué)(NYU)多媒體中心正在測試 HPC 集群的深度學(xué)習(xí)任務(wù)。
深度學(xué)習(xí)與傳統(tǒng)的 HPC 工作負(fù)載一致(如大型密集線性代數(shù)問題)。然而,目前最快的深度學(xué)習(xí)集群和最快的超級計(jì)算機(jī)之間存在巨大的差距。雖然仍然有許多挑戰(zhàn),但是有很大的機(jī)會來進(jìn)一步推進(jìn)深度學(xué)習(xí)的性能并可以使用更大的數(shù)據(jù)集。