干货!分享 10 个用于并行和分布式机器学习任务的Python框架

如今,神经网络模型已经非常深入和复杂,需要学习很多的权重。训练此类模型非常具有挑战性。数据科学家需要建立分布式训练,检查点等。即使如此,数据科学从业者也可能无法达到理想的性能和收敛速度。训练大型模型更具挑战性,因为模型很容易耗尽内存。

在本文中,我将分享 10 个 Python 框架列表,这些框架使我们能够对分布式和并行化深度学习模型有更深刻的认知。

1、Elephas

Elephas 是 Keras 的扩展,它可以使用 Spark 大规模运行分布式深度学习模型。 Elephas 保持了 Keras 的简单性和高可用性,从而允许对分布式模型进行快速原型制作,该模型可以在海量数据集上运行。 Elephas 当前支持许多应用程序,包括:深度学习模型的数据并行训练分布式超参数优化集成模型的分布式训练。

安装

pip install elephas

Github 链接

https://github.com/maxpumperla/elephas

2、FairScale

FairScale 是 PyTorch 扩展库,用于在一台或多台机器/节点上进行高性能和大规模培训。该库扩展了基本的PyTorch功能,同时添加了新的实验功能。
FairScale支持:

  • 并行
  • 分片训练
  • 大规模优化
  • GPU内存优化
  • GPU速度优化

安装

pip install fairscale

Github 链接

https://github.com/facebookresearch/fairscale

3、TensorFlowOnSpark

通过将TensorFlow深度学习框架中的突出功能与Apache Spark和Apache Hadoop相结合,TensorFlowOnSpark可以在GPU和CPU服务器集群上实现分布式深度学习。

它支持在Spark集群上进行分布式TensorFlow训练和推理,其目标是最大程度地减少在共享网格上运行现有TensorFlow程序所需的代码更改量。

TensorFlowOnSpark由Yahoo开发,用于在Yahoo私有云中的Hadoop集群上进行大规模分布式深度学习。

安装

# for tensorflow>=2.0.0
pip install tensorflowonspark

# for tensorflow<2.0.0
pip install tensorflowonspark==1.4.4

Github 链接

https://github.com/yahoo/TensorFlowOnSpark

4、DeepSpeed

DeepSpeed 是一个深度学习优化库,它使分布式训练变得容易、高效和有效。

DeepSpeed为所有人提供了极端规模的模型训练,从在大型超级计算机上进行训练到在低端群集甚至在单个GPU上进行训练的人员:

  • 极端规模:将当前的GPU群集与数百种设备结合使用,实现3D并行 DeepSpeed 可以有效地训练具有数万亿参数的深度学习模型。
  • 极高的内存效率:DeepSpeed 的ZeRO-Offload 仅需一个 GPU,即可训练超过10B参数的模型,比现有技术大10倍,使数十亿参数的模型训练民主化,从而使许多深度学习科学家可以探索更大更好的模型。
pip install deepspeed

Github 链接

https://github.com/microsoft/DeepSpeed

5、Horovod

Horovod 是一个针对TensorFlow,Keras,PyTorch和Apache MXNet的分布式深度学习训练框架。

Horovod的目标是使分布式深度学习快速且易于使用。一旦使用Horovod编写了可扩展的培训脚本,它就可以在单GPU,多GPU甚至是多个主机上运行,而无需进行任何其他代码更改。

除了易于使用之外,Horovod速度也很快。 下面的图表表示基准测试是在128个服务器上完成的,该服务器具有 4 个 Pascal GPU,每个GPU均通过支持RoCE的 25 Gbit/s网络连接:

安装

#To run on CPUs
pip install horovod
#To run on GPUs with NCCL
HOROVOD_GPU_OPERATIONS=NCCL pip install horovod

Github 链接

https://github.com/horovod/horovod

6、Mesh TensorFlow

Mesh TensorFlow(mtf)是一种用于分布式深度学习的语言,能够指定广泛的分布式张量计算类。Mesh TensorFlow的目的是为硬件/处理器上的计算图形式化并实施分配策略。

例如:将批处理拆分成多个处理器行,并将隐藏层中的各个单元拆分成多个处理器列。Mesh TensorFlow被实现为 TensorFlow 上的一层。

安装

pip install mesh-tensorflow

Github 链接

https://github.com/tensorflow/mesh

7、BigDL

BigDL 是 Apache Spark 的分布式深度学习库,使用 BigDL,用户可以将其深度学习应用程序编写为标准 Spark 程序,这些程序可以直接在现有Spark或Hadoop集群上运行。

为了简化构建Spark和BigDL应用程序的过程,提供了一个高级Analytics Zoo,用于端到端Analytics AI管道:

  • 丰富的深度学习支持。
  • 高性能
  • 有效地横向扩展

安装

pip install BigDL

Github 链接

https://bigdl-project.github.io/master/#

8、Analytics Zoo

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AiP0zpSc-1615728376432)(https://imgkr2.cn-bj.ufileos.com/37635600-5187-411f-869b-d6f480dc594d.jpg?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=en5ugAbT6a%252FfYrjIDSC4wYx9Dq0%253D&Expires=1615299398)]
Analytics Zoo 无缝地将TensorFlow,Keras和PyTorch扩展为分布式大数据。

  • 用于将AI模型应用于分布式大数据的端到端管道,使用Spark代码内联编写TensorFlow或PyTorch,以进行分布式训练和推理
  • Spark ML管道中的本机深度学习(TensorFlow / Keras / PyTorch / BigDL)支持
  • 可扩展的AutoML用于时间序列预测

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vHWdJWsl-1615728376434)(https://static01.imgkr.com/temp/7fa53fdf2e004d6ab34f06ec4e483179.jpg)]

安装

pip install analytics-zoo

Github 链接

https://github.com/intel-analytics/analytics-zoo

9、Petastorm

Petastorm 是由 Uber ATG 开发的开源数据访问库。该库支持直接从Apache Parquet格式的数据集中进行单机或分布式培训以及对深度学习模型的评估。

Petastorm支持流行的基于Python的机器学习(ML)框架,例如Tensorflow,PyTorch和PySpark。也可以从纯Python代码中使用它。

安装

pip install petastorm

Github 链接

https://github.com/uber/petastorm

10、Apache SINGA

Apache SINGA 是一个 Apache 顶级项目,致力于深度学习和机器学习模型的分布式培训。

  • 可扩展性:SINGA使培训并行化并优化通信成本,以提高培训的可扩展性。
  • 效率:SINGA建立计算图以优化训练速度和内存占用。
  • 可用性:SINGA具有简单的软件堆栈和Python界面以提高可用性。

安装

#CPU only
conda install -c nusdbsystem -c conda-forge singa-cpu=3.1.0
#GPU with CUDA and cuDNN (CUDA driver >=384.81 is required)
conda install -c nusdbsystem -c conda-forge singa-gpu=3.1.0

官方链接

http://singa.apache.org/

技术交流

欢迎转载、收藏本文,码字不易,有所收获点赞支持一下!

为方便进行学习交流,本号开通了技术交流群,添加方式如下:

直接添加小助手微信号:pythoner666,备注:CSDN+python,或者按照如下方式添加均可!
在这里插入图片描述

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值