【重磅】Jeff Dean等提出自动化分层模型,优化CPU、GPU等异构环境,性能提升超 60%

简介: 谷歌大脑Jeff Dean等人最新提出一种分层模型,这是一种灵活的端到端方法,用于优化CPU、GPU等的自动化设备配置。该方法在多个主要神经网络模型上测试,最高实现了60.6%的性能提升。

谷歌大脑Jeff Dean等人最新提出一种分层模型,用于将计算图有效地放置到硬件设备上,尤其是在混合了CPU、GPU和其他计算设备的异构环境中。

设备配置(Device placement)可以被框定为学习如何在可用设备之间对图进行分区,将传统的图分区方法作为一个自然的baseline。先前的工作有Scotch 提出的一个用于图分区的开源库,其中包括k-way Fiduccia-Mattheyses, Multilevel 方法, Band 方法, Diffusion 方法和Dual Recursive Bipartitioning Mapping。

我们此前已经提出利用深度网络和强化学习进行组合优化[4,13,20]。ColocRL [13]使用一个递归神经网络(RNN)策略网络来预测计算图中操作的位置。虽然这种方法优于传统的图形分区启发式算法和人类专家配置方法,但它仅限于小图形(少于1000个节点),并且需要人类专家手动将图分配到配置组中,作为预处理步骤。

在本文中,我们介绍了一种更灵活的端到端方法,该方法学习优化具有数万个操作的神经网络的设备配置。与以前需要人工专家提供硬件属性或手动集群操作的方法不同,这一方法是自动化的,可以扩展到更大的计算图和新的硬件设备上。对于Inception-V3 [19],ResNet [7],语言建模[10]和神经机器翻译[22]等模型,这一方法在多种设备上找到了有意义的配置。我们的模型找到的配置优于TensorFlow的默认配置[1],Scotch算法的配置以及人类专家的配置,从而实现每个训练步骤的运行时间减少高达60.6%

分层策略网络方法:Grouper + Placer

我们训练了一个分层策略网络(hierarchical policy network),可以产生优化的配置。该策略网络由两个子网络组成:一个叫Grouper,作用是在输入TensorFlow图中将操作分配给groups;以及一个Placer,作用是将groups分配给目标设备。我们使用策略梯度方法来联合训练两个子网络,并将预测配置的运行时间(runtime)作为网络的reward,如图1所示。


图1:设备配置的分层模型

我们将这一方法称为“分层规划器”(Hierarchical Planner),它的目的是将目标神经网络的一个前向通道,一个反向传播通道和一个参数更新的运行时间最小化。为了测量运行时间,预测的配置需要在实际的硬件上运行。

Grouper是一个前馈模型,Placer是一个序列 - 序列模型,具有长短期记忆和基于内容的注意机制。为了将操作表示为Grouper的输入,我们对关于操作的信息进行编码,包括类型(例如,MatMul,Conv2d,Sum等),输出的大小和数量,以及与其他操作的连接。我们通过组合成员操作的嵌入来创建group嵌入。每个group嵌入是三个组件的连接:成员操作类型嵌入的平均值,成员操作大小和输出数量的平均值,以及编码为邻接矩阵的组内和组间连接信息。

Placer的RNN编码器一次读取一组嵌入,并产生M个隐藏状态。M等于组数,我们将M作为一个超参数。Placer的解码器RNN每个时间步预测一个device。这些device以与输入组嵌入相同的顺序返回,即,第一组中的操作将被放置在由第一个解码器步骤返回的device上,以此类推。每个device都有自己的可训练嵌入,然后将其作为输入提供给下一个解码器时间步骤。

Planner根据Grouper和Placer做出的决定来优化目标模型(例如,TensorFlow graph)的训练时间。设为预测的设备配置  的每个训练步骤的运行时间。我们将配置  的reward定义为  。Planner应该尽量使对其决策的期望最大化。因此,我们优化的成本函数是:


分别为Grouper和Placer的参数。这里,是从Grouper softmax分布绘制的样本组配置 g 的概率, 是从Placer softmax分布绘制的样本设备配置 d 的概率。我们使用 REINFORCE 规则[21]来优化成本函数。

