從基礎(chǔ)設(shè)施的演變,看人工智能到底需要什么樣的底層平臺(tái)
圖片來(lái)自“123rf.com.cn”
機(jī)器學(xué)習(xí)和人工智能的時(shí)代已經(jīng)到來(lái)。大數(shù)據(jù)、大容量存儲(chǔ)、彈性計(jì)算和各類(lèi)算法的發(fā)展,尤其是在深度學(xué)習(xí)領(lǐng)域的發(fā)展,帶來(lái)了各類(lèi)腦洞大開(kāi)的創(chuàng)新應(yīng)用。
在圍棋這樣的復(fù)雜策略游戲中,機(jī)器已經(jīng)勝過(guò)人類(lèi)。圖像識(shí)別、語(yǔ)音識(shí)別等應(yīng)用更是不在話(huà)下。語(yǔ)音智能助手開(kāi)始普及,全自動(dòng)駕駛汽車(chē)上路測(cè)試。然而對(duì)于近期機(jī)器學(xué)習(xí)/人工智能的這些發(fā)展,許多討論圍繞的都是算法和應(yīng)用,很少有討論涉及底層基礎(chǔ)設(shè)施。
在計(jì)算技術(shù)的發(fā)展早期,只有匯編語(yǔ)言專(zhuān)家、編譯器專(zhuān)家和操作系統(tǒng)專(zhuān)家才能開(kāi)發(fā)簡(jiǎn)單的應(yīng)用。目前的情況也很類(lèi)似,只有獲得統(tǒng)計(jì)學(xué)或分布式系統(tǒng)專(zhuān)業(yè)的博士學(xué)位,你才能知道如何開(kāi)發(fā)人工智能系統(tǒng)并大規(guī)模部署。缺失的環(huán)節(jié)在于加速人工智能開(kāi)發(fā)的抽象化工具。因此,只有最精英的工程團(tuán)隊(duì)才有完整的能力去做這方面工作。
另一方面,相對(duì)于機(jī)器學(xué)習(xí)技術(shù)的創(chuàng)新,基礎(chǔ)設(shè)施的發(fā)展也很落后。簡(jiǎn)單來(lái)說(shuō),作為當(dāng)前機(jī)器學(xué)習(xí)應(yīng)用基礎(chǔ)的系統(tǒng)和工具實(shí)際上并不適合未來(lái)智能應(yīng)用的演進(jìn)。面向未來(lái),業(yè)內(nèi)需要新工具去釋放人工智能的潛力,讓人工智能更加平易近人、更加實(shí)用。所以在基礎(chǔ)設(shè)施創(chuàng)業(yè)領(lǐng)域,提供智能系統(tǒng)開(kāi)發(fā)所需的模塊,這將是未來(lái)的一座大金礦。
從基礎(chǔ)設(shè)施1.0到基礎(chǔ)設(shè)施2.0
應(yīng)用和基礎(chǔ)設(shè)施之間的關(guān)系很微妙,相互限制、相互推動(dòng)。
硬件和系統(tǒng)軟件的發(fā)展帶來(lái)了新一類(lèi)應(yīng)用。這些應(yīng)用不斷完善和成熟,從而對(duì)底層資源提出更高的要求,倒逼底層基礎(chǔ)設(shè)施去創(chuàng)新。反過(guò)來(lái),基礎(chǔ)設(shè)施的優(yōu)化、創(chuàng)新、性?xún)r(jià)比提升也會(huì)帶來(lái)顛覆式應(yīng)用,給用戶(hù)提供前所未有的體驗(yàn)。一個(gè)典型的例子就是從幻燈片到PPT,再到各種在線圖片社交平臺(tái),例如Pinterest。
本世紀(jì)初,商業(yè)互聯(lián)網(wǎng)的發(fā)展基于來(lái)自英特爾的x86指令集,來(lái)自微軟的標(biāo)準(zhǔn)化操作系統(tǒng),來(lái)自甲骨文的關(guān)系數(shù)據(jù)庫(kù),來(lái)自思科的以太網(wǎng)設(shè)備,以及來(lái)自EMC的網(wǎng)絡(luò)存儲(chǔ)工具。亞馬遜、eBay、雅虎,甚至最初版本的谷歌和Facebook都基于這些基礎(chǔ)設(shè)施。這就是科技行業(yè)的“基礎(chǔ)設(shè)施1.0”。
然而隨著網(wǎng)絡(luò)的逐漸成熟,網(wǎng)民總數(shù)從1995年的1600萬(wàn)增長(zhǎng)至2015年底的30多億,應(yīng)用對(duì)規(guī)模和性能的要求也大幅提升。“客戶(hù)端/服務(wù)器”時(shí)代的技術(shù)不再適合互聯(lián)網(wǎng)巨頭的需要,無(wú)論是從可行性上來(lái)看還是從性?xún)r(jià)比上來(lái)看。
因此,互聯(lián)網(wǎng)公司開(kāi)始自力更生。憑借自身的技術(shù)專(zhuān)業(yè)能力以及學(xué)術(shù)界進(jìn)展,谷歌、Facebook和亞馬遜定義了全新一類(lèi)基礎(chǔ)設(shè)施。這樣的基礎(chǔ)設(shè)施具備如下特點(diǎn):規(guī)模可擴(kuò)展、可編程、通常是開(kāi)源的、成本低。相關(guān)技術(shù),包括Linux、KVM、Xen、Docker、Kubernetes、Mesos、MySQL、MongoDB、Kafka、Hadoop和Spark,定義了云計(jì)算的時(shí)代。這也被稱(chēng)作科技行業(yè)的“基礎(chǔ)設(shè)施2.0”。
最核心的,這代技術(shù)的設(shè)計(jì)目標(biāo)在于,讓互聯(lián)網(wǎng)可以覆蓋數(shù)十億終端用戶(hù),并以高效的方式去獲取并儲(chǔ)存來(lái)自這么多用戶(hù)的信息。因此,“基礎(chǔ)設(shè)施2.0”的創(chuàng)新導(dǎo)致了數(shù)據(jù)量的大幅增長(zhǎng)。配合并行計(jì)算技術(shù)和算法的發(fā)展,我們就看到了當(dāng)前機(jī)器學(xué)習(xí)的發(fā)展。
基礎(chǔ)設(shè)施3.0:走向智能系統(tǒng)
“基礎(chǔ)設(shè)施2.0”時(shí)代的終極問(wèn)題是:“我們?nèi)绾芜B接世界?”而當(dāng)前的問(wèn)題更多的是:“我們?nèi)绾卫斫馐澜?”
這其中的差別,即“連接”和“認(rèn)知”,可以解釋人工智能與上代軟件的關(guān)鍵不同。代碼自身的“認(rèn)知能力”顛覆了傳統(tǒng)編程模式。在傳統(tǒng)應(yīng)用中,程序邏輯是寫(xiě)死的,而在人工智能應(yīng)用中,算法通過(guò)對(duì)大數(shù)據(jù)的分析自己得出邏輯。隨后,這些邏輯被用于決策和預(yù)測(cè)。
這樣做的結(jié)果就是“智能”應(yīng)用。但實(shí)際上,這類(lèi)應(yīng)用的誕生需要大量數(shù)據(jù),并且耗費(fèi)巨大的計(jì)算資源。這些限制因素導(dǎo)致人工智能很難被通用化,從而符合70年前馮·諾依曼提出的計(jì)算范式。所以,人工智能代表了一種基礎(chǔ)性的新架構(gòu),要求我們重新思考基礎(chǔ)設(shè)施、工具和開(kāi)發(fā)實(shí)踐。
到目前為止,人工智能領(lǐng)域的研究和創(chuàng)新仍集中于新算法、模型訓(xùn)練技術(shù)和優(yōu)化方法。此外,人工智能系統(tǒng)中只有很少一部分的代碼用于學(xué)習(xí)和預(yù)測(cè),而最麻煩的部分在于準(zhǔn)備數(shù)據(jù)、開(kāi)發(fā)功能,讓分布式的基礎(chǔ)設(shè)施能夠運(yùn)行,從而規(guī)模化地執(zhí)行任務(wù)。
如果想要成功開(kāi)發(fā)并部署人工智能應(yīng)用,那么就需要協(xié)調(diào)多個(gè)離散的系統(tǒng),設(shè)計(jì)精密的流程。首先,你需要消化數(shù)據(jù),去蕪存菁,給數(shù)據(jù)打上標(biāo)簽。隨后,為了實(shí)現(xiàn)預(yù)測(cè),你必須確定適當(dāng)?shù)奶匦?。最后,開(kāi)發(fā)者必須訓(xùn)練模型并驗(yàn)證、部署、持續(xù)優(yōu)化。整個(gè)過(guò)程可能需要幾個(gè)月時(shí)間,即使是技術(shù)最專(zhuān)業(yè)的組織也是如此。
如果想要讓人工智能發(fā)揮最大的潛力,那么就必須從當(dāng)前的學(xué)術(shù)理念中提煉出可以實(shí)際操作的要點(diǎn)。在實(shí)踐中,這意味著需要進(jìn)行新抽象、設(shè)計(jì)新界面、系統(tǒng)和工具,幫助開(kāi)發(fā)者更方便地開(kāi)發(fā)和部署智能應(yīng)用。
這很可能不會(huì)是漸進(jìn)式的改變,而將是顛覆性的、基礎(chǔ)性的變革。設(shè)計(jì)方式和開(kāi)發(fā)方式都將發(fā)生巨變。
對(duì)應(yīng)地,在整個(gè)體系的每個(gè)層面,我們都在看到新平臺(tái)和工具出現(xiàn),嘗試對(duì)人工智能開(kāi)發(fā)范式做出優(yōu)化。機(jī)會(huì)確實(shí)很多:
1. 集成多個(gè)計(jì)算核心,支持高帶寬存儲(chǔ)的專(zhuān)用硬件正在出現(xiàn)。這些芯片針對(duì)高并發(fā)數(shù)值計(jì)算進(jìn)行優(yōu)化,更適合神經(jīng)網(wǎng)絡(luò)所需的快速、低精度、浮點(diǎn)計(jì)算任務(wù)。
2. 系統(tǒng)軟件將針對(duì)硬件配置提升效率,甚至充分發(fā)揮每個(gè)晶體管的能力。
3. 無(wú)論是用于訓(xùn)練還是推理,分布式計(jì)算框架可以有效地?cái)U(kuò)大跨多個(gè)節(jié)點(diǎn)的模型運(yùn)行。
4. 數(shù)據(jù)和元數(shù)據(jù)管理系統(tǒng)帶來(lái)了可靠、統(tǒng)一、可復(fù)制的數(shù)據(jù)儲(chǔ)備,為訓(xùn)練和預(yù)測(cè)提供并管理大數(shù)據(jù)集。
5. 基于實(shí)時(shí)數(shù)據(jù)和內(nèi)容,超低時(shí)延的服務(wù)基礎(chǔ)設(shè)施讓機(jī)器可以迅速執(zhí)行智能操作。
6. 模型表達(dá)、問(wèn)答、調(diào)試和監(jiān)控工具有助于大規(guī)模地監(jiān)控、調(diào)試和優(yōu)化模型和應(yīng)用。
7. 端到端平臺(tái)可以將整個(gè)人工智能工作流封裝起來(lái)并抽象化,簡(jiǎn)化終端開(kāi)發(fā)者面臨的復(fù)雜性。這方面的例子包括Uber的Michelangelo和Facebook的FBLearner,已經(jīng)商用的則包括Determined AI。
過(guò)去10年,我們?cè)诩夹g(shù)方面看到了“云計(jì)算物種”的興起。類(lèi)似的,未來(lái)幾年,我們將看到,圍繞機(jī)器學(xué)習(xí)和人工智能將誕生全新的基礎(chǔ)設(shè)施和工具生態(tài)。
這些創(chuàng)新的集合就是“基礎(chǔ)設(shè)施3.0”,而這也將充分釋放人工智能的能力,給智能系統(tǒng)的建設(shè)提供模塊化工具。我們將看到新的項(xiàng)目和平臺(tái),以及新公司的崛起。