当前位置: 首页 > 科技观察

TensorFlow产品经理:未来十年机器学习将如何改变硬件和软件?

时间:2023-03-16 18:32:14 科技观察

近日,GoogleBrain员工、TensorFlow产品经理ZakStone在硅谷创业社区SouthParkCommons进行了演讲,谈到了TensorFlow、XLA、CloudTPU、TFX、TensorFlowLite等新工具和trends如何塑造机器学习的未来。同时,他还暗示了一些尚未对外公开的精彩内容。讲座的标题是“TensorFlow、CloudTPUs和MLprogress”。以下是整个讲座的总结,整理自SouthParkCommons官方博客。作为一个平台,TensorFlow是一场豪赌:它快速、灵活且可用于生产。实验和执行之间的转换必须足够快,以确保工程生产力。静态图像计算用Python等高级灵活的语言表达,而图形编译允许针对特定目标进行精度优化。作为一个开源项目,TensorFlow一直非常成功。自2015年11月发布以来,它已在Github上收到超过20,000次提交。Github版本的TensorFlow会至少每周与谷歌内部镜像文件同步一次。同时,TensorFlow也得到了英特尔、微软、IBM、Rstudio、Minds.ai等公司研发团队大大小小的贡献。为了更好地触达用户,可以提高移动端运行TensorFlow模型效率的TensorFlowLite将于今年晚些时候嵌入到设备中,而像XLA这样的项目更有野心:XLA使用深度学习支持线性Ahead-代数元素的实时和即时编译,为任何目标后端系统生成加速代码。XLA的目标是在层次优化方面取得重大突破,不仅在GPU架构上,而且在任何可以并行放置线性代数元素的架构上。在谷歌内部,在CEOSundarPichai成为“AI-first”公司的号召下,TensorFlow已经被应用到很多项目中。加速开发基于机器学习的软件的趋势不仅发生在谷歌,亚马逊、苹果、百度、Facebook、微软、Salesforce、Uber、Lyft,几乎所有的主流科技公司也都聘请了专业的研发团队来推动机器学习.工业化。在这些公司中,有各种深度学习的开发平台,包括Facebook的PyTorch和Caffe2,微软的CNTK,苹果的CoreML,亚马逊的MXN??et。未来十年软件工程会是什么样子?机器学习的兴起,意味着原本简洁的抽象和模块化设计正在被高维浮点张量和高效矩阵乘法所取代。如果这种趋势持续下去,软件工程行业将会发生变化。谷歌软件工程师D.Sculley曾写过一篇题为《机器学习:技术债务的高息信用卡》的文章,文中他列举了机器学习系统诱发不良软件设计的所有可能性,甚至让这些不良设计成为必要性。他提到,“这些系统的基础代码与普通代码具有相同的复杂性,但在系统层面的复杂性更高,这可能会带来潜在的风险。”(https://research.google.com/pubs/pub43146.html)机器学习系统通过紧密耦合所有系统输入来模糊模型边界和抽象:理想的行为不变性不是来自软件逻辑,而是来自驱动它们的特定外部数据。虽然存在通过静态分析和图形连接来辨别代码可靠性的工具,但一般来说,这些工具不提供分析数据依赖性的方法。DSculley等人在文章中讨论了系统设计的几个缺点,可以引起相关从业者的共鸣:1.GlueCode(粘性代码)系统设计风格,“其中需要编写大量的支持代码,负责在其中传输数据和出于各种目的的安装包”;2.管道丛林(messypipeline),会随着时间的推移而有机地演化,数据准备系统“可能会变得由scape、join和sampling步骤组成的一团糟,通常伴随着中间文件的输出”;3.Configurationdebt(巨大的编译成本),会随着系统和产线的发展逐渐积累,“各种编译选项的集合”,包括所用到的功能有哪些,如何过滤数据,具体学习算法的设置(范围广泛)、潜在的预处理或后处理、验证方法等。”即使在更小、更轻量级的项目上,工程师也常常被以下问题所困扰:1.实验中模型架构和权重的版本——尤其是当模型从不同的系统中借用部分训练模型时,或者借鉴其他模型的权重。2.数据来源和特征版本;3.实验环境和实际生产环境之间的迁移(domainshift);4.监控生产中的推理质量。这些问题的一种可能解决方案是TFX,一个在谷歌内部开发的平台,用于在生产中分发和配置机器学习模型:创建和管理一个可用于可靠地生产和部署机器学习模型的平台需要在许多组件之间进行仔细的编排——生成模型的学习者基于在训练数据上,分析和验证数据和模型的模块,最后是基础设施在生产工程中部署模型。当数据随时间变化,模型不断更新时,平台的管理变得非常困难。不幸的是,这些编排通常是通过胶水代码和特定的脚本文件进行处理,导致复制成本高,系统脆弱,存在大量技术隐患。TFX将这些流程和组件标准化,并将它们集成到一个平台中,从而简化了平台编译过程,将生产时间从几个月缩短到几周,同时确保平台可靠性并减少服务崩溃。未来十年硬件会是什么样子?摩尔定律放缓,让我们重新进入“架构的黄金时代”,见证各种芯片和指令集的飞速发展。英特尔的Nervana、Nvidia、Cerebras和谷歌等公司都在开发下一代硬件架构,以加速机器学习中的线性代数运算。默认情况下,每个体系结构都需要一个独特的低级手动优化基元库,如cuDNN。(cuDNN的全称是CUDADeepNeuralNetworklibrary,是NVIDIA专门为深度神经网络设计的GPU计算加速库。)要打破这个趋势,同行们需要在XLA等更通用的编译框架上多下工夫。谷歌的TPU(TensorProcessingUnits)是目前最有可能打破GPU一统天下的。每个CloudTPU每秒可提供高达180万亿次浮点运算,64GB超高带宽存储空间,以及可串联的特性。与之前的超级计算机架构不同,TPU是从零开始设计的,专门用于机器学习中常见的线性代数运算。TPU与TensorFlow集成。谷歌提供收费的云服务(CloudTPU)。同时,通过TensorFlowResearchCloud(TFRC)项目,资助想要提前使用TPU的机器学习专家,提供1000个CloudTPU。我希望他们能通过论文和开源软件与世界分享他们的研究成果。总结图计算和TensorFlow这样的深度学习库是未来计算产业发展的主要驱动力,促使我们重新审视系统架构:从硬件到编译器再到更高层次的编程语言和设计规范。由此,繁重的工作摆在了软件架构师、工程师、研究人员和其他从业者的面前,但同时过程也很精彩。正如Zak在演讲中总结的那样:当我还在读研究生的时候,这些令人惊叹的应用大多是不可能实现的——当人们习惯了机器学习技术,然后开始做一些我们现在无法预见的事情时,将会是什么它看起来像?第一批TensorFlow原生产品会是什么样子?”