機器學(xué)習如何改變未來(lái)十年軟硬件
最近,Google Brain員工,TensorFlow產(chǎn)品經(jīng)理Zak Stone在硅谷創(chuàng )業(yè)者社群South Park Commons上做了個(gè)講座,談到了TensorFlow、XLA、Cloud TPU、TFX、TensorFlow Lite等各種新工具、新潮流如何塑造著(zhù)機器學(xué)習的未來(lái)。同時(shí),他還暗示了一些還未向公眾披露的exciting的事兒。
本文引用地址:http://dyxdggzs.com/article/201708/363672.htm講座的題目叫“Tensor Flow, Cloud TPUs, and ML progress”,以下是整個(gè)講座的概要,量子位編譯整理自South Park Commons官方博客。

作為一個(gè)平臺來(lái)說(shuō),TensorFlow算是一場(chǎng)豪賭:它兼顧了快速,靈活,還可用于生產(chǎn)。實(shí)驗和執行之間的轉換要足夠快,才能保證工程生產(chǎn)力,靜態(tài)圖像計算通過(guò)Python等高級靈活的語(yǔ)言來(lái)表示,同時(shí)圖編譯允許對特定目標進(jìn)行準確度優(yōu)化。

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

為了更好地觸及用戶(hù),能夠在移動(dòng)端上提高運行TensorFlow模型效率的TensorFlow Lite將會(huì )在今年晚些時(shí)候內嵌到設備中,而像是XLA這樣的項目更具野心:XLA使用深度學(xué)習來(lái)支持線(xiàn)性代數元的先時(shí)和實(shí)時(shí)編譯,從而為任意的目標后端系統生成加速過(guò)的代碼。XLA的目標是在遞階優(yōu)化上實(shí)現重大突破,不僅是在GPU架構上,而是要在任意能夠平行放置線(xiàn)性代數元的架構上實(shí)現突破?! ?/p>

谷歌內部,在CEO Sundar Pichai要成為“AI-first”公司的號召下,TensorFlow被應用到非常多的項目當中。
而加速研發(fā)基于機器學(xué)習軟件的趨勢不僅在Google身上發(fā)生,亞馬遜,蘋(píng)果,百度,Facebook,微軟,Salesforce,Uber,Lyft等幾乎所有的主流科技企業(yè),都雇傭了專(zhuān)業(yè)的研發(fā)團隊來(lái)推動(dòng)機器學(xué)習的工業(yè)化。而在這些公司中,深度學(xué)習的開(kāi)發(fā)平臺也是五花八門(mén),其中包括來(lái)自Facebook的PyTorch和Caffe2,來(lái)自Microsoft的CNTK,來(lái)自Apple的Core ML以及來(lái)自Amazon的MXNet等。
機器學(xué)習的崛起,意味著(zhù)原來(lái)的clean abstraction和模塊化設計正在被高維浮點(diǎn)張量和高效矩陣乘法所取代。
按這種趨勢發(fā)展下去,軟件工程行業(yè)將徹底改變。
Google軟件工程師D. Sculley曾寫(xiě)過(guò)一篇題為“Machine Learning: The High-Interest Credit Card of Technical Debt”的文章,他在其中列舉出了機器學(xué)習系統促進(jìn)低劣軟件設計的種種可能,甚至會(huì )使這些低劣的設計成為必須。他提到,“這些系統的基本代碼跟正常代碼擁有相同的復雜度,但在系統層面上擁有更大的復雜度,從而可能引發(fā)潛在的風(fēng)險?!?/p>
機器學(xué)習系統通過(guò)將所有系統輸入緊密耦合,模糊了模型邊界和抽象:理想的行為不變性不是來(lái)自軟件邏輯,而是來(lái)自于驅動(dòng)它們的特定外部數據。盡管存在通過(guò)靜態(tài)分析和圖連接來(lái)辨別代碼可靠性的工具,但總體上,這些工具并沒(méi)有辦法用來(lái)分析數據的相關(guān)性。
D Sculley等人在文章中討論了幾種系統設計中的劣勢,很能與相關(guān)從業(yè)者產(chǎn)生共鳴:
1. Glue Code(粘滯的代碼)系統設計樣式,“在這其中需要寫(xiě)大量的支持代碼負責把數據傳入、傳出各種用途的安裝包”;
2. Pipeline jungles(亂七八糟的流水線(xiàn)),它會(huì )隨時(shí)間有機地演變,數據準備系統“可能會(huì )變成由scape,join和sampling步驟組成的一團亂麻,通常還伴隨著(zhù)中間文件的輸出”;
3. Configuration debt(龐大的編譯代價(jià)),將會(huì )隨著(zhù)系統和生產(chǎn)線(xiàn)的研發(fā)而逐漸累積,集合了“各種編譯選項,包括使用的特征有哪些,怎樣篩選數據,特定學(xué)習算法的設置(范圍很寬),潛在的預處理或者后處理,驗證方法等等?!?/p>
即使在更小、更輕量化的項目中,工程師還會(huì )被以下這些問(wèn)題困擾:
1. 在實(shí)驗中模型架構和權重的版本——尤其是當模型從不同體系借來(lái)了部分與訓練模型,或者從其他模型借來(lái)了權重的時(shí)候。
2. 數據來(lái)源和特征的版本;
3. 在實(shí)驗環(huán)境和實(shí)際生產(chǎn)環(huán)境之間的遷移(domain shift);
4. 監測生產(chǎn)中推斷的質(zhì)量。
解決這些問(wèn)題的一個(gè)可能方案是TFX,它是一個(gè)Google內部研發(fā)的平臺,用來(lái)在生產(chǎn)中分布和供應機器學(xué)習模型:
創(chuàng )造和管理一個(gè)可用于可靠地生產(chǎn)和部署機器學(xué)習模型的平臺,需要在很多部件之間進(jìn)行細致編排——這些部件包括基于訓練數據生成模型的學(xué)習器、用于分析和驗證數據和模型的模塊、以及最終在生產(chǎn)工程中用于部署模型的基礎架構。當數據隨著(zhù)時(shí)間變化且模型在連續更新時(shí),平臺的管理就變得非常難。
不幸的是,這些編排通常是在通過(guò)glue code和特定的腳本文件來(lái)有針對性的一一處理,導致了復制成本大、系統脆弱同時(shí)伴隨著(zhù)大量的技術(shù)隱患。
TFX標準化了這些過(guò)程和部件,并把它們整合到單個(gè)平臺上,從而簡(jiǎn)化了平臺編譯的過(guò)程,在確保平臺可靠性、減少服務(wù)崩潰的基礎上,將制作的時(shí)間從數月減少到了數周。

