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

简介:
本文来自AI新媒体量子位(QbitAI)

最近,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官方博客。

3c6817ec73874e358bfcf5fb84903d34a3c23afd

作为一个平台来说,TensorFlow算是一场豪赌:它兼顾了快速灵活,还可用于生产。实验和执行之间的转换要足够快,才能保证工程生产力,静态图像计算通过Python等高级灵活的语言来表示,同时图编译允许对特定目标进行准确度优化。

89c9ff9de26ba7587623968ad4ab2e58cfab70b6

作为一个开源项目,TensorFlow极为成功,它从2015年11月发布至今在Github上已经获得了超过20,000个commit。Github版的TensorFlow每周与Google内部镜像文件之间至少会进行一次双向同步,同时TensorFlow也收获了来自Intel,Microsoft,IBM,Rstudio,Minds.ai以及其他公司研发团队的大大小小的贡献。

3336ad08bd10140abc43df55df10c7cc78f8b539

为了更好地触及用户,能够在移动端上提高运行TensorFlow模型效率的TensorFlow Lite将会在今年晚些时候内嵌到设备中,而像是XLA这样的项目更具野心:XLA使用深度学习来支持线性代数元的先时和实时编译,从而为任意的目标后端系统生成加速过的代码。XLA的目标是在递阶优化上实现重大突破,不仅是在GPU架构上,而是要在任意能够平行放置线性代数元的架构上实现突破。

3293e2ff08b92e4f9fbd8f067893c4292da06b10

谷歌内部,在CEO Sundar Pichai要成为“AI-first”公司的号召下,TensorFlow被应用到非常多的项目当中。

而加速研发基于机器学习软件的趋势不仅在Google身上发生,亚马逊,苹果,百度,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的文章:https://research.google.com/pubs/pub43146.html

机器学习系统通过将所有系统输入紧密耦合,模糊了模型边界和抽象:理想的行为不变性不是来自软件逻辑,而是来自于驱动它们的特定外部数据。尽管存在通过静态分析和图连接来辨别代码可靠性的工具,但总体上,这些工具并没有办法用来分析数据的相关性。

D Sculley等人在文章中讨论了几种系统设计中的劣势,很能与相关从业者产生共鸣:

1. Glue Code(粘滞的代码)系统设计样式,“在这其中需要写大量的支持代码负责把数据传入、传出各种用途的安装包”;

2. Pipeline jungles(乱七八糟的流水线),它会随时间有机地演变,数据准备系统“可能会变成由scape,join和sampling步骤组成的一团乱麻,通常还伴随着中间文件的输出”;

3. Configuration debt(庞大的编译代价),将会随着系统和生产线的研发而逐渐累积,集合了“各种编译选项,包括使用的特征有哪些,怎样筛选数据,特定学习算法的设置(范围很宽),潜在的预处理或者后处理,验证方法等等。”

即使在更小、更轻量化的项目中,工程师还会被以下这些问题困扰:

1. 在实验中模型架构和权重的版本——尤其是当模型从不同体系借来了部分与训练模型,或者从其他模型借来了权重的时候。

2. 数据来源和特征的版本;

3. 在实验环境和实际生产环境之间的迁移(domain shift);

4. 监测生产中推断的质量。

解决这些问题的一个可能方案是TFX,它是一个Google内部研发的平台,用来在生产中分布和供应机器学习模型:

创造和管理一个可用于可靠地生产和部署机器学习模型的平台,需要在很多部件之间进行细致编排——这些部件包括基于训练数据生成模型的学习器、用于分析和验证数据和模型的模块、以及最终在生产工程中用于部署模型的基础架构。当数据随着时间变化且模型在连续更新时,平台的管理就变得非常难。

不幸的是,这些编排通常是在通过glue code和特定的脚本文件来有针对性的一一处理,导致了复制成本大、系统脆弱同时伴随着大量的技术隐患。

TFX标准化了这些过程和部件,并把它们整合到单个平台上,从而简化了平台编译的过程,在确保平台可靠性、减少服务崩溃的基础上,将制作的时间从数月减少到了数周。

4369223a67c0c15f49a4a0822b5af8c7cceedafd

未来十年,
硬件会变成什么样?

摩尔定律放缓,使得我们得以重新进入“架构的黄金年代”,见证各式各样芯片和指令集的飞速发展。

诸如英特尔旗下的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,希望他们能通过论文和开源软件来跟世界分享其研究成果。

5b59f4d207c9fc392faf12d6ed05e0a0f66054ce

小结

像TensorFlow这样的图计算和深度学习库是未来计算行业发展背后的主要驱动力,这推动我们去重新审视系统架构,从硬件到编译器再到更高级的程序语言和设计规范。

于是,繁重的工作摆在了软件架构师,工程师、研究人员等从业者面前,但同时这过程也很令人兴奋。就像Zak在演讲中所总结的一样:

我读研究生的时候,这些惊艳的应用大都还不可能实现——当人们对机器学习技术习以为常,然后开始做一些我们现在预见不到的事情,会是什么样呢?第一批TensorFlow原生的产品会是什么样?”

