原標題:TensorFlow產品經理:機器學習如何改變未來十年的軟硬體?

王瀚宸 編譯自 South Park Commons博客

最近,Google Brain員工,TensorFlow產品經理Zak Stone在矽谷創業者社群South Park Commons上做了個講座,談到了TensorFlow、XLA、Cloud TPU、TFX、TensorFlow Lite等各種新工具、新潮流如何塑造著機器學習的未來。同時,他還暗示了一些還未向公眾披露的exciting的事兒。

講座的題目叫「Tensor Flow, Cloud TPUs, and ML progress」,以下是整個講座的概要,量子位編譯整理自South Park Commons官方博客。

TensorFlow產品經理:機器學習如何改變未來十年的軟硬體?

作為一個平台來說,TensorFlow算是一場豪賭:它兼顧了快速靈活,還可用於生產。實驗和執行之間的轉換要足夠快,才能保證工程生產力,靜態圖像計算通過Python等高級靈活的語言來表示,同時圖編譯允許對特定目標進行準確度優化。

TensorFlow產品經理:機器學習如何改變未來十年的軟硬體?

作為一個開源項目,TensorFlow極為成功,它從2015年11月發布至今在Github上已經獲得了超過20,000個commit。Github版的TensorFlow每周與Google內部鏡像文件之間至少會進行一次雙向同步,同時TensorFlow也收穫了來自Intel,Microsoft,IBM,Rstudio,Minds.ai以及其他公司研發團隊的大大小小的貢獻。

TensorFlow產品經理:機器學習如何改變未來十年的軟硬體?

為了更好地觸及使用者,能夠在移動端上提高運行TensorFlow模型效率的TensorFlow Lite將會在今年晚些時候內嵌到設備中,而像是XLA這樣的項目更具野心:XLA使用深度學習來支持線性代數元的先時和實時編譯,從而為任意的目標後端系統生成加速過的程式碼。XLA的目標是在遞階優化上實現重大突破,不僅是在GPU架構上,而是要在任意能夠平行放置線性代數元的架構上實現突破。

TensorFlow產品經理:機器學習如何改變未來十年的軟硬體?

谷歌內部,在CEO Sundar Pichai要成為「AI-first」公司的號召下,TensorFlow被應用到非常多的項目當中。

而加速研發基於機器學習軟體的趨勢不僅在Google身上發生,亞馬遜,蘋果,百度,Facebook,微軟,Salesforce,Uber,Lyft等幾乎所有的主流科技企業,都雇傭了專業的研發團隊來推動機器學習的工業化。而在這些公司中,深度學習的開發平台也是五花八門,其中包括來自Facebook的PyTorch和Caffe2,來自Microsoft的CNTK,來自Apple的Core ML以及來自Amazon的MXNet等。

未來十年,

軟體工程會變成什麼樣?

機器學習的崛起,意味著原來的clean abstraction和模塊化設計正在被高維浮點張量和高效矩陣乘法所取代。

按這種趨勢發展下去,軟體工程行業將徹底改變。

Google軟體工程師D. Sculley曾寫過一篇題為「Machine Learning: The High-Interest Credit Card of Technical Debt」的文章,他在其中列舉出了機器學習系統促進低劣軟體設計的種種可能,甚至會使這些低劣的設計成為必須。他提到,「這些系統的基本程式碼跟正常程式碼擁有相同的複雜度,但在系統層面上擁有更大的複雜度,從而可能引發潛在的風險。」

機器學習系統通過將所有系統輸入緊密耦合,模糊了模型邊界和抽象:理想的行為不變性不是來自軟體邏輯,而是來自於驅動它們的特定外部數據。儘管存在通過靜態分析和圖連接來辨別程式碼可靠性的工具,但總體上,這些工具並沒有辦法用來分析數據的相關性。

D Sculley等人在文章中討論了幾種系統設計中的劣勢,很能與相關從業者產生共鳴:

1.Glue Code(粘滯的程式碼)系統設計樣式,「在這其中需要寫大量的支持程式碼負責把數據傳入、傳出各種用途的安裝包」;

