登陆 GitHub 以来,这个项目已经收获了 800 多个 Star。
随着越来越多的企业转向人工智能来完成各种各样的任务,企业很快发现,训练人工智能模型是昂贵的、困难的和耗时的。
一家公司 MosaicML 的目标正是找到一种新的方法来应对这些层出不穷的挑战。近日, MosaicML 推出了一个用于高效神经网络训练的 PyTorch 库「Composer」,旨在更快地训练模型、降低成本,并获得表现更好的模型。
Composer 是一个用 PyTorch 编写的开源库,旨在集成更好的算法来加速深度学习模型的训练,同时实现更低的成本和更高的准确度。目前项目在 GitHub 平台已经收获了超过 800 个 Star。
项目地址:https://github.com/mosaicml/composer
Composer 具有一个功能界面(类似于 torch.nn.functional),用户可以将其集成到自己的训练循环中;它还包含一个 Trainer,可以将高效的训练算法无缝集成到训练循环中。
项目中已经部署了 20 几种加速方法,只需几行代码就能应用在用户的训练之中,或者与内置 Trainer 一起使用。
总体而言,Composer 具备几个亮点:
20 多种加速计算机视觉和语言建模训练网络的方法。当 Composer 为你完成工作时,你就不需要浪费时间尝试复现研究论文。
一个易于使用的 Trainer,其编写的目的是尽可能提高性能,并集成了高效训练的最佳实践。
所有加速方法的功能形式,都允许用户将它们集成到现有的训练循环中。
强大、可重现的基线,让你尽可能地快开始工作。
那么,使用 Composer 能够获得怎样的训练效果提升呢?
多个模型系列的训练中减少的时间和成本。
据项目信息介绍,使用 Composer 训练,你可以做到:
ResNet-101 在 ImageNet 上的准确率在 1 小时 30 分钟内达到 78.1%(AWS 上 49 美元),比基线快 3.5 倍,便宜 71%。
ResNet-50 在 ImageNet 上的准确率在 1 小时 14 分钟内达到 76.51%(AWS 上 40 美元),比基线快 2.9 倍,便宜 65%。
在 4 小时 27 分钟内将 GPT-2 在 OpenWebText 上的困惑度提高到 24.11(AWS 上 145 美元),比基线快 1.7 倍,便宜 43%。
在 Reddit 社区,项目作者 Jonathan Frankle 现身说法,他介绍说,Composer 是自己关于彩票假设研究的直接延续。
2019 年,Frankle 和 Carbin 的《The Lottery Ticket Hypothesis: Finding Sparse, Trainable Neural Networks》获得了 ICLR 2019 的最佳论文荣誉。在这篇论文中,Frankle 等人发现标准的剪枝技术会自然地发现子网络,这些子网络经过初始化后能够有效进行训练。
二人基于这些结果提出了「彩票假设」(lottery ticket hypothesis):密集、随机初始化的前馈网络包含子网络(「中奖彩票」),当独立训练时,这些子网络能够在相似的迭代次数内达到与原始网络相当的测试准确率。
目前,Frankle 是 Mosaic 公司的首席科学家,推动了 Composer 的打造。
这次,Frankle 表示,深度学习背后的「数学」并没有什么神圣之处。从根本上改变「数学」是完全没问题的(比如删除很多权重)。你将获得与其他方式不同的网络,但这不像原始网络是「正确的」网络。如果改变「数学」让你的网络变得同样好(例如同样的准确性)而速度更快,那就是胜利。
如果你愿意打破深度学习背后的「数学」,彩票假设就是一个例子。Composer 有几十种技术可以做到这一点,并且拥有与之匹配的加速。
同时,项目作者们也将 Composer 与 PyTorch Lightning 进行了对比:「PyTorch Lightning 是一个具有不同 API 的不同训练库。实际上,我们在 PTL 之上构建了我们的第一个 Composer 实现。」
PyTorch Lightning 的创建者 William Falcon 也出现在了后续讨论中,但二人似乎未达成共识。
目前,Composer 的训练器可以应用于众多模型,包括对于 Resnet-50、Resnet-101、UNet 和 GPT-2 的加速。
作者表示,未来还将扩展至更多模型,比如 ViT、BERT、分割和目标检测等等。
转自:机器之心
Python中数据模块化你不容错过的库!
1、Scikit Learn
在沉溺于“深度学习”之前,所有人都应当从使用Scikit Learn来开启自己的机器学习之旅。Scikit Learn有六大主要模块,如下:
· 数据预处理
· 维度缩减
· 数据回归
· 数据分类
· 数据聚类分析
· 模型选择
只要能用好Scikit Learn,就已经算得上是一名优秀的数据科学家了。
2、Tensorflow
Tensorflow是由谷歌推出的开源机器学习库。它最受欢迎的功能便是Tensorboard上的数据流图像。
Tensorboard是一个基于网页自动生成的仪表盘,它将数据学习流和结果进行了可视化处理,这一功能对于排错和展示都十分有用。
3、 PyTorch
PyTorch是由Facebook发布的一个开源库,用作Python的公用机器学习框架。与Tensorflow相比,PyTorch的语句更加适用于Python。正因此,学习使用PyTorch也更加容易。
作为一个专注于深度学习的库,PyTorch还具有非常丰富的应用程序接口函数和内置函数来协助数据科学家更加快捷地训练自己的深度学习模型。
更多Python知识,请关注Python视频教程!
PyTorch到底好用在哪里?
PyTorch是个开源的Python机器学习库,在2017年由Facebook人工智能研究院(FAIR)推出面世。很多从业者都很推崇这款工具,下面小编给大家整理了一些关于PyTorch的一些基本知识,给各位网友做个参考。
1、PyTorch的功能强大。PyTorch是基与Torch延伸而来,但二者最大的区别在于PyTorch 使用了Python 作为开发语言。最大的功能亮点在于实现强大的GPU加速同时包含自动求导系统的深度神经网络,这是许多主流框架不支持的。 因此,可以简单可以将PyTorch 看作是加入了GPU支持的numpy。 正是因为它功能强大,所以除了在Fb使用外,Twitter、CMU 和Salesforce等机构都在使用。
2、PyTorch的优点。PyTorch的优点的优点很多,总结下来可以分为几点。第一、核心思想是尽量找一种,最好是唯一一种直观易懂的实现方案;第二、写代码快速;第三、强大的社区支持;第四、代码简单易懂;第五、可以快速实现新的想法。这六点对于程序员来说简直就是福音。
3、学习PyTorch的必要性。正是因为这款工具如此的好用,所以为了提升效率,很多程序员都将它添加进自己的学习计划当中。主要原因有四点:第一、多学一个框架,有备无患;第二、同类型功能的框架中PyTorch是最优秀的;第三、容易查找bug,后期查错非常方便;第四、更加简单直接,可以看懂底层的框架,对程序员的提升肉眼可见。
以上就是小编整理出来的PyTorch的相关知识。广大网友们,你们觉得如何?欢迎评论区留言交流。