最近,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官方博客。 而加速研究基于机器学习软件的趋势不仅在Google身上发生,亚马逊,iPhone,百度,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内部研究的平台,用来在生产中分布和供应机器学习模型:
TFX标准化了这些过程和部件,并把它们整合到单个平台上,从而简化了平台编译的过程,在确保平台可靠性、减少服务崩溃的基础上,将制作的时间从数月减少到了数周。 未来十年,硬件会变成什么样? 摩尔定律放缓,使得我们得以重新进入“架构的黄金年代”,见证各式各样芯片和指令集的飞速发展。 诸如英特尔旗下的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这样的图计算和深度学习库是未来计算行业发展背后的主要驱动力,这推动我们去重新审视系统架构,从硬件到编译器再到更高级的程序语言和规划规范。 于是,繁重的工作摆在了软件架构师,工程师、研究人员等从业者面前,但同时这过程也很令人兴奋。就像Zak在演讲中所总结的一样:
|