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



