無論如何,我們現在已經進入了機器學習和人工智能的時代。海量數據、廉價存儲、彈性計算和算法優化(尤其是深度學習)的融合帶來的效應已經不僅僅出現在科幻小說上了。
在復雜的策略游戲中,機器已經超越了人類,更不用說圖像識別、語音轉錄以及其他的進步,這些進步開始使我們對人類未來的假設變得復雜化。基于語音的個人助理對于我們來說已經是司空見慣的,而完全自動化的車輛似乎也就停留在不遠的彎道上。
鑒于最近的這些進展,圍繞機器學習和人工智能的大部分對話都集中在算法及其應用方面的突破上。
就像在早期的計算時代,當一個人需要成為匯編語言、編譯器和操作系統的專家來開發一個簡單的應用程序時,那么今天你需要大量的統計和分布式PhDs來構建和部署人工智能。使機器學習和人工智能,但是,在某些方面,它仍然是一個有限而昂貴的學科,僅供少數精英工程組織使用。
最終,這與基礎設施發展的滯后有關,迄今為止,機器學習技術的創新遠遠落后于基礎設施的發展。簡而言之,幫助開創當前實際機器學習時代的系統和工具不適合為下一代產生的智能應用提供支持。
展望未來,我們需要一個全新的工具鏈來釋放ML / AI的潛力,使開發人員和企業能夠操作和使用。那么,基礎設施的下一個重大機遇就是為智能系統構建模塊。
從基礎設施1.0到2.0及更高版本
應用程序和基礎架構逐步發展。
硬件或系統軟件的進步使堆棧層層疊疊,實現了新的應用程序品種。這些應用程序已經成熟并逐漸耗盡了其基礎資源,催化基礎架構層面的后續創新循環。更好、更快、更便宜的構建模塊的興起不可避免地會導致應用程序向最終用戶提供以前無法預知的體驗。
90年代末和00年代早期的商業互聯網的存在歸功于x86指令集(Intel),標準化操作系統(Microsoft),關系數據庫(Oracle),以太網互聯(Cisco)以及網絡數據存儲(EMC)。亞馬遜、eBay、雅虎甚至谷歌和Facebook最早的迭代都建立在這個我們稱為基礎設施1.0的基礎上。
然而,隨著網絡的成熟,到2015年底,從1995年的1600萬用戶增長到超過30億,應用程序的規模和性能要求發生了變化。對于web規模的巨人來說,在客戶端服務器時代開發的技術支持下運行他們的業務已經不再可行也不夠經濟。
相反,從這些企業的內部看。將卓越的技術專長與來自學術界、谷歌、Facebook和亞馬遜(Amazons)的并行計算研究結合在一起,定義了一種新的基礎架構設施,它是可擴展的,可編程的(通常)開源商品。 Linux,KVM,Xen,Docker,Kubernetes,Mesos,MySQL,MongoDB,Kafka,Hadoop,Spark等等這些技術定義了云時代。Sunil Dhaliwal將這種轉變描述為基礎設施2.0。
最終,這一代的技術是為了將互聯網擴展到數十億終端用戶,并有效地存儲從這些用戶獲取的信息。在這樣做的過程中,基礎設施2.0的創新催化了數據增長的急劇加速。結合幾乎無窮盡的并行計算和算法的進步,為今天的實際機器學習時代設定了舞臺。
基礎設施3.0:走向智能系統
基礎架構2.0最終關心的問題是“我們如何連接世界?”如今的一代技術改寫了這個問題:“我們如何理解世界?
這種區分,連通性與認知,使得ML / AI與前幾代的軟件截然不同。編碼認知的計算挑戰是它顛倒了經典的編程范式。而在傳統應用中,邏輯是手動編碼來執行特定的任務,在ML / AI中,訓練算法從數據庫中推斷邏輯。然后用這個邏輯來做出相關的決定和預測。
其結果是一個“智能”的應用程序,但是異常的數據密集型和計算成本昂貴。這些性質使得ML / AI不合適在過去的七十三年里通用的馮·諾依曼計算范式的多用途。相反,ML / AI代表了一個新的基礎架構,需要重新思考基礎設施、工具和開發實踐。
但迄今為止,ML / AI的研究和創新的優勢一直致力于新算法、模型訓練技術和優化。具有諷刺意味的是,ML / AI系統中只有一小部分代碼用于學習或預測。相反,大部分的復雜性體現在數據準備、特性工程以及大規模執行這些任務所需的分布式系統基礎設施上執行。
成功建立和部署ML / AI需要一個涉及多個離散系統的復雜的、精心協調的工作流程。首先,數據需要被攝入、清理和標記。然后,必須確定預測所依據的適當屬性(稱為特征)。 最后,開發人員必須對模型進行訓練并進行驗證、服務和不斷優化。從開始到結束,即使是技術最精通的組織,這個過程也可能會花費幾個月的時間。
為了讓ML / AI充分發揮潛力,它必須從今天的學科畢業,進入工程領域。在實踐中,這意味著需要有新的抽象、接口、系統和工具,來使開發人員能夠輕松地開發和部署智能應用程序。
這些必要的演進不是抽象或漸進式過程改進的微小變化。相反,它們在系統設計和開發工作流程中都是破壞性的、基礎性的變化。
相應地,在堆棧的每一層,我們都開始看到針對ML / AI范例而優化的新平臺和工具。機會很多:
·具有許多計算內核和高帶寬內存(HBM)的專用硬件非常接近處理器芯片。這些芯片針對執行神經網絡固有的快速、低精度、浮點運算所需的高度并行數值計算進行了優化。
·系統軟件具有硬件高效的實現,將計算編譯到晶體管級別。
·用于訓練和推理的分布式計算框架可以有效地在多個節點上擴展模型操作。
·數據和元數據管理系統,為創建和管理訓練和預測數據提供可靠、統一和可重復的管道。
·極低延遲的服務基礎架構,使機器能夠根據實時數據和上下文快速執行智能操作。
·模型解釋、QA、調試和可觀測性工具,可以大規模地監控、反思、優化模型和應用程序。
·封裝整個ML / AI工作流程的端到端平臺,從最終用戶中抽象出復雜性。例如優步的Michelangelo和Facebook的FBLearner等內部系統。
就在過去的十年里,云計算堆棧出現,在接下來的幾年里,我們也期待著會有龐大的基礎設施和工具生態系統能夠圍繞ML / AI進行合并。
總的來說,這個時代的基礎設施3.0的創新將釋放ML / AI的潛力,為智能系統提供構建模塊。 和前幾代一樣,將會出現新的項目、平臺和企業,這些企業也會出現并挑戰現有的在職人員。