我们的策略是以分布式的方式训练的,参数服务器由多个控制器共享。控制器异步更新策略。我们使用4个控制器和16个worker(每个控制器4个)。每个worker执行其控制器给出的配置并报告运行时间。每个控制器都托管在一个GPU上。worker们并行地运行配置。一旦所有worker都完成了运行,控制器将使用测量到的运行时间来计算梯度。

实验

我们在四个广泛使用的神经网络模型中评估我们的方法:Inception-V3(batch size= 32),24713次操作;ResNet(batch size= 128),20586次操作;RNNLM(batch size= 64),9021次操作;以及NMT(batch size= 64),分别具有2层,4层和8层encoder-decoder,分别是28044次,46600次和83712次操作。

我们将结果与以下方法进行比较:CPU和GPU,仅在单个CPU或GPU上放置整个模型的baseline。Scotch static mapper[16],它将图(graph)、每个操作的计算成本以及相关设备的计算能力和通信能力作为输入。Mincut baseline与Scotch类似,但我们的设备只考虑GPU。作为比较的手工配置来自以前出版的论文。对于Inception-V3和Resnet,人类专家将图形放置在单个GPU上。对于RNNLM和NMT,现有工作[18,23]将每个LSTM层放置在单独的GPU上。

我们的实验在有1个Intel Haswell 2300 CPU和最多8个Nvidia Tesla K40 GPU的机器上运行。我们使用TensorFlow r1.3来运行评估。

结果:性能提升最高60.6%


表1:不同配置的模型的运行时间(s)(越低越好)。 OOM:内存不足

表1展示了 Hierarchical Planner的性能。我们的方法可用的唯一信息是TensorFlow图和一个设备列表。减少的百分比的计算方法是Hierarchical Planner实现的运行时间与先前最佳配置的运行时间的差,然后再除以先前的最佳运行时间。对于每个模型,我们都会制定一项新策略,学习如何优化该特定模型的配置。所有结果都是在更新策略的1000次迭代之后计算的。实际上,这最多需要三个小时。这个策略本身是一个轻量级的网络,在单个GPU上进行训练。

对于ResNet和RNNLM,我们的模型发现使用单个GPU更高效,因为这可以最大限度地降低通信成本。对于Inception-V3, Hierarchical Planner学习将模型分布到2个GPU中,与将模型放置在单个GPU上相比,运行时间减少了16.3%。对于具有2层、4层和8层的NMT,我们分别使用2个,4个和8个GPU进行实验。对于NMT(2层),我们的结果优于先前最好的将结果60.6%;对于NMT(4层),优于最佳结果53.7%;对于NMT(8层), Hierarchical Planner发现的配置比人类专家的慢4.9%。即使Hierarchical Planner的表现略有不足的这一情况,仍然有必要采用一种自动化的方法来找到与人类专家相媲美的配置。

与Scotch和MinCut相关的结果显着低于人类专家baseline,这与[13]中报告的结果一致。

考虑到我们训练目标神经网络有成千上万个步骤,策略训练的开销是合理的。例如,为了训练WMT'14 En-> Fr数据集,该数据集在一个epoch(batchsize= 64)具有超过3600万个examples,我们运行NMT模型需要大约562500步。由于我们将运行时间从3.64秒减少到1.69秒,因此每个epoch都可以节省304个GPU-hours,即使我们考虑用约102个GPU-hours训练策略,这也是非常显著的节省。

结论

我们提出一种分层方法,可以有效地将计算图的操作配置到设备上。我们的方法完全是端到端的,并扩展到包含超过80,000个操作的计算图。我们的方法在图中找到了高度细化的并行性,使之能够比以前的方法性能超出60.6%。


原文发布时间为:2018-02-25

本文作者:马文

本文来自云栖社区合作伙伴新智元,了解相关信息可以关注“AI_era”微信公众号

原文链接:【重磅】Jeff Dean等提出自动化分层模型,优化CPU、GPU等异构环境,性能提升超 60%

