学术界 |微软提出基于强化学习的优化配置方法:可以让TensorFlow得到更充分的利用
机心汇编
参与:吴攀、李泽南
众所周知,深度学习需要大量的估计。合理分配估计资源对于提高计算速度和节约能源具有重要价值。几天前,微软 的一篇论文提出了一种使用强化学习来优化设备配置的方法,称其在某些网络估计上可以胜过专家优化的方法。 The Heart of the 提供了本文的摘要。
论文:使用强化学习进行设备配置优化(附)
论文地址:
总结
在过去几年中,我们看到神经网络的训练和推理降低了对估计能力的需求。目前解决这些需求的常用方法是构建异构分布式估计环境,其中包括CPU、GPU等硬件设备。重要的是,设备上神经网络模型的估计资源分配通常是由人类专家在简单的探索和直觉的帮助下做出的。在本文中,我们提出了一种学习和优化估计图的设备任务分配的方法。其中一个关键思想是使用-to-模型来预测图的哪个子集应该在哪些可用设备上运行,然后使用预测的分配执行时间作为奖励信号来优化-to的参数-序列模型。我们的结果在分类、 语言建模和神经机器翻译任务的 -V3 任务上优于常见的自动设备配置()方法。
图 1:基于强化学习的设备配置模型概述
图 2:设备配置模型的架构
3.2 架构细节
我们使用了一个序列到序列模型 (etal., 2014) with LSTM (&,1997)) 和一个基于内容的注意力机制 (etal., 2014) ) 来预测设备配置。,2015)。图 2 显示了我们模型的整体架构,可以分为两部分:编码器 RNN 和解码器 RNN。
编码器 RNN 的输入是输入图的指令序列。我们通过链接他们的信息来嵌入这些说明。具体来说,对于每个图 G,我们首先收集其指令的类型。其指令的类型描述了它的基本评估,例如 or 。对于每种类型,我们存储一个可调整的嵌入向量。然后我们记录输出张量的每个指令列表的大小,然后将它们加入一个固定大小的 0 填充列表,称为输出形状。我们还采用它的 one-hot 编码向量,它表示这些指令将输入和输出定向到每条指令。最后,每条指令的嵌入是它的类型、它的输出形状和它的 one-hot 编码的邻接信息的串联。
解码器是一个具有固定时间步数的 LSTM(等,2015),等于图 G 中的指令数。在每一步,解码器将 () 输出到在同一编码器时间步运行指令。每个设备都有自己的可调整嵌入,然后将其用作下一个解码器时间步的输入。
图 3:分布式和异步参数更新和奖励评估
表 2:基于强化学习的方法和基线方法找到的设备配置方法的运行时间比较(单位:秒,越低越好)。
对于每个模型,第一行给出 1 个 CPU 和 2 个 GPU 的结果;第二行给出了 1 个 CPU 和 4 个 GPU 的结果。最后一列给出了基于 RL 的配置相对于最快基准的运行时改进。为了减少残差,10秒以上的运行时间测试了15次,这里给出平均值。 OOM是指内存不足(OutOf)。
图 4:基于强化学习的神经机器翻译图配置。里面是编码器,底部是解码器。设备用不同的颜色表示,没有颜色代表在 CPU 上运行的指令,不同的其他颜色代表不同的 GPU。与专业设计的配置相比,此配置的运行时间提高了 19.3%。
图 5:基于强化学习的 -V3 配置。设备用不同的颜色表示,没有颜色代表在 CPU 上运行的指令谷歌优化,不同的其他颜色代表不同的 GPU。与专家设计的配置相比谷歌优化,此配置的运行时间提高了 19.7%。