雷锋网 AI 科技评论按:Facebook 对人工智能相关技术的长期大规模投入尽人皆知。这些技术不仅构成了 Facebook 获得盈利的技术基础,Facebook 也宣称它们可以帮助 Facebook 成为一个更安全、更具包容性、更公平的平台。Facebook 对 AI 方面的成果也相当慷慨,不仅秉持着学术研究成果全面开放的作风,他们开发的深度学习框架 PyTorch 也易用、亲民,在工业级应用领域大有赶超谷歌 TensorFlow 之势。
近日在 2019 年 Facebook 开发者大会「F8」上,Facebook 公布了 PyTorch 的重大更新 1.1 版本,同时还发布并开源了其它多个开发工具,继续降低机器学习/深度学习模型开发调试以及深度学习专用硬件设计的门槛。雷锋网 AI 科技评论把更新主要内容介绍如下。
PyTorch 在设计之初就兼顾了科研需要的灵活性、模块性,以及工业级应用部署需要的稳定性和后续支持,它也具有类似 Python 的快速执行特性以及灵活的网络结构动态调整功能。随着 PyTorch 1.0 版本在去年 12 月发布,它也支持了基于图(Graph)的运行、前后端模块间的无缝混合运行、分布式训练、高效移动端部署等功能,此外还可以使用 PyTorch JIT(即时汇编)在图模式和动态图模式之间灵活切换。据 Facebook 介绍,许多企业已经把 AI 科研以及计算机视觉、对话系统、工业优化、自动驾驶等应用迁移到了 PyTorch 平台上运行。
如今 Facebook 正式宣布了 PyTorch v1.1 版本即将到来,包含性能提升、提升易用性的新的理解和视觉工具、新的 API 等。具体更新项目如下:
TensorBoard:TensorBoard 是一个web 应用套件,含有多种针对训练过程以及图的检查理解工具。PyTorch 1.1 中提供了优秀的原生支持,可以把 TensorBoard 用于可视化以及模型 debug。由于是原生支持,只需要一句简单的「from torch.utils.tensorboard import SummaryWriter」指令就可以调用。
JIT 编译器:针对即时汇编进行了多项改进,包括多项 bug 修复,增加了 TorchScript 中的多项功能(比如支持辞典、用户自定义类以及属性)。
新的 API:支持布尔类型张量,以及对用户自定义的循环神经网络提供更好的支持。
分布式训练:提升了 CNN 之类常见模型的性能,增加了多设备模块的支持,包括在使用分布式数据并行化(DDP)的同时为不同的 GPU 指定不同的模型,而且开始支持并不是在每次迭代中都使用所有参数的模型(比如控制流、自适应 softmax 等等)
Facebook 也和机器学习社区内的多个机构合作,孵化更多帮助机器学习工程师们更高效地工作的项目,涉及的方面从提升理解模型的能力一直到用 AutoML 之类的方法自动调节模型。
在宣布 PyTorch v1.1 版本的同时,Facebook 也一并介绍了几个新的开源工具。它们都是已经在 Facebook 大规模部署的成熟项目,有 Facebook 自己开发的工具,也有和谷歌等业界领路人一同开发的产品和服务,都为开放、合作式的机器学习大家庭贡献了一份力量。其中最为重要的是 BoTorch 和 Ax,Facebook 有一篇单独的介绍。
BoTorch:这是一个用于贝叶斯优化科研的基于 PyTorch 的开发库。BoTorch 使用了模块化设计,并且同时使用了基于蒙特卡洛的采集功能和 PyTorch 中的自动微分功能,可以极大提升开发效率。BoTorch 可以和任何 PyTorch 模型集成,这给同时使用贝叶斯优化和深度学习的科研带来了极高的灵活性。另外,贝叶斯优化的样本效率很高,很适合用于测试成本很高的黑盒功能的序列优化。
Ax:Ax 是一个便于使用、通用目的设计的适应性试验平台,它可以管理、部署、自动化机器学习试验。Ax 会使用 BoTorch 中的最新功能,为开发者优化产品、优化技术基础设施提供更多便捷。Ax 也降低了贝叶斯优化、多臂抽奖问题(multiarmed bandit)以及其他复杂试验技巧的使用门槛,帮助研究人员们更好地把科研想法引入到生产中。
PyTorch-BigGraph:这是一个为含有数十亿个节点、数千亿个边的超大规模图生成嵌入的分布式系统。它可以支持分片和逆向采样,并且提供了基于维基百科数据嵌入的使用示例。
Google AI Platform Notebooks:这是一个基于谷歌云平台的新的托管 JupyterLab 服务。数据科学家们可以快速创建支持运行 JupyterLab 的虚拟机,其中还预安装好了最新的 PyTorch。它也和 BigQuery、Cloud Dataproc、Could Dataflow、AI Factory 等 GCP 服务紧密整合,开发者几乎不需要离开 JupyterLab 就可以运行完成的机器学习全流程。
随着 PyTorch 渐入佳境,越来越多的教育平台也开始提供基于 PyTorch 的学习资源;况且 PyTorch 灵活动态的编程环境以及大家熟悉的 Python 界面都让它适合快速实验上手。谷歌 Colab 如今已经提供了交互式的 Jupyter Notebook 环境,为 PyTorch 提供了原生支持,开发者们可以在免费的 CPU 和 GPU 资源上运行任何 PyTorch 教程。斯坦福自然语言处理小组(Stanford NLP)、加州大学伯克利分校计算机视觉小组、加州理工大学机器人课程中都开始把 PyTorch 作为机器学习编程教学平台,MOOC 课程中更是让成千上万的 PyTorch 开发者得以快速学习。
和新版本、新工具一起,Facebook 宣布他们和优达学城(Udacity)建立合作,将在其中的深度学习入门课程中加入 PyTorch 教学,Facebook 还会提供为继续学习完整机器学习学位的参加者提供奖学金。Fast.ai 也将于今年 6 月提供新的使用 PyTorch 的深度学习课程。作为课程内容的一部分,fast.ai 还会更新包括 fastai.audio 库在内的新库作为 PyTorch 模块。
via https://ai.facebook.com/blog/pytorch-adds-new-dev-tools-as-it-hits-production-scale/,雷锋网 AI 科技评论编译