諸如英特爾旗下的Nervana、英偉達、Cerebras和Google等公司全都開(kāi)始研發(fā)能夠加速機器學(xué)習中線(xiàn)性代數運算的下一代硬件架構。且在默認情況下,每種架構都需要獨特的、像cuDNN那樣的底層、手動(dòng)優(yōu)化基元庫。(cuDNN全稱(chēng)是CUDA Deep Neural Network library,是NVIDIA專(zhuān)門(mén)針對深度神經(jīng)網(wǎng)絡(luò )設計的一套GPU計算加速庫。)
想打破這個(gè)趨勢,需要同行們在XLA等更普適的編譯器框架上下更多功夫。
Google的TPU(Tensor Processing Units)目前最有可能打破GPU的統治。每個(gè)Cloud TPU能提供高達每秒180萬(wàn)億次的浮點(diǎn)運算,64GB的超高帶寬存儲空間以及可串聯(lián)的特性。跟之前超級計算機的架構不同,TPU是從零開(kāi)始設計,專(zhuān)門(mén)針對機器學(xué)習中常見(jiàn)的線(xiàn)性代數運算。
TPU是與TensorFlow集成的,Google提供收費云端服務(wù)(Cloud TPU),同時(shí)通過(guò)TensorFlow Research Cloud(TFRC)項目,對想要提前使用TPU的機器學(xué)習專(zhuān)家進(jìn)行補貼,提供1000個(gè)Cloud TPU,希望他們能通過(guò)論文和開(kāi)源軟件來(lái)跟世界分享其研究成果。

小結
像TensorFlow這樣的圖計算和深度學(xué)習庫是未來(lái)計算行業(yè)發(fā)展背后的主要驅動(dòng)力,這推動(dòng)我們去重新審視系統架構,從硬件到編譯器再到更高級的程序語(yǔ)言和設計規范。
于是,繁重的工作擺在了軟件架構師,工程師、研究人員等從業(yè)者面前,但同時(shí)這過(guò)程也很令人興奮。就像Zak在演講中所總結的一樣:
我讀研究生的時(shí)候,這些驚艷的應用大都還不可能實(shí)現——當人們對機器學(xué)習技術(shù)習以為常,然后開(kāi)始做一些我們現在預見(jiàn)不到的事情,會(huì )是什么樣呢?第一批TensorFlow原生的產(chǎn)品會(huì )是什么樣?”
評論