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