當谷歌公司第一次向世界講述它的張量處理單元(TPU)時,其背后的策略就顯得很清楚了:通過在定制硬件上拋出問題來加速機器學習。使用商品GPU來訓練機器學習模型;使用自定義TPU部署這些訓練有素的模型。
谷歌公司新一代的TPU旨在在同一芯片上處理培訓和部署這兩項任務。新一代的TPU速度也更快,無論是哪家公司的產(chǎn)品都被稱為“TPUpod”。
但是,更快的機器學習不是這種設計的唯一好處。特別是在這種新形式中,TPU促成了一件事,即谷歌公司構(gòu)建端到端的機器學習流程,涵蓋從數(shù)據(jù)采集到部署訓練有素的模型的所有內(nèi)容。
機器學習:一條管道貫穿其中
現(xiàn)在使用機器學習的最大障礙之一是如何為數(shù)據(jù)輸入、標準化、模型培訓、模型和部署建立一個完整的管道。這些碎片仍然高度不同和不協(xié)調(diào)的。像百度這樣的公司已經(jīng)暗示要創(chuàng)建一個統(tǒng)一的、開箱即用的解決方案,但到目前為止,這還只是一個概念。
出現(xiàn)這種解決方案的最有可能的地方是在云計算中。隨著時間的推移,在默認情況下,為機器學習收集的更多數(shù)據(jù)(以及其他所有內(nèi)容)都存在于此。因此,硬件需要從中產(chǎn)生可執(zhí)行的結(jié)果。給人們一個端到端的云計算機器學習流程,在默認情況下只有幾個旋鈕,他們很樂意在其上面建立起來。
大多數(shù)情況下,谷歌公司的愿景是,盡可能靠近數(shù)據(jù),管道的每個階段都可以在云中執(zhí)行,以達到最佳的速度。使用TPU,谷歌公司還致力于提供許多階段,可根據(jù)需要進行定制硬件加速。
新的TPU旨在通過多種方式提高管道的加速度。一個加速來自多個TPU的組合。另一個來自于能夠從相同的芯片上訓練和部署模型。對于后者,隨著新數(shù)據(jù)的出現(xiàn),逐漸重新訓練模型更加容易,因為數(shù)據(jù)不必一直被移動。
在加速運行的數(shù)據(jù)上的優(yōu)化也符合其他機器學習性能的改進,如一些提議的Linux內(nèi)核修復和用于機器學習數(shù)據(jù)訪問的通用API。
但是企業(yè)愿意把自己鎖定在開源深度學習平臺TensorFlow中嗎?
谷歌公司的愿景可能有一個缺點:TPU提供的性能提升只有在用戶使用正確的機器學習框架時才有效。這意味著谷歌公司采用自己的TensorFlow。
這并不是說TensorFlow是一個不好的框架;事實上,這是很好的。但它只是一個多個框架,每個框架都適合不同的需求和用例。所以TPU限制支持只是TensorFlow意味著用戶不得不使用它,無論其適合,如果用戶希望從谷歌公司的ML云中獲取最高性能。另一個框架可能更方便地用于特定作業(yè),但是它可能不會快速地進行訓練或預測,因為它將被委托僅在GPU上運行。
這也排除了谷歌可能推出其他硬件的可能性,如用戶可編程的FPGA,以允許不直接由谷歌公司推出的框架也具有優(yōu)勢。
但是對于大多數(shù)人來說,使用TPU加速某些事情的不便之處遠遠超過了為機器學習工作提供管理的基于云計算的一體機管道的便利性。所以,無論喜歡與否,他們都會使用TensorFlow。