本文转自雷锋网,如需转载请至雷锋网官网申请授权。
微软今天发布了DeepSpeed库的更新版本,该库引入了一种新方法来训练包含数万亿个参数的AI模型,这种模型内部的变量可为预测提供依据。微软称这种技术称为3D并行性,可以适应各种的工作负载需求,特别是为功耗大的超大型模型平衡效率。
具有数十亿个参数的单个大型AI模型在一系列具有挑战性的领域中取得了长足的进步。研究表明它们之所以表现出色,是因为它们可以理解语言、语法、知识、概念和上下文的细微差别,使他们能够总结演讲,在实时游戏聊天中过滤不合适的话语,解析复杂的法律文档,甚至可以通过搜索GitHub生成代码。
但是训练模型需要大量的计算资源。根据2018年OpenAI的分析,从2012年到2018年,在大型AI训练中,计算量的需求增长了300,000倍,也就是大概每3.5个月的时间翻一番,远远超过了摩尔定律的步伐。
增强的DeepSpeed利用三种技术来实现“万亿级”模型训练:数据并行训练、模型并行训练和管线并行训练。
训练一个万亿参数的模型将需要至少400个Nvidia 今年最新推出的A100 GPU(每个内存高达40GB),并且Microsoft估计需要4,000台A100以50%的效率运行,大约需要100天才能完成训练。这与微软和OpenAI共同设计的AI超级计算机无并不匹配,后者包含10,000多个显卡,在这样的超大规模下,很难获得很高的计算效率。
DeepSpeed将大型模型分为四个流水线阶段,分为较小的组件(层)。每个流水线阶段中的层进一步划分为四个“工人(workers)”,它们执行实际的训练。每个管道都在两个并行数据实例之间复制,并且工作程序被映射到多GPU系统。由于有了这些和其他性能改进,微软表示,一个万亿参数的AI模型可以减少到仅需要800个Nvidia V100 GPU训练。
DeepSpeed的最新版本还包含了ZeRO-Offload技术,该技术可利用GPU及其主机CPU上的计算和内存资源,从而在一台V100上训练多达130亿个参数的模型。微软声称这比最新技术强10倍,使得训练人员可以使用更少的计算资源来进行数据科学家的训练。
“这些(DeepSpeed中的新技术)提供了极高的计算、内存和通信效率,并支持数十亿到数万亿个参数的模型训练。” 微软在博客中写道,“这些技术还允许极长的输入序列,并通过单个GPU,具有数千个GPU的高端集群或具有非常慢的以太网网络的低端集群释放硬件系统的能量。我们将(继续)进行快速创新,为深度学习训练突破了速度和规模的界限。”