在TensorFlow和PyTorch之间,你选择谁?
炼丹师们想必都被TF折磨过,静态图、依赖问题、莫名其妙的改接口,即便是谷歌发布了TF 2.0之后依然没有解决问题。在万般无奈下转投PyTorch后,世界都变晴了。
「人生苦短,我用PyTorch」
甚至从谷歌开始着手宣发新一代计算框架JAX来看,似乎官方都对TF有点放弃的意思了,TensorFlow距离坟墓只有半步之遥。
赶在TF七岁生日之前,TensorFlow的开发团队发布了一个博客,宣布TensorFlow将会继续开发,并且将会在2023年发布全新版本,对接口的脏、乱、差情况进行整改,并承诺100%向后兼容!
TensorFlow战未来
大约七年前,也就是2015年11月9日,TensorFlow正式开源。
也是从那时起,成千上万的开源贡献者和社区内的谷歌开发专家、社区组织者、研究人员和全球教育家都投入到TensorFlow的开发上。
七年后的今天,TensorFlow已然是最常用的机器学习平台,数以百万计的开发人员都在用。
TF是gitHub上排名第三的软件资源库(仅次于 Vue 和 React) ,也是 PyPI 上下载次数最多的机器学习软件包。
TF还将机器学习带入了移动生态系统: TFLite运行在40亿台设备。
TensorFlow 也把机器学习带到了浏览器中: TensorFlow.js的下载次数为每周17万次。
在谷歌的产品系列中,TensorFlow 几乎为所有的生产机器学习提供支持,包括搜索、 GMail、 YouTube、地图、Play、广告、照片等等。
除了谷歌以外,在Alphabet旗下的其他子公司中,TensorFlow和Keras也为Waymo的自动驾驶汽车提供了机器智能的基础。
在更广泛的行业中,TensorFlow 为数千家公司的机器学习系统提供动力,其中包括世界上大多数最大的机器学习用户——苹果、字节跳动、 Netflix、腾讯、 Twitter 等等。
在研究领域,每个月,Google Scholar都会收录超过3000篇新的科学文献中提到TensorFlow或Keras
TF走到今天,其用户基础和开发者生态系统比以往任何时候都更大,并且还在不断增长!
TensorFlow 的发展不仅是一个值得庆祝的成就,而且是一个机会,可以进一步为机器学习社区提供更多的价值。
开发团队的目标是提供地球上最好的机器学习平台,并努力将机器学习从一个小众行业转变为像Web开发一样成熟的产业。
为了实现这一目标,开发团队愿意倾听用户的需求,预测新的行业趋势,迭代软件的接口,并努力使大规模创新变得越来越容易。
机器学习正在迅速发展,TensorFlow 也是如此。
开发团队已经开始研究 TensorFlow 的下一个迭代版本,将支持下一个十年的机器学习开发,一起战未来!
TensorFlow的四大支柱
快速且可扩展:XLA 编译、分布式计算、性能优化
TF将专注于 XLA 的编译,在TPU性能优势的基础上,使大多数模型的训练和推理工作流程在 GPU 和 CPU 上更快。开发团队希望XLA成为深度学习编译器的行业标准,并且作为 OpenXLA 计划的一部分,目前已开源。
同时团队也开始研究可用于大规模模型并行的新接口DTensor,可能会开启超大型模型训练和部署的未来。用户开发大模型时,即便同时使用多个客户端,感知上也像在单机上训练一样。
DTensor将会与tf.distribution的接口进行统一,支持灵活的模型和数据并行。
开发团队还将进一步研究算法性能优化技术,如混合精度和降低精度的计算,可以提供相当大的GPU和TPU的速度提升。
应用机器学习
为计算机视觉和自然语言处理领域提供新工具。
团队正在研究的应用机器学习生态系统,特别是通过 KerasCV 和 KerasNLP 软件包为应用CV和NLP用例提供模块化和可组合的组件,包括大量最先进的预训练模型。
对于开发者来说,团队也将为流行的和新兴的应用机器学习用例添加更多的代码示例、指南和文档,最终目标是逐步减少机器学习的行业壁垒,并将其转变为每个开发人员手中的工具。
更容易部署
开发者将会容易导出模型,比如导出到移动设备(Android 或 iOS)、边缘设备(微控制器)、服务器后端或JavaScript会变得更加简单。
未来,将模型导出到 TFLite 和 TF.js 并优化其推理性能就像调用mod.export ()一样简单。
同时,团队也在开发用于本机服务端推理的公共TF2 C++接口,可以直接作为C++程序的一部分。
不管你是用JAX和TensorFlow Serving开发的模型,还是使用 TensorFlow Lite 和 TensorFlow.js 开发的移动和 Web 模型,都将会变得更容易部署。
更简单
随着机器学习领域在过去几年的扩张,TensorFlow的接口也越来越多,而且并不总是以一致或简单易懂的方式呈现。
开发团队正在积极地整合和简化这些 API,比如对数字采用 NumPy API 标准等。
模型的调试也是一个需要考虑的问题,优秀的框架不仅仅是它的API接口设计,也包括调试体验。
团队的目标是通过更好的调试能力,最大限度地缩短开发任何应用机器学习系统的解决时间。
承诺:100%向后兼容
开发团队希望 TensorFlow 成为机器学习行业的基石,所以API的稳定性也是最重要的特性。
作为一个依赖 TensorFlow 作为产品一部分的工程师,作为一个 TensorFlow 生态系统包的构建者,你可以升级到最新的TensorFlow 版本,并立即享受新功能和性能所带来的改进,而无需担心现有的代码库可能会崩溃。
因此,开发团队承诺从TensorFlow 2到下一个版本完全向后兼容性。
TensorFlow 2代码可以按原样运行,无需进行代码转换,也不需要进行手动更改。
团队计划在2023年第二季度发布 TensorFlow 新功能的预览版,并将在今年晚些时候发布产品版本。