2.Pipeline jungles(亂七八糟的流水線),它會隨時間有機地演變,數據準備系統「可能會變成由scape,join和sampling步驟組成的一團亂麻,通常還伴隨著中間文件的輸出」;

3.Configuration debt(龐大的編譯代價),將會隨著系統和生產線的研發而逐漸累積,集合了「各種編譯選項,包括使用的特徵有哪些,怎樣篩選數據,特定學習演算法的設置(範圍很寬),潛在的預處理或者後處理,驗證方法等等。」

即使在更小、更輕量化的項目中,工程師還會被以下這些問題困擾:

1.在實驗中模型架構和權重的版本——尤其是當模型從不同體系借來了部分與訓練模型,或者從其他模型借來了權重的時候。

2.數據來源和特徵的版本;

3.在實驗環境和實際生產環境之間的遷移(domain shift);

4.監測生產中推斷的質量。

解決這些問題的一個可能方案是TFX,它是一個Google內部研發的平台,用來在生產中分佈和供應機器學習模型:

創造和管理一個可用於可靠地生產和部署機器學習模型的平台,需要在很多部件之間進行細緻編排——這些部件包括基於訓練數據生成模型的學習器、用於分析和驗證數據和模型的模塊、以及最終在生產工程中用於部署模型的基礎架構。當數據隨著時間變化且模型在連續更新時,平台的管理就變得非常難。

不幸的是,這些編排通常是在通過glue code和特定的腳本文件來有針對性的一一處理,導致了複製成本大、系統脆弱同時伴隨著大量的技術隱患。

TFX標準化了這些過程和部件,並把它們整合到單個平台上,從而簡化了平台編譯的過程,在確保平台可靠性、減少服務崩潰的基礎上,將製作的時間從數月減少到了數周。

TensorFlow產品經理:機器學習如何改變未來十年的軟硬體?

未來十年,

硬體會變成什麼樣?

摩爾定律放緩,使得我們得以重新進入「架構的黃金年代」,見證各式各樣晶元和指令集的飛速發展。

諸如英特爾旗下的Nervana、英偉達、Cerebras和Google等公司全都開始研發能夠加速機器學習中線性代數運算的下一代硬體架構。且在默認情況下,每種架構都需要獨特的、像cuDNN那樣的底層、手動優化基元庫。(cuDNN全稱是CUDA Deep Neural Network library,是NVIDIA專門針對深度神經網路設計的一套GPU計算加速庫。)

想打破這個趨勢,需要同行們在XLA等更普適的編譯器框架上下更多功夫。

Google的TPU(Tensor Processing Units)目前最有可能打破GPU的統治。每個Cloud TPU能提供高達每秒180萬億次的浮點運算,64GB的超高帶寬存儲空間以及可串聯的特性。跟之前超級電腦的架構不同,TPU是從零開始設計,專門針對機器學習中常見的線性代數運算。

TPU是與TensorFlow集成的,Google提供收費雲端服務(Cloud TPU),同時通過TensorFlow Research Cloud(TFRC)項目,對想要提前使用TPU的機器學習專家進行補貼,提供1000個Cloud TPU,希望他們能通過論文和開源軟體來跟世界分享其研究成果。

TensorFlow產品經理:機器學習如何改變未來十年的軟硬體?

小結

像TensorFlow這樣的圖計算和深度學習庫是未來計算行業發展背後的主要驅動力,這推動我們去重新審視系統架構,從硬體到編譯器再到更高級的程式語言和設計規範。

於是,繁重的工作擺在了軟體架構師,工程師、研究人員等從業者面前,但同時這過程也很令人興奮。就像Zak在演講中所總結的一樣:

我讀研究生的時候,這些驚艷的應用大都還不可能實現——當人們對機器學習技術習以為常,然後開始做一些我們現在預見不到的事情,會是什麼樣呢?第一批TensorFlow原生的產品會是什麼樣?」

追蹤人工智慧領域最勁內容