本文作者:王瀚宸
原文发布时间:2017-08-28
相关文章
|
8天前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
28 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
18天前
|
机器学习/深度学习 TensorFlow API
机器学习实战:TensorFlow在图像识别中的应用探索
【10月更文挑战第28天】随着深度学习技术的发展,图像识别取得了显著进步。TensorFlow作为Google开源的机器学习框架,凭借其强大的功能和灵活的API,在图像识别任务中广泛应用。本文通过实战案例,探讨TensorFlow在图像识别中的优势与挑战,展示如何使用TensorFlow构建和训练卷积神经网络(CNN),并评估模型的性能。尽管面临学习曲线和资源消耗等挑战,TensorFlow仍展现出广阔的应用前景。
46 5
|
1月前
|
机器学习/深度学习 人工智能 算法
【玉米病害识别】Python+卷积神经网络算法+人工智能+深度学习+计算机课设项目+TensorFlow+模型训练
玉米病害识别系统,本系统使用Python作为主要开发语言,通过收集了8种常见的玉米叶部病害图片数据集('矮花叶病', '健康', '灰斑病一般', '灰斑病严重', '锈病一般', '锈病严重', '叶斑病一般', '叶斑病严重'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。再使用Django搭建Web网页操作平台,实现用户上传一张玉米病害图片识别其名称。
56 0
【玉米病害识别】Python+卷积神经网络算法+人工智能+深度学习+计算机课设项目+TensorFlow+模型训练
|
2月前
|
机器学习/深度学习 算法 TensorFlow
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
交通标志识别系统。本系统使用Python作为主要编程语言,在交通标志图像识别功能实现中,基于TensorFlow搭建卷积神经网络算法模型,通过对收集到的58种常见的交通标志图像作为数据集,进行迭代训练最后得到一个识别精度较高的模型文件,然后保存为本地的h5格式文件。再使用Django开发Web网页端操作界面,实现用户上传一张交通标志图片,识别其名称。
106 6
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
|
3月前
|
持续交付 测试技术 jenkins
JSF 邂逅持续集成,紧跟技术热点潮流,开启高效开发之旅,引发开发者强烈情感共鸣
【8月更文挑战第31天】在快速发展的软件开发领域,JavaServer Faces(JSF)这一强大的Java Web应用框架与持续集成(CI)结合,可显著提升开发效率及软件质量。持续集成通过频繁的代码集成及自动化构建测试,实现快速反馈、高质量代码、加强团队协作及简化部署流程。以Jenkins为例,配合Maven或Gradle,可轻松搭建JSF项目的CI环境,通过JUnit和Selenium编写自动化测试,确保每次构建的稳定性和正确性。
62 0
|
3月前
|
缓存 开发者 测试技术
跨平台应用开发必备秘籍:运用 Uno Platform 打造高性能与优雅设计兼备的多平台应用,全面解析从代码共享到最佳实践的每一个细节
【8月更文挑战第31天】Uno Platform 是一种强大的工具,允许开发者使用 C# 和 XAML 构建跨平台应用。本文探讨了 Uno Platform 中实现跨平台应用的最佳实践,包括代码共享、平台特定功能、性能优化及测试等方面。通过共享代码、采用 MVVM 模式、使用条件编译指令以及优化性能,开发者可以高效构建高质量应用。Uno Platform 支持多种测试方法,确保应用在各平台上的稳定性和可靠性。这使得 Uno Platform 成为个人项目和企业应用的理想选择。
66 0
|
3月前
|
API UED 开发者
如何在Uno Platform中轻松实现流畅动画效果——从基础到优化,全方位打造用户友好的动态交互体验!
【8月更文挑战第31天】在开发跨平台应用时,确保用户界面流畅且具吸引力至关重要。Uno Platform 作为多端统一的开发框架,不仅支持跨系统应用开发,还能通过优化实现流畅动画,增强用户体验。本文探讨了Uno Platform中实现流畅动画的多个方面,包括动画基础、性能优化、实践技巧及问题排查,帮助开发者掌握具体优化策略,提升应用质量与用户满意度。通过合理利用故事板、减少布局复杂性、使用硬件加速等技术,结合异步方法与预设缓存技巧,开发者能够创建美观且流畅的动画效果。
81 0
|
3月前
|
UED 存储 数据管理
深度解析 Uno Platform 离线状态处理技巧:从网络检测到本地存储同步,全方位提升跨平台应用在无网环境下的用户体验与数据管理策略
【8月更文挑战第31天】处理离线状态下的用户体验是现代应用开发的关键。本文通过在线笔记应用案例,介绍如何使用 Uno Platform 优雅地应对离线状态。首先,利用 `NetworkInformation` 类检测网络状态;其次,使用 SQLite 实现离线存储;然后,在网络恢复时同步数据;最后,通过 UI 反馈提升用户体验。
94 0
|
3月前
|
开发者 算法 虚拟化
惊爆!Uno Platform 调试与性能分析终极攻略,从工具运用到代码优化,带你攻克开发难题成就完美应用
【8月更文挑战第31天】在 Uno Platform 中,调试可通过 Visual Studio 设置断点和逐步执行代码实现,同时浏览器开发者工具有助于 Web 版本调试。性能分析则利用 Visual Studio 的性能分析器检查 CPU 和内存使用情况,还可通过记录时间戳进行简单分析。优化性能涉及代码逻辑优化、资源管理和用户界面简化,综合利用平台提供的工具和技术,确保应用高效稳定运行。
84 0
|
8天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
垃圾识别分类系统。本系统采用Python作为主要编程语言,通过收集了5种常见的垃圾数据集('塑料', '玻璃', '纸张', '纸板', '金属'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对图像数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。然后使用Django搭建Web网页端可视化操作界面,实现用户在网页端上传一张垃圾图片识别其名称。
36 0
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络

热门文章

最新文章

下一篇
无影云桌面