还有人在用 Chainer 吗?可能很多开发者都没有听说过这个名字,但是提起同类型的 TensorFlow、Keras、Caffe 框架,大部分开发者应该就懂这个框架的作用了。出现至今,Chainer 就被冠以“小众”的称号。如今,属于 Chainer 的时代也要结束了,其母公司 Preferred Networks(以下简称“PFN”)正式宣布转向 PyTorch,随着最新升级版本 v7 的发布, Chainer 将进入维护阶段。Preferred Networks 将为 Chainer 用户提供文档和库以便他们将项目迁移至 PyTorch。
Chainer 终是落下帷幕
12 月 5 日,日本人工智能领域初创公司 Preferred Networks 总裁兼 CEO Toru Nishikawa 宣布,为加快深度学习技术的实施以及探索自身更具竞争优势的新领域,公司计划逐步将其深度学习框架(研究和开发的基础技术)从 Chainer 迁移到PyTorch。
同时,公司还将与Facebook和 PyTorch 社区的其他贡献者合作,积极参与 PyTorch 的开发。随着最新升级版本 v7 的发布, Chainer 将进入维护阶段。Preferred Networks 将为 Chainer 用户提供文档和库以便他们将项目迁移至 PyTorch。
Toru Nishikawa 就这一商业决定做出了如下解释:
“自开始使用深度学习框架以来,Chainer 一直是我们能与丰田、发可那等生意伙伴展开合作的基础技术支撑。正是因为 Chainer,我们才能有机会与英伟达和微软等大型跨国公司合作。有了合作伙伴、社区和用户的大力支持才有了现在的 Chainer,Chainer 对公司的重要性不言而喻。所以从 Chainer 迁移到 PyTorch 对公司来说是一个艰难的决定。但是,我们坚信,在参与开发 PyTorch 后,公司能够进一步加快深度学习技术的实施,革新 Chainer 开发技术,同时寻找对公司来说具有竞争优势的新领域。”
为什么要迁移?
相比于TensorFlow、Keras、Caffe这些深度学习框架,Chainer 在除日本之外的其他地区的存在感一直不是很高,尽管其GitHub代码库非常活跃,但却并没能引起业界应有的重视。
自 2015 年 6 月开源以来,Chainer 一直作为基础技术支持 PFN 的研发,并为其业务增长做出了重大贡献。它独特的 Define-by-Run 方法受到了研究员和开发者社区的青睐。它可以让用户直观、灵活地构建复杂的神经网络,加快深度学习技术的进步,被当前主流深度学习框架视为标准方法广泛使用。
近年来,深度学习框架逐步成熟,将深度学习框架本身当成竞争优势的时代已经结束。PFN 认为,目前阶段,与其做一些无关痛痒的改变从竞争者中脱颖而出,还不如大刀阔斧地革新技术,与像Facebook这样的 PyTorch 社区贡献者合作,确保 PyTorch 在健康的生态系统中保持可持续增长,从而进一步推动深度学习技术的发展。
据 Toru Nishikawa 称,其实 Chainer 是 PyTorch 的灵感来源之一,PyTorch 的 autograd 库和 nn.Module 本身是基于 Chainer 的API设计的。虽然 Chainer 在操作上已经足够简单便捷,但是它覆盖的使用者和应用范围相比于 PyTorch 相去甚远。PyTorch 在学术界日益占据主导地位,让我们来看一下数据。下图显示了 PyTorch 论文和使用 TensorFlow 或 PyTorch 的论文之间的比率。PyTorch 今年在机器学习领域的表现几乎碾压其他学习框架,69%的 CVPR 论文、75%以上的 NAACL 和 ACL 论文、50%以上的 ICLR 和 ICML 论文都使用了该框架。
目前,PyTorch 已经成为增长最快的深度学习框架。仅在 2019 年上半年,ArXiv 论文中 PyTorch 的引用量增长了 194%;PyTorch 平台的贡献者数量比去年增长了 50% 以上,达到近 1200 人。
PyTorch 为什么深受研究人员喜爱?
简单。 它与 numpy 类似,非常 Python 化,并且可以很容易地与 Python 生态系统的其他部分集成。例如,你可以简单地在 PyTorch 模型中的任何地方插入一个 pdb 断点,这样就可以起作用了。如果是 TensorFlow 的话,调试模型需要一个活动的会话,最终会使事情变得更加棘手。
卓越的 API。 大多数研究人员更喜欢 PyTorch 的 API,而不是 TensorFlow 的 API。部分原因是 PyTorch 的设计更好,还有部分原因是因为 TensorFlow 需要通过多次切换 API ,从而阻碍了自身的发展(如,“layers”→“slim”→“estimators”→“tf.keras”)。
性能。 尽管 PyTorch 的动态图提供的优化机会严格来说很少,但还是有很多传闻称,PyTorch 的速度甚至比 TensorFlow 还要快。目前尚不清楚这些传闻究竟是否真的,但至少,在这一领域中,TensorFlow 并没有取得决定性的优势。
迁移是众望所归
PFN 将把它的深度学习研究平台迁移到 PyTorch,从而使机器学习开发能够实现灵活成型以及从研究到生产的平稳过渡。PyTorch 背后是包括 Facebook 在内的庞大的开发者阵容,还拥有着专注于研发的开发者社区,它也是学术论文中最常用的框架之一。迁移后,PFN 能有效地将其最新研究成果整合到研发活动中,并能对现有的 Chainer 资产加以利用(前提是这些现有 Chainer 资产已经转换成 PyTorch 资产)。PFN 将与 Facebook 和开源社区的 PyTorch 团队合作共同促进 PyTorch 的开发,并在 PFN 开发的深度学习处理器MN-Core 上支持 PyTorch。
PFN 将与 Facebook 和开源社区的 PyTorch 团队合作,为 PyTorch 的开发做出贡献,并支持目前由 PFN 开发的深度学习处理器 MN-Core 上的 PyTorch。
针对 PFN 此举,Facebook 公司和丰田研究院也发表了各自的看法:
Facebook 人工智能基础设施副总裁 Bill Jia:
“作为 PyTorch 的主要贡献者,我们很高兴像 PFN 这样的机器学习领域先行者能采用 PyTorch 作为未来开发框架,”Bill Jia 说道。“PyTorch 对前沿技术研究的实现以及其分布式训练和推理能力,能让 PFN 为客户快速创建原型并将 ML 模型部署到生产环境中。”
同时,考虑到组织在 ML 工具方面的专业知识,整个 PyTorch 社区都将从 PFN 代码贡献中受益。”
丰田研究院 CEO Gill Pratt:
“丰田研究院(Toyota Research Institute,简称 TRI)和丰田高级开发研究所(Toyota Research Institute – Advanced Development,简称 TRI-AD)很高兴看到 PFN 做出这个决定,”Gill Pratt 说道。“PFN 最初创建了 Chainer 并一直在进行积极维护,这为我们在自动驾驶领域的研发和高级开发做出了巨大贡献。TRI 和 TRI-AD 使用 PyTorch 也有一段时间了,他们认为采用 PyTorch 后,促进了我们对 PFN 深度学习的应用。”
最新版深度学习框架 Chainer v7 的主要特征以及 CuPy v7 通用矩阵计算库:
Chianer v7 与基于 C++的 ChainerX 之间相互操作更加流畅:
· Chainer v7 包含分布式深度学习工具包ChainerMN,大部分 Chainer 功能都支持 ChainerX;
· 添加了 TabularDataset 类,以灵活地处理多列数据集;
· 整合 ONNX 和 Chainer,Chainer v7 可以通过ONNX与不同推理引擎一起使用;
关于最新版 Chainer 的全部功能介绍,可以访问这里。
结语
一直以来,Facebook PyTorch 和谷歌 TensorFlow 的较量从未停止。此次,日本 PFN 公司转战 PyTorch 是二者持续竞争的最新进展。不难预测,PyTorch 的热度将持续走高,但现在推测它是否以及何时会形成垄断趋势还为时过早。
Preferred Networks 背景介绍
据日经指数调查显示,Preferred Networks 以 3515 亿日元(合 32.4 亿美元)的企业估值位列 181 家日本初创企业之首。自 2014 年成立以来,日本汽车制造商丰田一直与 Preferred Networks 密切合作,并已向该公司的深度学习、机器人和自动驾驶研发投入逾 110 亿日元(合 1.01 亿美元)。
评论