相关实践学习
在云上部署ChatGLM2-6B大模型(GPU版)
ChatGLM2-6B是由智谱AI及清华KEG实验室于2023年6月发布的中英双语对话开源大模型。通过本实验,可以学习如何配置AIGC开发环境,如何部署ChatGLM2-6B大模型。
相关文章
|
4月前
|
存储 弹性计算 安全
阿里云轻量服务器通用型、CPU优化型、多公网IP型、国际型、容量型不同实例区别与选择参考
阿里云轻量应用服务器实例类型分为通用型、CPU优化型、多公网IP型、国际型、容量型,不同规格族的适用场景和特点不同,收费标准也不一样。本文为大家介绍轻量应用服务器通用型、多公网IP型、容量型有何区别?以及选择参考。
|
3月前
|
存储 缓存 数据挖掘
阿里云轻量应用服务器“CPU优化型”配置介绍、费用价格说明
阿里云轻量应用服务器推出CPU优化型,提供更强计算性能,2核4GB起,最高16核64GB,全系支持200Mbps带宽。适用于企业级应用、数据库、游戏服务器等高算力场景,保障稳定高效运行。
485 1
|
4月前
|
缓存 关系型数据库 MySQL
降低MySQL高CPU使用率的优化策略。
通过上述方法不断地迭代改进,在实际操作中需要根据具体场景做出相对合理判断。每一步改进都需谨慎评估其变动可能导致其他方面问题,在做任何变动前建议先在测试环境验证其效果后再部署到生产环境中去。
229 6
|
5月前
|
存储 弹性计算 固态存储
阿里云服务器配置费用整理,支持一万人CPU内存、公网带宽和存储IO性能全解析
要支撑1万人在线流量,需选择阿里云企业级ECS服务器,如通用型g系列、高主频型hf系列或通用算力型u1实例,配置如16核64G及以上,搭配高带宽与SSD/ESSD云盘,费用约数千元每月。
515 0
|
9月前
|
存储 测试技术 对象存储
容器计算服务ACS单张GPU即可快速搭建QwQ-32B推理模型
阿里云最新发布的QwQ-32B模型拥有320亿参数,通过强化学习大幅度提升了模型推理能力,其性能与DeepSeek-R1 671B媲美,本文介绍如何使用ACS算力部署生产可用的QwQ-32B模型推理服务。
|
9月前
|
并行计算 PyTorch 算法框架/工具
融合AMD与NVIDIA GPU集群的MLOps:异构计算环境中的分布式训练架构实践
本文探讨了如何通过技术手段混合使用AMD与NVIDIA GPU集群以支持PyTorch分布式训练。面对CUDA与ROCm框架互操作性不足的问题,文章提出利用UCC和UCX等统一通信框架实现高效数据传输,并在异构Kubernetes集群中部署任务。通过解决轻度与强度异构环境下的挑战,如计算能力不平衡、内存容量差异及通信性能优化,文章展示了如何无需重构代码即可充分利用异构硬件资源。尽管存在RDMA验证不足、通信性能次优等局限性,但该方案为最大化GPU资源利用率、降低供应商锁定提供了可行路径。源代码已公开,供读者参考实践。
810 3
融合AMD与NVIDIA GPU集群的MLOps:异构计算环境中的分布式训练架构实践
|
9月前
|
人工智能 自然语言处理 API
Proxy Lite:仅3B参数的开源视觉模型!快速实现网页自动化,支持在消费级GPU上运行
Proxy Lite 是一款开源的轻量级视觉语言模型,支持自动化网页任务,能够像人类一样操作浏览器,完成网页交互、数据抓取、表单填写等重复性工作,显著降低自动化成本。
682 11
Proxy Lite:仅3B参数的开源视觉模型!快速实现网页自动化,支持在消费级GPU上运行
|
9月前
|
存储 人工智能 固态存储
轻量级AI革命:无需GPU就能运算的DeepSeek-R1-1.5B模型及其低配部署指南
随着AI技术发展,大语言模型成为产业智能化的关键工具。DeepSeek系列模型以其创新架构和高效性能备受关注,其中R1-1.5B作为参数量最小的版本,适合资源受限场景。其部署仅需4核CPU、8GB RAM及15GB SSD,适用于移动对话、智能助手等任务。相比参数更大的R1-35B与R1-67B+,R1-1.5B成本低、效率高,支持数学计算、代码生成等多领域应用,是个人开发者和初创企业的理想选择。未来,DeepSeek有望推出更多小型化模型,拓展低资源设备的AI生态。
1889 8
|
9月前
|
存储 设计模式 监控
如何快速定位并优化CPU 与 JVM 内存性能瓶颈?
如何快速定位并优化CPU 与 JVM 内存性能瓶颈?
274 0
如何快速定位并优化CPU 与 JVM 内存性能瓶颈?

热门文章

最新文章