截止2022年11月8日,统计了下github中获星较多的pytorch生态库,有
fastai是一个深度学习库,它为从业者提供了high-level的组件,可以在深度学习领域快速而轻松地提供最先进的结果,并为研究人员提供了low-level的组件,这些low-level的组件可以用来建立新的方法。它的目标是在不对易用性、灵活性或性能做出实质性妥协的情况下完成这两件事。这要归功于一个精心分层的架构,它以解耦抽象的方式表达了许多深度学习和数据处理技术的共同基础模式。通过利用底层Python语言的动态性和PyTorch库的灵活性,这些抽象可以被简洁明了地表达出来。
fastai包括:
fastai主要有两个设计目标:容易理解和快速生产,同时也是可深入配置的。它建立在低级别的API层次之上,提供了可组合的构建块。这样一来,想要重写部分高级API或添加特定行为以满足其需求的用户就不必学习如何使用最低级别的API。
2.Ray
Ray是一个统一的框架,用于扩展人工智能和Python应用程序。Ray由一个核心的分布式运行时和一个用于简化ML计算的工具包(Ray AIR)组成。
核心主要包括:
Ray AIR主要包括:
Ray可以在任何机器、集群、云提供商和Kubernetes上运行,并具有一个不断增长的生态系统。
Horovod是一个用于TensorFlow、Keras、PyTorch和Apache MXNet的分布式深度学习训练框架。Horovod最初是由Uber开发的,目的是使分布式深度学习快速和易于使用,将模型训练时间从几天和几周降到几小时和几分钟。有了Horovod,一个现有的训练脚本只需几行Python代码就可以扩展到数百个GPU上运行。
Horovod可以安装在企业内部,也可以在云平台上开箱即用,包括AWS、Azure和Databricks。Horovod还可以运行在Apache Spark之上,使其有可能将数据处理和模型训练统一到一个管道中。一旦Horovod被配置好,同样的基础设施可以用来训练任何框架的模型,从而可以在TensorFlow、PyTorch、MXNet和未来的框架之间轻松切换。
为何选择Horovod
Horovod的主要动机是使一个单GPU训练脚本能够很容易地在许多GPU上成功地进行扩展,并进行并行训练。这有两个方面。
在Uber内部,MPI模型要简单得多,需要修改的代码比以前的解决方案(如带有参数服务器的分布式TensorFlow)少得多。一旦用Horovod编写了一个训练脚本的规模,它可以在单GPU,多GPU,甚至多个主机上运行,而不需要进一步修改代码。
除了易于使用之外,Horovod还很快速。下面的图表代表了在128台服务器上进行的基准测试,每台服务器有4个Pascal GPU,由具有RoCE功能的25Gbit/s网络连接。
Horovod对Inception V3和ResNet-101的扩展效率达到90%,对VGG-16的扩展效率达到68%。
虽然安装MPI和NCCL本身似乎是一个额外的麻烦,但它只需要由处理基础设施的团队做一次,而公司里其他建立模型的人都可以享受大规模训练模型的简单性。
Flair是一个非常简单的框架,用于最先进的NLP。
Flair主要特点如下:
AllenNLP团队设想了以语言为中心的人工智能,公平地服务于人类并致力于改善NLP系统的性能和可解释性,并推进评估和理解这些系统的科学方法。提供高影响力的研究和精心设计的开源工具,以加速世界各地的NLP研究。
Albumentations是一个用于图像增强的Python库。图像增强被用于深度学习和计算机视觉任务中,以提高训练模型的质量。图像增强的目的是为了从现有的数据中创建新的训练样本。
为什么选择Albumentations
我前面也写过关于albumentation的一点东西,有兴趣可以看看: