2018年7月31日星期二

从虚拟世界伸到现实的机械臂,靠摄像机就能玩转任何物体

OpenAI 训练了一个机械臂,能够非常灵巧地控制物体。据介绍,该系统名为 Dactyl,经过了完全模拟训练,能够把知识迁移到现实中,即使用 OpenAI 一直以来研究的技术把训练得到的知识应用到真实物理环境中。Dactyl 使用了 OpenAI 在 Dota2 系统 中使用的同一通用强化学习算法与代码。结果显示,没有对物理世界准确建模的情况下,在模拟环境中训练智能体并用它解决现实任务是可以做到的。

论文链接:https://d4mucfpksywv.cloudfront.net/research-covers/learning-dexterity/learning-dexterity-paper.pdf

任务

Dactyl 是一个使用机械臂操控物体的系统。我们把一个方块或棱柱放在其手掌,然后要求 Dactyl 重置该物品的方向。例如,旋转方块,使其另外一面朝上。网络仅观察指尖坐标和三个常规 RGB 摄像头中的影像即可。

尽管几十年前人们就开发了首个机械臂,但长期以来,利用它们有效地操控物体一直是机械臂控制领域的一大难题。与其他问题(如移动)不同,使用传统机械臂技术实现灵活操控一直进展缓慢,而利用现有技术也很难操控现实世界中的物体。

用机械臂改变物体方向需要解决以下问题:

  • 在现实世界操作。虽然强化学习在很多模拟测试和视频游戏中都取得了成功,但它在现实世界中表现平平。我们在一个机械臂上测试了 Dactyl 系统。

  • 高维控制。与传统拥有 7 个自由度的机械臂相比,Dactyl 的机械臂有 24 个自由度。

  • 噪声和局部观察。Dactyl 要在现实世界中操作,因此必须解决噪声和传感器读数延迟问题。当指尖传感器被其它手指或物体遮挡时,Dactyl 只能收到局部信息。此外,许多物理方面的问题(如摩擦和滑移)无法被直接观察到,必须要对其进行推断。

  • 操控多个物体。Dactyl 要设计得非常灵活才能操控多个物体。这意味着我们不能使用仅针对特定几何对象的策略。

方法

Dactyl 学习完全在模拟中解决目标再定向任务,而无需任何人工输入。在完成训练阶段后,学习的策略可以在不需要任何微调的情况下迁移到机械臂。

Dactyl 实现 50 次连续旋转测试最大值。

机械操作的学习方法身处一个两难境地。模拟的机械臂可以很轻松的提供足够的数据来训练复杂的策略,但大多数的操作问题不能实现精确建模,这些策略进而也不能应用到真实机械臂上。即使是对两物体触碰后的变化进行建模——这是操作中最基础的问题——也是一个活跃研究领域,目前仍未有被广泛认可的解决方案。直接在物理机械臂上进行训练可以让策略在现实世界的物理中学习,但今天的算法需要多年的经验来解决像物体再定向这样的问题。

我们的方法是域随机化(domain randomization),这种方法通过在模拟场景中学习而不是尽量现实化,且模拟场景通过设计提供了各式各样的经验。这给了我们最好的方法:通过在模拟中学习,我们可以通过扩展来收集更多的经验,通过不强调现实意义,我们可以解决模拟器只能近似模拟的问题。

OpenAI 和一些其他组织也表示,域随机化可以处理越来越复杂的问题——域随机化甚至还用来训练 OpenAI Five。现在,我们想要看扩展域随机化是否能够解决当前机械臂技术中无法解决的问题。

我们通过使用 MuJoCo 物理引擎构建了机械臂系统的模拟版本。这个模拟仅仅是真实机械臂的粗略近似:

  • 测量诸如摩擦力、阻尼和滚动阻力等物理属性是很困难的。随着机械臂的使用磨损,它们也会随之改变。

  • MuJoCo 是一个刚体模拟器,也就是说它不能模拟手部姿势或肌腱的拉伸。

  • 我们的机械臂只能通过反复接触来操纵物体,然而接触力很难被精确模拟出来。

通过校准参数来匹配机械臂行为能使仿真更加逼真。但在目前的模拟器中,许多这样的效果没办法被精确建模。

相反,我们在分布式模拟环境中训练策略,其中物理和视觉属性是随机选择的。随机值是表示物理系统不确定性的自然方式,也能防止对单个模拟环境的过拟合。如果训练出的策略能够完成所有模拟环境的任务,它就很有可能完成真实世界的任务。

学习如何控制

通过构建支持迁移的模拟,我们减少了在实际场景中控制机械臂完成模拟任务的问题,该问题非常适合使用强化学习进行求解。虽然通过模拟的手臂操作一个物体已经非常困难了,但是在所有随机物理参数组合下学习如何操作物体要更难。

为了泛化到不同的环境,如果相同的策略能在不同的动力学环境中执行不同的动作,那无疑会非常有用。但是大多数动力学参数(dynamics parameter)并不能从单个观察样本中直接推断出,因此我们使用一种带记忆的神经网络 LSTM,这种记忆机制使得网络能学习动力学环境。LSTM 相比于不带记忆的策略大约实现了两倍的旋转。

Dactyl 使用 Rapid 进行学习,Rapid 是近端策略优化的大规模实现,它允许 OpenAI Five 解决 Dota 2 任务。我们使用了与 OpenAI Five 不同的模型架构、环境和超参数,但还是使用了相同的算法和训练代码。Rapid 使用 6144 个 CPU 核心与 8 张 GPU 来训练我们的策略,且智能体在 50 个小时内大约获得了 100 年的经验。

对于开发与测试,我们针对具有嵌入式运动追踪传感器的物体验证了控制策略,其中该传感器能分离控制与视觉网络的性能。

学习如何观察

Dactyl 旨在能操作任意目标,而不仅仅是那些经过特殊处理以支持追踪的目标。因此,Dactyl 使用常规的 RGB 摄像图来估计目标的位置与反向。

我们使用卷积神经网络训练一个姿态估计器,该神经网络能从位于机械臂周围的三个摄像头获取视频流输入,并输出估计的目标位置与方向。此外,使用三个摄像头能有效解决图像模糊和遮挡等问题。我们再次使用领域随机化训练该网络,并在 Unity 游戏开发平台上进行模拟,该平台相比于 Mujoco 可以建模更广泛的视觉现象。

控制网络能在给定姿态估计的情况下再调整目标,而视觉网络能将从摄像头获取的图像映射到目标的姿态。通过结合这两个独立的网络,Dactyl 能在观察到目标后就对它做一些操作。

用于学习评估方块姿态的训练图像样本。

结果

出现的行为

当部署了我们的系统时,我们注意到 Dactyl 使用了丰富的「掌中灵巧操控策略」(in-hand dexterous manipulation strategies)集合来求解任务。这些策略也被人类所常用。然而,我们并没有明确地教过他们这些策略;所有的行为都是自动发现的。

由Dactyl自动学习到的灵巧操控行为示例。

Dactyl 抓握类型(根据 GRASP taxonomy)。从左上到右下:指尖捏、掌捏、三指抓取、四指抓取、强力抓握和五指精确抓握。

我们观察到对于精确抓握,例如指尖捏,Dactyl 使用拇指和小指。人类更倾向于使用拇指以及食指或中指。然而,由于额外的自由度,机械臂的小指更加灵活,这也许解释了 Dactyl 为什么更钟爱用小指。这意味着 Dactyl 可以重新发现人类的抓握行为,但能将其进行调整以更好地适应其自身的极限和能力。

迁移能力

我们测试了 Dactyl 在丢掉它掌中物体之前可以实现多少次旋转,是超时,还是能成功实现 50 次旋转。在模拟环境训练的策略使机械臂能成功地在真实世界种成功地操控物体。

Dactyl 实验设置,包含机械臂、相空间运动追踪摄像机和 Basler RGB 摄像机。

对于方块操控任务,结合随机化的训练策略相比没有使用随机化的训练策略可以实现更多的旋转次数,如下所示。此外,使用结合视觉姿态估计的控制网络可以实现与直接从运动追踪传感器读取姿态相近的性能。

学习进展

大部分的训练时间都被用来使策略对不同的物理动态更加鲁棒。在模拟环境中不使用随机化来学习旋转物体需要大约 3 年的模拟经验,而在完全随机化的模拟环境中实现相似性能需要大约 100 年的模拟经验。

有和没有随机化过程的模拟经验(年)对应的学习进展。

惊喜之处

  • 操纵现实世界中的物体不需要触觉感知。我们的机械臂仅接收五个指尖的位置及方块的位置和方向信息。尽管机械的指尖有触觉传感器,我们也不需要。总的来说,我们不需要一套具有难以建模的值的丰富传感器,利用一套有限的传感器就能提升机械臂的表现,这些传感器可以在模拟器中有效建模。

  • 为一个对象开发的随机化泛化到具有类似属性的其它对象。在为操纵方块问题开发了一个系统之后,我们打印了一个八棱柱并使用它训练了一套新的规则,然后试图操纵该棱柱。令我们惊喜的是,机械臂仅利用为方块设计的随机化就表现出了优异的性能。然而,操纵球体的规则在一系列测试中仅能成功几次,或许是因为我们没有随机化任何建模滚动行为的模拟参数

  • 在物理机械臂中,良好的系统工程与好的算法一样重要。某次,我们注意到,在运行同样的规则时,一个工程师的表现总是优于其他工程师。之后,我们发现他的笔记本电脑比其他人的快,而他的电脑隐藏了一个影响表现的计时 bug。bug 修复之后,相对地团队中其他人电脑上的表现就提了上去。

不足之处

我们还惊讶地发现有几项常用的技术并没有提升我们的结果。

  • 减少反应时间并不能提升性能。传统观点认为减少动作间隙的时间应该能提升性能,因为状态之间的变化将变得更小,因此更容易预测。我们当前使用的动作间隙时间是 80ms,小于人类反应时间(150-250ms),但显著高于神经网络的计算时间(大约 25ms)。令人惊讶的是,虽然增加额外的训练时间可以将动作间隙时间减少到 40ms,但在现实世界的任务中并没有显著提升性能。有可能这个经验法则并不适用于神经网络,而更适用于如今常用的线性模型。

  • 使用真实数据来训练视觉策略并没有什么效果。在早期实验中,我们使用了模拟数据和真实数据的组合来提升模型性能。真实数据可以通过目标结合嵌入式跟踪标识器的试验来获取。然而,真实数据相比模拟数据有很大的缺点。跟踪标识器的位置信息具有延迟和测量误差。更糟的是,真实数据很容易因为常见的配置变化而失效,使其很难收集足够的有用数据。随着方法的不断发展,我们的「仅模拟」误差一直在增加,直到与使用模拟-真实混合数据的误差相匹配。我们最终的视觉模型没有使用真实数据来训练。


原文链接:https://blog.openai.com/learning-dexterity/

]]> 原文: https://ift.tt/2mWwzAJ
RSS Feed

机器知心

IFTTT

4分钟训练ImageNet!腾讯机智创造AI训练世界纪录

腾讯机智机器学习平台由TEG架构平台部和运营管理部团队携手,并和香港浸会大学计算机科学系褚晓文教授团队深度合作联袂打造。

背景

2018年6月25日,OpenAI在其Dota2 5v5中取得一定成绩后介绍,其在训练中batch size取100W,而1v1的训练batch size更是达到800W;训练时间则是以周计。腾讯内部对游戏AI一直非常重视,也面临大batch size收敛精度和低训练速度慢的问题;目前batch size超过10K则收敛不到基准精度,训练时间以天计,这对于快速迭代模型来说是远远不够的。

目前业界考验大batch size收敛能力和大数据集上训练速度的一个权威基准是如何在ImageNet数据集上,用更大的batch size,在更短的时间内将ResNet-50/AlexNet这两个典型的网络模型训练到标准精度;国外多个团队作了尝试并取得了进展,比如UC Berkely等高校的团队可在20分钟将ResNet-50训练到基准精度。

研究和解决这个问题,可以积累丰富的大batch size收敛优化经验和大集群高性能训练经验,并将这些经验应用到解决游戏AI类实际业务中;这也是我们研究这个问题的初衷。

一  4分钟内训练ImageNet

腾讯机智 机器学习平台团队,在ImageNet数据集上,4分钟训练好AlexNet,6.6分钟训练好ResNet-50,创造了AI训练世界新纪录。

在这之前,业界最好的水平来自:

① 日本Perferred Network公司Chainer团队,其15分钟训练好ResNet-50;

② UC Berkely等高校的团队,11分钟训练好AlexNet.

图示 国内外各团队训练ImageNet速度
图示 各平台ResNet-50训练软硬件参数配置及性能
注:batch size为256时基准准确度为75.3%。

图示 各平台AlexNet训练软硬件参数配置及性能注:"--"表示相关团队没有对应的测试数据

二  机器学习领域训练背景

AlexNet网络模型出现后的过去几年中,深度学习有了长足的发展和进步,尤其是在图像、语音、机器翻译自然语言处理等领域带来了跨越式提升。在AlphaGo使用深度学习方法战胜世界围棋冠军李世石之后,大家对人工智能未来的期望被再一次点燃,人工智能成为各个领域议论的焦点。但与之相伴的也有很多问题:

• 数据量大:

有些模型的训练数据动辄上TB,使得多轮训练时数据读取成为非常耗时的部分。

• 计算模型复杂:

深度网络的一个特点就是结构越深、越复杂,所表达的特征就越丰富,在此思想下,最新的网络结构越来越复杂,从AlexNet的8层,VGG-19的19层,ResNet-50的50层,到Inception-ResNet-V2的467层和ResNet-1000的1202层等。

参数量大:

深度神经网络由于层次很多,参数量往往很大。ResNet-50有2500万参数量,AlexNet有6200万的参数量,而VGG-16参数量则达到1.38亿,有的语言模型参数量甚至超过10个亿[5]。

• 超参数范围广泛:

随着模型复杂度的提升,模型中可供调节的超参数数量及数值范围也在增多。例如,在CIFAR-10数据集上训练的ResNet模型有16个可调的超参数[8],当多数超参数的取值为连续域的情况下,如此少量的超参数仍然可能造成组合爆炸。因此,最近也出现了以谷歌的Vizier为代表的系统,采用优化的搜索及学习算法为模型自动适配合适的超参数值的集合。

所有上面这些问题,对训练速度带来巨大的挑战和要求。

从2010年以来,每年的ImageNet大规模视觉识别挑战赛(ILSVRC [1],下文简称ImageNet挑战赛)作为最权威的检验图像识别算法性能的基准,都是机器学习领域的焦点。

随着全世界研究者的不断努力,ImageNet的Top-5错误率从2010年的28%左右,下降到2012年的15.4%(AlexNet),最终在2017年Top-5错误率已经下降到3%左右,远优于人类5%的水平[2]。

在这个迭代过程其中,两个典型的网络,AlexNet和ResNet-50具有里程碑的意义。然而,在一个英伟达的 M40 GPU 上用 ResNet-50 训练 ImageNet 需要 14 天;如果用一个串行程序在单核 CPU 上训练可能需要几十年才能完成[3]。因此,如何在更短的时间内在ImageNet上训练好AlexNet和ResNet-50一直是科研工作者研究的课题。

很多研究团队都进行了深入尝试,比如Facebook人工智能实验室与应用机器学习团队可在1小时训练好ImageNet [4];目前业界最好的水平来自:

① 日本Perferred Network公司Chainer团队,其15分钟训练好ResNet-50; [9]

② UC Berkely等高校的团队,11分钟训练好AlexNet. [3]

机智团队想在这个问题上做出新贡献,推动AI行业向前发展,助力AI业务取得成功。

三  训练速度提升的挑战

如第二节所述,由于以上四个主要矛盾,深度学习训练时间常常以小时和天计算,如何提升训练效率,加快模型训练迭代效率,成了机智团队的关注重点。要提升训练速度,主要面临挑战有如下几个方面:

3.1 大batch size带来精度损失

为了充分利用大规模集群算力以达到提升训练速度的目的,人们不断的提升batch size大小,这是因为更大的batch size允许我们在扩展GPU数量的同时不降低每个GPU的计算负载。

然而,过度增大batch size会带来明显的精度损失!这是因为在大batch size(相对于训练样本数)情况下,样本随机性降低,梯度下降方向趋于稳定,训练就由SGD向GD趋近,这导致模型更容易收敛于初始点附近的某个局部最优解,从而抵消了计算力增加带来的好处。如何既增大batch size,又不降低精度,是机智团队面临的首要挑战。

图示 大batch size带来精度下降

3.2 多机多卡扩展性差

深度训练通常采用数据并行模式,数据并行模式将样本分配给不同的GPU进行训练。相比模型并行,数据并行简单且可扩展,成为目前主流的分布式训练方式。

图示 数据并行

分布式训练数据并行模式下,经典的部署方式是独立的参数服务器(Parameter Server)来做训练过程中梯度的收集、分发和更新工作,每一次迭代所有的GPU都要与PS多次通信来获取、更新参数;当节点超过一定数量时,PS的带宽以及处理能力将成为整个系统的瓶颈。

AI训练系统和传统后台系统之间的一个最主要区别是,传统后台系统可以通过增加节点的方式来分担访问请求,节点之间没有强相关的关系;而AI训练系统在训练模型时需要参与训练的所有节点都不断的与模型参数服务器交换和更新数据,这无形中相当于对整个系统增加了一把大锁,对整个系统中单节点的带宽和处理能力要求非常高,这也是AI训练系统的特别之处,不能通过简单的增加节点来提升系统负载能力,还需要解决多节点的扩展性问题。

所以如何在架构部署和算法层面减少对带宽需求,控制多机扩展中参数传输对训练速度的影响,使AI训练集群性能可线性扩展,是机智团队面临的另一项挑战。

3.3 如何选择合适的超参

此外,由于超参较多,而每一个超参分布范围较广,使得超参调优的耗时较长,特别是针对ImageNet这种超大数据集的情况。前文提过,CIFAR-10数据集上训练的ResNet模型就有16个超参。

随着项目进展,团队还引入了很多新的关键技术,如后面将会提到的LARS算法、分层同步算法、梯度融合策略,Batch Norm替换等都会增加模型超参数量,如何在可接受的时间内寻找到较优解,是机智团队面临的第三个重大挑战。

四 训练速度提升的关键技术

机智团队针对上述挑战,分别在大batch size训练,多机扩展性,及超参调整方法上取得突破,并应用到ImageNet训练场景中,能够在6.6分钟内完成ResNet-50训练,4分钟完成AlexNet训练——这是迄今为止ImageNet训练的最高世界纪录。在这个过程中,机智团队在吸收业界最佳实践的同时,深度融合了多项原创性关键技术。

4.1 超大batch size 的稳定收敛能力

1)半精度训练与层次自适应速率缩放(LARS)算法相结合

为了提升大batch size情况下的可扩展性,机智团队将训练数据和参数采用半精度浮点数的方式来表示,以减少计算量的同时降低带宽需求。但半精度浮点数的表示方式不可避免的会降低模型收敛精度。

为了解决精度下降问题,机智团队引入了层次自适应速率缩放(LARS)算法。LARS算法由You et al. (2017)[3]最先提出,该算法通过对不同的层使用不同的Learning Rate,大幅度提升了大batch size场景下的训练精度,但实际测试发现,直接将LARS算法应用于半精度模型训练造成很大的精度损失,这是由于乘以LARS系数后, 很多参数因半精度数值表示范围较小而直接归0。

图示 LARS学习率更新公式

图示 参数用半精度表示导致精度丢失

为此,机智团队引入了混合精度训练方法来解决这个问题,通过将半精度参数转化成单精度,然后再与LARS结合,即半精度训练,单精度LARS优化及参数更新。相应的,在更新参数时使用loss scaling方法成倍扩大loss(并对应减少学习率)避免归0影响精度。测试结果显示,这一方法,一方面保证了计算速度,另一方面也取得了很好的收敛效果。

图示 混合精度训练

图示 ResNet-50 半精度优化效果

2)模型和参数的改进

我们在32K下复现了You et al. (2017)的测试结果,但batch size扩展到64K时,训练精度未能达到基准准确性。为了提高在64K下的收敛准确性,我们对参数和模型进行了改进:1) 只对weight做正则化。 2)在You et al. (2017)模型的基础上,进一步改进AlexNet模型。

正则化通过在损失函数后加一项惩罚项,是常用的防止模型过拟合的策略。大多数深度学习框架默认会对所有可学习的参数正则化,包括weight, bias, BN beta和gamma(batch norm中可学习的参数)。我们发现bias, beta, gamma的参数量相对于weight来说非常小,对于AlexNet模型,bias, beta, gamma参数量总和仅占总参数量的0.02%。

因此,bias, beta, gamma不会给模型带来过拟合,如果我们对这些参数进行正则化,增加了计算量,还会让模型损失一些灵活性。经过实验验证,我们发现不对bias, beta, gamma做正则化,模型提高了约1.3%的准确性。

优化正则化策略后模型收敛性得到了提升,但是AlexNet还是没有达到基准准确性。通过对AlexNet训练参数和输出特征的分析,我们发现Pool5的特征分布(如下图示,颜色浅表示数据分布少,颜色深的表示数据分布多,总体看数据分布范围很广)随着迭代步数的增加,方差越来越大,分布变化很剧烈,这样会导致学习和收敛变得困难。

图示 Pool5的输出特征分布图(横轴是迭代步数,纵轴是特征分布)

这个结果启发我们在Pool5后插入一个Batch Norm层,用以规范特征的分布。如下图所示,完善AlexNet后,BN5后面输出的特征图分布更加均匀,64K batch在100 epochs下收敛到58.7%,不损失准确性的同时完成了加速训练。

图示 使用Batch Norm改造AlexNet

图示 Pool5+BN5的输出特征分布图(横轴是迭代步数,纵轴是特征分布)

图示 使用BN改造AlexNet前后的收敛精度比较

3)超参调优

模型超参调优是深度学习中成本最高的部分之一,大模型的训练过程是以小时或天计算的,特别是训练数据集较大的情况下。因此需要有更高效的思路和方法来调优超参,机智平台团队在这个方面主要采取了如下思路:

参数步长由粗到细:调优参数值先以较大步长进行划分,可以减少参数组合数量,当确定大的最优范围之后再逐渐细化调整,例如在调整学习速率时,采取较大步长测试发现:学习率lr较大时,收敛速度前期快、后期平缓,lr较小时,前期平缓、后期较快,根据这个规律继续做细微调整,最终得到多个不同区间的最佳学习速率;

• 低精度调参:在低精度训练过程中,遇到的最大的一个问题就是精度丢失的问题,通过分析相关数据,放大低精度表示边缘数值,保证参数的有效性是回归高精度计算的重要方法;

• 初始化数据的调参:随着网络层数的增多,由于激活函数的非线性,初始化参数使得模型变得不容易收敛,可以像VGGNet那样通过首先训练一个浅层的网络,再通过浅层网络的参数递进初始化深层网络参数,也可以根据输入输出通道数的范围来初始化初始值,一般以输入通道数较为常见;对于全连接网络层则采用高斯分布即可;对于shortcut的batch norm,参数gamma初始化为零。

以上思路在4分钟训练ImageNet项目中提升了调参效率。但调参是个浩繁的工作,后续将由内部正在测试的AutoML系统来进行。

通过以上三个方面,在ImageNet数据集上,机智平台可将ResNet-50/AlexNetbatch size 为64K时训练到基准精度!

图示 AlexNet 收敛性优化

图示 ResNet-50 收敛性优化

4.2 超大规模GPU集群(1024+GPUs)线性扩展能力

1)参数更新去中心化

数据并行训练方式下,每一次迭代都需要做梯度规约,以TensorFlow为代表的经典分布式训练部署方式中,中心化的参数服务器(Parameter Server)承担了梯度的收集、平均和分发工作,这样的部署方式下PS的访问带宽容易成为瓶颈,严重影响可扩展性,机智团队最初应对方法是引入HPC领域常用的去中心化的Allreduce方式,然而目前流行的NCCL2或baidu-allreduce中的Allreduce采用的基于环形拓扑的通信方式,在超大规模GPU集群场景下数据通信会有很大的延时开销。

机智团队进一步将Allreduce算法进行了改进,并成功的部署在1024+GPUs的异构集群中,达到了理想的扩展效率。

图示 去中心化的参数规约

图示 原始版本的Ring Allreduce

2)利用分层同步和梯度分段融合优化Ring Allreduce

在分布式通信中,参数传输耗时可用如下公式表达:

其中α 代表单节点单次数据传输的延时,比如准备数据,发送数据接口调用等;P为数据在节点间传输的次数,通常是节点个数的一个倍数,β 为参数传输耗时的系数,不同参数传输方法,这个系数不同;B为网络带宽,M为参数总字节数,(M/B)为单次完整参数传输耗时。[6]

由以上公式可以看出,参数M越大,第二项所占的比重就越大,受第一项的影响就越小,即P对整体时间的影响则越小;参数M越小,则第一项所占的时间不可忽略,随着P的增大,对总体时间则影响越大。对于传输采取Ring Allreduce算法来讲, 全局规约操作对带宽的需求接近于常数,不随节点数增加而增加,所以β * (M/B)接近为常数,可变因数为 α * P;网络模型越小,传输的数据量越小越散,则 α * P 这块的比重越大,整体的扩展性也就越差。

比如,在AlexNet神经网络中,除了两层参数量较大的全连接层,其余的BN层和卷积层参数量较少,各层的参数分布差异很大。在我们的实验环境中,使用Ring Allreduce传输方式,测试不同数据包大小传输耗时如下图所示。从图中可以看出,Ring Allreduce的时间开销会随着GPU个数的增加而显著增大。

图示 Ring-Allreduce不同节点数下的传输耗时

此外,传输数据块太小也不能充分利用带宽,多个小块传输带来极大的overhead,如图所示。可以看到发送同量数据时,小数据包额外开销大,不能高效利用带宽。

图示 在100Gbps RoCE v2网络中使用2机8卡Ring-Allreduce测试带宽

经过以上对神经网络每层的参数和数据包传输特性的分析,机智团队得出以下结论:

(1) 随着集群节点增多,Ring Allreduce传输模式不够高效。随着节点增多,传输耗时中α* P部分比例会逐步增大。

(2) Ring Allreduce算法对小Tensor不够友好。算法将待规约的数据拆分为N等份(N为节点总数),这导致节点数大幅增加时,Tensor碎片化,通信网络传输大量小数据包,带宽利用率很低。

针对上述问题,机智团队提出了如下改进方案:

(1) 分层同步与Ring Allreduce有机结合:对集群内GPU节点进行分组,减少P对整体时间的影响。如前论述,当P的值对系统性能影响较大时,根据具体的集群网络结构分层,同时跨节点规约使用Ring Allreduce算法规约, 这一改进有效的减少了每层Ring参与的节点数,降低了传输耗时中 α * P 的占比。如下图所示。原本需要对16个(即P=16)GPU进行AllReduce,现将16个GPU分为4组,每组4个GPU,首先在组内进行Reduce(4组并行执行,P1=4),然后再以每组的主GPU间进行Allreduce(P2=4),最后在每组内进行Broadcast(P3=4),这样便大大地减少了P的影响,从而提高Allreduce的性能。

(2) 梯度融合,多次梯度传输合并为一次:根据具体模型设置合适的Tensor size阈值,将多次梯度传输合并为一次,同时超过阈值大小的Tensor不再参与融合;这样可以防止Tensor过度碎片化,从而提升了带宽利用率,降低了传输耗时。

(3) GDR技术加速Ring Allreduce:在前述方案的基础上,将GDR技术应用于跨节点Ring,这减少了主存和显存之间的Copy操作,同时为GPU执行规约计算提供了便利;

注:GDR(GPU Direct RDMA)是RDMA技术的GPU版本,可以提供远程节点间显存直接访问,能大幅降低了CPU工作负载。

图示 改进的分层Ring Allreduce with GDR

在具体到ImageNet训练问题中,在测试梯度融合时,机智团队根据对模型各层参数大小分析和实测结果,提出了分段融合策略,将AlexNet和ResNet-50各层分为两段,各融合为一个Tensor参与Ring Allreduce。经过测试和分析,在1024卡场景下,AlexNet在20层和21层处分段可以达到最好效果;ResNet-50在76层和77层之间分段速度达到最优,如下图所示。

经分段融合策略后,极大提高了反向计算和传输的并行度,提升了训练速度。目前分段融合已可根据前向计算和反向计算耗时,及传输耗时,结合实际硬件配置和网络模型对传输性能进行建模,自动实现最优分段策略,自适应地选择需要合并的参数,以达到系统最佳扩展性能。

图示 AlexNet梯度分段融合策略

图示 ResNet-50梯度分段融合策略

图示 1024卡场景下分段融合前后吞吐量对比

图示 1024卡场景下分层同步前后吞吐量对比

3)使用Pipeline机制降低IO延迟

GPU引入深度学习之后,模型训练速度越来越快,最优加速性能不仅依赖于高速的计算硬件,也要求有一个高效的数据输入管道。

在一轮训练迭代中,CPU首先从磁盘读取数据并作预处理,然后将数据加载到计算设备(GPU)上去。一般实现中,当 CPU 在准备数据时,GPU处于闲置状态;相反,当GPU在训练模型时,CPU 处于闲置状态。因此,总训练时间是 CPU预处理 和 GPU训练时间的总和。

机智团队为解决IO问题,将训练样本集部署在由SSD盘组成的存储系统上,以保证CPU访问数据的带宽不受网络限制;同时,更为关键的是引入了Pipeline机制,该机制将一次训练迭代中的数据读入及处理和模型计算并行起来,在做模型计算的同时做下一轮迭代的数据读取处理并放入自定义"无锁"队列,并通过GPU预取机制提前把处理好的数据从队列中同步到GPU显存中,当做下一轮的模型计算时直接从显存读取数据而不需要再从CPU或磁盘读取,做到将数据读取隐藏,IO和计算并行起来。

图示 Pipeline机制示意图

图示 "无锁"队列出入队耗时对比

通过以上三方面,机智平台在1024卡以上跑ResNet-50,扩展性也可以达到~99%,在2048卡上跑ResNet-50,扩展性还可以保持在97%!

图示 ResNet-50/AlexNet多机扩展性

五 平台价值

人工智能越来越多的融入到人们生活当中,涵盖各行各业,包括衣食住行,交通、个性化产品等;可以服务于人们需求的人工智能服务在未来会像水和电一样成为基本需求,机智机器学习平台正是在这种背景下应运而生。

提升训练ImageNet的速度,只是机智团队推动AI发展工作中一小部分;事实上,服务好游戏AI等AI业务,助力AI团队在建设AI服务时,聚焦用户需求,而AI服务背后的模型训练、优化,模型部署和运营触手可得,才是机智的真正使命。机智机器学习平台当前主要提供训练加速能力。

1)训练加速

快速完成模型训练意味着可以做更多的模型/算法尝试;这不仅是体现平台能力的一个重要指标,也是增加业务竞争力的一个关键所在。如果一个产品模型的训练时间以周记或以月记,那这个产品也是生命力不旺盛的。以下是机智的两个典型应用案例:

• X业务的训练数据是结构化数据且量大,模型比较复杂;一直以来训练好一个模型需要一天以上,这对于快速迭代模型算法来说是远远不够的。在应用了机智机器学习平台后,可以在约10分钟时间迭代一个模型,极大的加速了训练迭代效率,为业务的成功奠定了坚实的基础。

计算机视觉,是人工智能应用的重要领域,已在交通、安防、零售、机器人等各种场景中应用开来。计算机视觉中网络模型的关键部件就是CNN,快速的将CNN网络训练好可以极大的提升产品落地速度。以业界最著名的ImageNet数据集为例,要将ResNet-50模型在其上训练到75%以上准确率,普通单机单卡需要一周左右时间。在机智机器学习平台上,这样的应用只需要6.6分钟。

六 展望

未来,机智团队将继续保障游戏AI业务的快速迭代,把解决imagenet训练问题中所积累的加速方案应用到游戏AI中,将游戏AI的大batch size收敛问题和训练速度问题彻底解决,协助业务取得新的突破性成果。此外,机智团队将在平台性能,功能上持续完善:

1)平台性能

机智将结合模型压缩/剪枝,量化技术,在通信传输中统筹多种all-reduce算法,做到对不同场景的模型:

• 计算瓶颈的模型多机达到线性扩展

• 传输瓶颈的模型多机达到90%以上扩展效率

2)平台功能

a) AutoML(自动调参)

机智团队认为,算法工程师应当专注于创建新网络,推导新公式,调整超参数的浩繁工作,交给机智平台帮你自动完成。

b) 一站式的管理服务

机器学习的模型训练过程是个复杂的系统工整,涉及到对可视化任务的管理,对各种资源的管理(比如CPU, GPU, FPGA, ASIC等)和调度,对训练数据和结果数据的管理,高质量的服务体系等,将这一整套流程都打通,并且做到对用户友好,所见即所得,是算法工程师验证想法最基本的需求。机智平台将提供一站式的管理服务,想你所想,助你成功。

此外,计算机视觉类加速只是起点,未来在功能方面,机智平台将支持多场景、多模型;结合更广义的AutoML技术,让AI技术赋能更广大的业务,我们的目标是:

为用户提供训练,推理,模型托管全流程计算加速服务。

最终,建立从训练加速到部署上线一站式服务平台,打造AI服务基础设施,助力AI业务取得成功。

七 致谢

在研究和解决imagenet训练项目中,机智团队小伙伴们通力合作,最终在这个问题上取得了突破。在此要特别感谢团队内小伙伴——TEG兄弟部门运营管理部,香港浸会大学计算机科学系褚晓文教授团队;是大家的精诚团结和专业精神,才得以让我们在这个业界权威基准上取得新的重大突破。

此外还要隆重感谢机智平台合作伙伴——TEG兄弟部门AI平台部,网络平台部,感谢兄弟部门小伙伴们一直以来的支持和信任。期盼在未来的前进道路上,机智团队仍然能与各位同行,去创造新的好成绩。

八 参考资料

[1] Large Scale Visual Recognition Challenge 2017

http://image-net.org/challenges/LSVRC/2017/

[2] http://karpathy.github.io/2014/09/02/what-i-learned-from-competing-against-a-convnet-on-imagenet/

[3] ImageNet Training in Minutes

https://arxiv.org/pdf/1709.05011.pdf

[4] Facebook 1小时训练ImageNet

https://research.fb.com/publications/ImageNet1kIn1h/

[5] Exploring the Limits of Language Modeling 

https://arxiv.org/pdf/1602.02410.pdf

[6]Optimization of Collective Communication Operations in MPICH

http://www.mcs.anl.gov/~thakur/papers/ijhpca-coll.pdf

原allreduce的公式为:t = 2(P − 1)α + (2(P − 1)β + (P −1)γ)M/P,本文根据场景进行了简化描述。

其中P为进程个数(此次亦表示GPU个数),α 代表单节点单次数据传输的延时,比如准备数据,发送数据接口调用等;β为点对点间单个字节的传输时间,通常表示为1/B,B为网络带宽;γ为两个参数的单次加法运算时间;M为参数总字节数。

[7]Google Vizier: A Service for Black-Box Optimization 4.4.2节

https://ai.google/research/pubs/pub46180

[8]PowerAI DDL, https://arxiv.org/pdf/1708.02188.pdf

[9] Extremely Large Minibatch SGD:Training ResNet-50 on ImageNet in 15 Minutes, https://arxiv.org/abs/1711.04325

本项目论文《Highly Scalable Deep Learning Training System with Mixed-Precision: Training ImageNet in Four Minutes》,将首先在arxiv上提交供查阅。

]]> 原文: https://ift.tt/2LFoRK3
RSS Feed

机器知心

IFTTT

这一次,吴恩达决定投身农业

Landing.ai 是人工智能著名学者吴恩达(Andrew Ng)的第二个创业项目。在公司成立并宣布与富士康进行合作仅 7 个月后,今天 Landing.ai 又在湖南长沙宣布签下第二个大单:与国内高端装备制造企业中联重科达成战略合作。

这份协议的签订标志着中联重科进入人工智能技术领域,成为国内首家 AI 农业装备制造企业。双方将致力于共同研发基于人工智能(AI)技术的新产品,打造顶尖人工智能技术团队,以使中联重科成为以人工智能驱动的领先装备制造企业。

据介绍,吴恩达是在今年 4 月起来到长沙开始和中联重科谈合作的,到签约用了三个多月的时间。今天,中联重科董事长詹纯新与 Landing.AI 创始人吴恩达共同出席了签约仪式。

AI 与制造业的联合

Landing.ai 是吴恩达于 2017 年 12 月成立的一家立足于解决 AI 转型问题的公司,其主要业务面向为制造业提供技术支持。公司不仅为各家制造业公司提供基于人工智能的解决方案,同时也承担员工职业培训的任务。

吴恩达拥有领导顶尖科技公司成功转型为人工智能公司的经验。他曾帮助谷歌、百度两家科技巨头进行人工智能转型。他在百度任职期间,曾带领 1300 名工程师以及科学家组成人工智能团队,负责驱动公司的全球人工智能战略以及基础架构。在此之前,他还曾主导创建了「Google Brain」,引领谷歌将深度学习等 AI 技术应用于消费产品中。

另一方面,中联重科则是一家技术驱动型装备制造企业,自 1992 年成立以来,公司以自主创新加融合发展的模式,开发了诸多引领全球行业发展的技术和产品,如曾掀起了全球混凝土行业新材料革命的碳纤维材料技术,以及吊装精度控制在 2 毫米之内的超大型 3200 吨履带起重机等。近年来,中联重科开始进军智能制造领域。该公司称,在双方此次合作的农业机械领域中,旗下的农机产品已经初步实现了自动驾驶、自动收割,智能烘干等功能,并建有数据中心,为人工智能技术应用奠定了基础。

中联重科位于长沙的厂房,图:李泽南

中联重科董事长詹纯新表示,用新技术改造装备制造,由传统而新兴,由传统而智能,由传统而灵动,新科技正无穷的魅力,新技术正无尽的活力,中联重科对拥抱新技术充满期待。

此次双方的合作主要包括技术合作与人才培养两大方向。技术合作上,Landing.AI 将为中联重科农业机械和其他领域提供人工智能技术的战略,双方将共同开发数款基于人工智能技术的农业机械产品。人才培养方面,Landing.AI 将帮助中联重科招聘、培训,为其建立一支专业的人工智能技术团队,让中联重科持续运用人工智能技术服务企业的发展。

吴恩达非常期待与中联重科开展「人工智能(AI)+农业」的合作,他表示:「詹纯新董事长具有卓越的战略眼光,并且中联重科已经建立了相关的基础数据库。现在,很多企业正在利用人工智能转型,但我认为中联重科农业机械走在了前列。」

中联重科已推出了首款有自动驾驶功能的农机车头,图:李泽南

率先打造国内 AI 农业装备

随着大数据和物联网的发展,人工智能正在逐渐进入世界的各个角落,各个行业都期待着拥抱 AI 技术。但是 AI 领域的发展沿袭了数字经济在我国的发展惯性,是从消费市场开始的。如何让实体经济与 AI 技术碰出商业价值这一重大命题,传统行业虽早已开始探索,但一直缺乏革命性的发展。

中联重科此次与人工智能公司 Landing.AI 签署战略合作协议,迈出了业内第一步,前者将成为首家国内 AI 农业装备制造企业,为自身转型升级注入了 AI 技术新动能。

全球农业产业正处于「技术革命」的风口浪尖。「我们深刻地感受到,人工智能将为农业的未来带来革命性的变化,因此,我们先行一步选择与全球顶尖团队合作,」中联重科中央研究院副院长陈拥军介绍道。

陈拥军表示,人工智能技术终端场景应用还处在发展的初期,但这个过程一旦开始,发展的速度会很快。

据《中国人工智能发展报告 2018》报告显示,2017 年中国人工智能市场规模达到 237 亿元,同比增长 67%,预计 2018 年我国人工智能市场增速将达 75%。业内人士分析称,随着 AI 等新兴技术的成熟,新一轮数字化正揭开序幕,到 2030 年有望为中国实体经济带来 7 万亿美元的巨大商业价值。可以说,未来 10 年将是人工智能的时代。

面对蓝海市场的前景,中联重科倍感信心。「我们相信,通过与 Landing.AI 的合作将保持中联重科在行业的领先地位。人工智能技术将成为公司未来发展的重要『加速器』」。

引领传统行业进入 AI 时代

在发布会上,吴恩达一直在强调帮助传统企业转型的重要性:「今天,我们都认为谷歌、Facebook 是世界上最成功的公司。我曾经帮助谷歌打造了 Google Brain;几年前,我也帮助百度成功转型成为了 AI 企业。我相信,与中联重科的合作也可以帮助它成为一家成功的 AI 公司。」

在发布会上,吴恩达、詹纯新和陈拥军还就一些大家关心的问题进行了回答:

Q1:中联重科与 Landing.ai 本次的合作为何选择了农业机械方面?

詹纯新:这个选择是吴恩达教授和我在长时间的交流以后,进行了认真的研究和思考后得出的。吴恩达教授希望将合作能够定位在农业机械方面。农业是一个关系到国计民生的行业,粮食的安全关系到社会的稳定。而近年来农业机械化的发展需要人工智能。

中联重科一直致力于助推中国农业机械登上全球价值链高端,我们非常看好此次合作的发展前景,相信最终会为用户带来由人工智能驱动的产品和服务。

吴恩达:中国目前有土地流转和兼并的大趋势——有很多过去的小块农田变成了大片农田,这意味着机械作业越来越有优势。由人工智能(AI)技术驱动的农业,将会帮助减轻农民的劳动强度,同时也使整个作业过程更加环保。这样人们将更容易获取更安全、更健康的食物。

Q2:人工智能引入农机之后,对未来的展望?

吴恩达:我们已经谈论了具体的几个项目,但是今天还不便公布。

我的爷爷在上个星期听闻了我们要进行农业机械的项目之后非常高兴。他是在香港长大的,曾经是一位种植水稻的农民,他曾经告诉过我:做农民是非常辛苦的。我们的事业会让中国的农民工作更加有效。所以,我对这次合作感到非常的兴奋。詹总也是非常有愿景的企业家,中联重科已经完成了一个非常大的数据平台。

詹纯新:我们有一个大数据平台,我们有了智能收割、无人驾驶等基础的 AI 研究。吴恩达选择与我们合作,也是看到了新技术的希望,而且我们也有了一些基础人才。我们希望未来能让国家的农业进入大数据时代。我们还想利用人工智能等新技术能够处理农业所需的气象、收成等数据,预测粮食收成。最终做到藏粮于地,藏粮于民。

吴恩达:中联重科已经有了很好的技术团队,建立起了具有很高声望的品牌。

当我们谈论到全世界最好的 AI 公司——几年前我帮助建立了谷歌大脑,在这之后我也在百度带领了 AI 团队,帮助百度进行了 AI 转型。此次合作中,我希望能够帮助中联重科成功地转型成为一家 AI 公司。

全世界最好的 AI 公司目前都有几十个很有价值的 AI 项目。我们希望在未来,中联重科能够有能力发展出很多很有价值的 AI 项目。

中联重科的工程机械在全国是非常领先的。在智能控制方面,我们有了非常丰富的经验。我们的技术将来会引入人工智能技术,更加自动化,利用机器学习减少人工,尽量减少人的干预。

Q3:AI 落地在农业机械上,目前看来最大的困难是什么?

吴恩达:很难说什么是最大的困难,我们一直在与合作伙伴选择最有价值的项目。我们专注于人工智能技术,我非常感谢我们的合作伙伴让我们了解了制造业,在这个过程中,我的团队学到了很多。我们甚至深入了田间地头。

陈拥军:自动驾驶行业和农业机械领域作对比。在汽车行业中,自动驾驶的速度比较快,要快速响应路上的人和车,摄取的数据量很大。而农业上的自动驾驶,工作速度基本在 10km/h 左右,速度会很慢,但是实现的机理是一样的。相对而言,在农业机械中,实现的成本低一些。

Q4:除了农业机械,本次合作对于中联重科的未来发展有什么影响?

詹纯新:吴恩达在工业中的人工智能上非常有经验。几个月前,Landing.ai 与富士康的合作基本面向智能制造。未来,他们还会帮助我们在人工智能战略上,培养一批优质专业团队,并传授人工智能技术。这些对中联重科整体成为先进的 AI 公司非常有意义。

Q5:在开展针对工人的人工智能职业培训上,请问您是如何思考的,这方面的内容是如何开展的?

吴恩达:我们在 Landing.ai、Deeplearning.ai 上的很多内容都是线上的。另一方面,我们也有很多对内的培训的过程,这些内容是无法在线上完成的。技术培训需要很多人的参与,在这次合作中,我们与中联重科的工程人员经常在各类项目上进行不定期的培训。我们培训工程师,不是生产线上的工人。

Q6:Landing.ai 目前主要注重于中国还是美国?

吴恩达:中国和美国都有很多在人工智能领域里非常优秀的企业。但是,如果做 AI+ 制造,有更多工厂的国家机会会比较多。目前我们的项目在世界各地都有,我们在制造业上已和中国、韩国、日本、欧洲的几个国家以及拉丁美洲的一些国家都有了合作。

延展阅读

吴恩达人工智能创业三部曲:

]]> 原文: https://ift.tt/2ArxfYp
RSS Feed

机器知心

IFTTT

JavaScript 之父联手近万名开发者集体讨伐 Oracle:给 JavaScript 一条活路吧!- InfoQ 每周精要848期

「每周精要」 NO. 848 2024/09/21 头条 HEADLINE JavaScript 之父联手近万名开发者集体讨伐 Oracle:给 JavaScript 一条活路吧! 精选 SELECTED C++ 发布革命性提案 "借鉴"Rust...