谷歌第一次向全世界介绍TPU(Tensor Processing Unit)时,其背后的战略方向已经很清楚了:通过设计并使用专用的硬件来提高机器学习的速度。使用商品化的GPU来训练机器学习模型,使用定制的TPU来部署那些经过定制的模型。
新一代谷歌TPU的设计旨在处理这两项任务:训练和部署——在同一个芯片上。无论其独立运行还是与其他TPU向外扩展构成一个名为“TPU pod”的小型集群时,新一代TPU的速度也更快。
但是,使机器学习更快速并不是这种设计的唯一好处。TPU,尤其是这种新形式,构成了另一项内容,即谷歌构建端对端机器学习流程,涵盖从数据输入到部署训练模型的所有内容。
机器学习:一条流程贯穿其中
目前,机器学习的最大障碍之一是,为数据输入、规范化、模型训练、模型和部署提供一个完整的流程是非常困难的。这些碎片化的流程仍然高度分散,不协调。像百度这样的公司已经暗示过想要建立一个简单的、统一的、无需包装的的解决方案,但是到目前为止,这只是一个概念。
这种解决方案最有可能出现在云计算中。随着时间的推移,越来越多的机器学习数据(以及其他相关的东西)将会默认被保存在云上。而且硬件也需要产生一个可操作的结果。给人们一个端对端的、在云上的机器学习工作流,默认情况下只有几个按钮的话,人们会很乐意在上面构建机器学习应用的。
这样的方式已经快要实现了,谷歌的愿景是每一个阶段都能够以尽可能快的速度在云中执行,以尽可能快的速度接近数据。通过TPU,谷歌还试图提供多阶段的定制硬件加速,可以按需扩展。
新的TPU旨在以多种方式促进流程加速,一种加速来自于将多个TPU组合起来的能力,另一种方式是能够在同一块硅片上训练和部署模型。对于后一种情况,随着新数据的出现,对模型进行增量再培训会变得更加容易,因为数据不需要移动太多。
这种优化——在数据上运行以便加快操作速度——与其他机器学习性能的改进是一致的,比如一些推荐的Linux内核补丁和用于机器学习数据访问的通用API。
你是否愿意将自己捆绑在Tensor Flow?
谷歌的计划可能会有一个缺点:只有当你使用正确的机器学习框架时,TPU所提供的性能提升才会产生作用,也就是谷歌自己的Tensor Flow。
这并不是说Tensor Flow是一个糟糕的框架,事实上,它是相当不错的。但它只是众多框架中的一个,而每个框架适合不同的需求和用例。因此,TPU只支持Tensor Flow的限制意味着如果你想从谷歌的机器学习云中获得最大的性能,你就必须使用它,无论它是否合适。其他的框架对于特定的工作来说可能更方便,但它可能不会很快的对预测进行训练和服务,因为它只能在GPU上运行。
这并没有排除谷歌引入其他硬件的可能——如客户可重新编程的FPGA,会使不直接由谷歌发起的框架同样具有优势。
但对于大多数人来说,拥有一个可管理的、基于云的“一站式”机器学习工作流程所带来的便利,远远超过TPU所带来的一些不便之处。所以,Tensor Flow的优势仍然是显而易见的。
本文转自d1net(转载)