机器之心编辑部报道

从硬件到框架,30+巨头参与的AI基准竞争结果公布(第一回合)

MLPerf 是一项机器学习公开基准,展示了每个参与机构在特定任务上利用自有资源所能达到的最佳性能。该基准于今年 5 月启动,已经得到了来自 30 多个公司的研究者和科学家的支持,包括英特尔、英伟达、百度和谷歌等。此外,MLPerf 还获得了来自 7 所高校的研究者的支持。今天,该项目背后的科学家公布了第一个回合的竞赛结果,同时 Facebook 和微软也宣布支持 MLPerf。

MLPerf 结果展示地址:https://mlperf.org/results/?from=timeline&isappinstalled=0

在历史上,基于清晰指标的技术竞争带来了快速的进步,例如 SPEC 基准推动了 CPU 在 15 年内以每年 1.6 倍的速度提升性能。MLPerf 希望在机器学习社区做同样的事情,以推动 ML 系统性能的快速提升。由于大规模机器学习实验仍然需要耗费数天或数星期的时间,提升 ML 系统性能对于释放机器学习潜力而言非常关键。

今天,支持 MLPerf 的研究者和工程师们公布了他们第一个回合的竞赛结果。他们测量了多种机器学习任务在主流机器学习硬件平台上的训练时间,包括谷歌的 TPU、英特尔的 CPU 和英伟达的 GPU。其结果还反映了机器学习软件框架(如 TensorFlow、PyTorch 和 MXNet)的训练速度对比。MLPerf 结果旨在帮助决策者评估现有产品并关注未来发展。

基准测试与开源

1.Nvidia

英伟达在其提交的六个 MLPerf 基准测试结果中取得了最佳性能。它们涵盖了各种工作负载和基础架构规模:从一个节点上的 16 个 GPU 到 80 个节点上的多达 640 个 GPU。

这六个类别包括图像分类、目标实例分割、目标检测、非循环翻译、循环翻译和推荐系统。英伟达在其中表现特别出色的一个基准是语言翻译,仅需 6.2 分钟即可完成 Transformer 神经网络的训练。

测试平台:

  • 图像分类和翻译(非循环)——DGX-1V 集群。

  • 目标检测(重量级)、检测(轻量级)和翻译(循环)——DGX-2H 集群。

  • 每个 DGX-1V 包含:双插槽 Xeon E5- 2698 V4、512GB 系统 RAM、8 x 16 GB Tesla V100 SXM-2 GPU。

  • 每个 DGX-2H 包含:双插槽 Xeon Platinum 8174、1.5TB 系统 RAM、16 x 32 GB Tesla V100 SXM-3 GPU,通过 NVSwitch 连接。

2.Intel

英特尔提交了 Intel Xeon Scalable 处理器的 MLPerf 结果,并表示「我们致力于深度学习的用户端和计算机系统开发」。结果显示,Intel Xeon Scalable 处理器已超过性能阈值:对于希望在其基础架构上运行多个工作负载而无需投资专用硬件的数据科学家而言,它们可以成为一种有效的选择。

英特尔表示,CPU 如今已经能够进行深度学习训练和推理。MLPerf Intel Xeon Scalable 处理器结果与 MLPerf 参考 GPU 相比,在各种 MLPerf 深度学习训练工作负载上的效果相当。例如,英特尔提交的单系统双插槽 Intel Xeon Scalable 处理器结果在 MLPerf 图像分类基准测试(Resnet-50)上得分为 0.85;在推荐系统基准(Neural Collaborative Filtering NCF)上的得分为 1.6;在强化学习基准(mini GO)的得分为 6.3。

在所有这些分数中,1.0 被定义为参考 GPU 上参考实现的分数。对于前面的所有结果,英特尔都使用了 FP32,这是当今市场上常用的数值精度。根据这些 MLPerf 结果,英特尔表示游戏测试机器人可以轻松地在 Intel Xeon Scalable 处理器上进行训练。

3.Facebook

Facebook 未参与这次的 MLPerf,但已经声明将提供针对边缘推理的两个 ML 模型在开源数据集上训练的基准参考实现。对于图像分类,Facebook 将提供当前最佳的 ShuffleNet 模型的实现。对于姿态估计,Facebook 将提供由 Facebook 的移动视觉研究人员开发的 Mask R-CNN2Go 模型的实现。

Facebook 还将开源 Mask R-CNN2Go,并称其为「针对嵌入式和移动设备优化的领先计算机视觉模型」。Mask R-CNN2Go 构成了各种设备 ML 应用的基础:目标检测、分类、人物分割和身体姿态估计,实现准确、实时的推理。

为什么基准实现这么重要

MLPerf 这样的基准实现对于整个工业界都是非常重要的:

  • 百度王海峰说:「我们很高兴 MLPerf 从一个概念发展成由各公司和学术机构支持的社区,今天发布的结果将为行业改进和 AI 的发展开辟新的先例。」

  • Facebook Bill Jia 表示:「如 MLPerf 和 ONNX 这样的开放标准是推动整个行业机器学习创新和协作的关键,我们很期待参与 MLPerf,并标准化基准测试。」

  • 微软 Eric Boyd 说:「开放的生态系统能使 AI 开发者更快地实现创新,除了 ONNX 外,微软很高兴参与 MLPerf 以支持开放和标准的性能基准测试。」

近日发布的 MLPerf 训练基准套件包含七部分,即图像分类、目标检测、翻译、推荐、语音识别、情感分析和强化学习。度量的方法即训练一个模型以达到目标准确率所需要的时间。MLPerf 的所需时间同样会根据模型在单块 NVIDIA Pascal P100 GPU 的性能归一化,这些作为参考的 P100 GPU 实现没有优化超参数。

MLPerf 的结果根据专区和给定的产品或平台进行分类,目前有两种专区,即封闭专区(Closed Division)和开放专区(Open Division)。其中封闭专区会指定使用的模型,并限制批量大小或学习率等超参数的值,它对于对比硬件和软件系统非常公平。而开放模型专区会只会限制使用相同的数据解决相同的问题,其它模型或平台都不会限制。

提交到封闭专区的基准测试必须使用相同模型和优化器,提交到开放专区的模型可以使用任意模型。在每一个专区内,提交的测试结果又可以分为云端、企业预置型、预览型和研究型。研究型系统需要包含实验性硬件或软件,或者还没大规模开放。

度量标准是训练时间

每个 MLPerf 训练基准测试的度量标准是:在特定数据集上训练一个模型使其达到特定性能的总体时间。众所周知,机器学习任务的训练时间有很大差异,因此,MLPerf 的最终训练结果是由指定次数的基准测试时间平均得出的,其中会去掉最低和最高的数字。

所有结果都会被转换为加速比(Speedups),因为不同的基准测试需要不同的时间进行训练。加速比是和模型在未优化条件下应用在一块 Pascal P100 上的训练时间比值。因此,MLPerf 的结果若是数字 10,则表示被测试系统的训练速度是在一块 Pascal P100 上训练同一个机器学习模型速度的 10 倍,训练时间是其 1/10。

当然,即使是多个结果平均的情况也无法消除所有方差。MLPerf 图像处理基准测试结果大约有+/- 2.5% 的浮动范围,而 MLPerf 基准测试则为+/-5%。

完整测试结果

MLperf 的结果表格首先按照 Division 分类,然后按照 Category 分类。结果表格中的每一行都是由单个提交者使用相同软件堆栈和硬件平台生成的一组结果。每行包含以下信息:

  • Submitter(提交者):提交结果的组织。

  • Hardware(硬件):使用的 ML 硬件类型,例如加速器或高性能 CPU。

  • Chip Count and Type(芯片数量和类型):使用的 ML 硬件芯片的数量,以及它们是加速器(a)还是 CPU(c)。

  • Software(软件):使用的 ML 框架和主要 ML 硬件库。

  • Benchmark Results(基准测试结果):默认情况下,基准测试结果表示为相对于 Pascal P100 的加速。

  • Cloud Scale(云规模,仅适用于可用云系统):云规模源自几家主要云提供商的按需定价,并提供相对系统规模/成本的粗略指标。参考单个 Pascal P100 系统的云规模为 1。云规模为 4 的系统大约需要四倍的成本。

  • Power(功率,仅适用于非可用云系统):可用内部部署系统的信息。由于标准化功率测量的复杂性,此版本 MLPerf 只允许自愿报告任意非官方功率信息。

  • Details(详细信息):链接到提交的元数据。

以下展示了封闭专区完整的基准测试结果,开放专区目前还没有基准测试的提交结果。每一个专区又可以分为加速比度量和时间度量,它们之间是可以转换的。

如下图所示,在 Closed Division Speedups 表格中的部分结果。参考基准为单个 Pascal P100,云规模为 1,在各种基准测试上的分数都为 1(参考值)。谷歌使用的硬件为 4 个 TPUv2.8,云规模为 2.6,在图像分类任务的 ImageNet 数据集上训练 ResNet-50 v1.5 的相对训练加速比为 29.3。切换到后一张 Closed Division Times 的表可以看到对应的具体训练时间。

我们可以看到,TPUv3.8 的效率非常高,单个芯片数量基本上是加速比最高的(24.1),且云价格还和单块 Pascal P100 差不多。在七项任务中,强化学习基准测试是最少的,这也可能是它比较难标准化,且硬件的加速效果也不明显。

此外,土豪英伟达展示了大规模 GPU 并行的效果,它们使用 80 个 DGX-1(260 块 V100)在 ImageNet 数据集上实现了 1424.4 的加速比。Intel Xeon Scalable(2S SKX8180)实现了近似 P100 的效果,这也是 CPU 在训练上的应用。

除了加速比,下图展示了使用各个框架和硬件平台的实际训练时间,其单位为分钟。

参考内容:

https://mlperf.org/results/?from=timeline&isappinstalled=0

https://github.com/mlperf/policies/blob/master/training_summary.adoc

https://blogs.nvidia.com/blog/2018/12/12/record-breaking-mlperf-ai-benchmarks/

https://code.fb.com/ml-applications/mask-r-cnn2go/

https://ai.intel.com/mlperf-results-validate-cpus-for-dl-training/

产业Facebook英伟达英特尔MLPerf
2
相关数据
英特尔机构

英特尔是计算创新领域的全球领先厂商,致力于拓展科技疆界,让最精彩体验成为可能。英特尔创始于1968年,已拥有近半个世纪产品创新和引领市场的经验。英特尔1971年推出了世界上第一个微处理器,后来又促进了计算机和互联网的革命,改变了整个世界的进程。如今,英特尔正转型成为一家数据公司,制定了清晰的数据战略,凭借云和数据中心、物联网、存储、FPGA以及5G构成的增长良性循环,提供独到价值,驱动日益发展的智能互联世界。英特尔专注于技术创新,同时也积极支持中国的自主创新,与产业伙伴携手推动智能互联的发展。基于明确的数据战略和智能互联全栈实力,英特尔瞄准人工智能、无人驾驶、5G、精准医疗、体育等关键领域,与中国深度合作。面向未来,英特尔致力于做中国高价值合作伙伴,在新科技、新经济、新消费三个方面,着力驱动产业协同创新,为实体经济增值,促进消费升级。

https://www.intel.com/content/www/us/en/company-overview/company-overview.html
相关技术
微软机构

微软是美国一家跨国计算机科技公司,以研发、制造、授权和提供广泛的计算机软件服务为主。总部位于美国华盛顿州的雷德蒙德,最为著名和畅销的产品为Microsoft Windows操作系统和Microsoft Office办公室软件,以及Xbox的游戏业务。微软是美国《财富》杂志2015年评选的世界500强企业排行榜中的第95名。

https://www.microsoft.com/en-us/about
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

基准技术

一种简单的模型或启发法,用作比较模型效果时的参考点。基准有助于模型开发者针对特定问题量化最低预期效果。

数据科学技术

数据科学,又称资料科学,是一门利用数据学习知识的学科,其目标是通过从数据中提取出有价值的部分来生产数据产品。它结合了诸多领域中的理论和技术,包括应用数学、统计、模式识别、机器学习、数据可视化、数据仓库以及高性能计算。数据科学通过运用各种相关的数据来帮助非专业人士理解问题。

学习率技术

在使用不同优化器(例如随机梯度下降,Adam)神经网络相关训练中,学习速率作为一个超参数控制了权重更新的幅度,以及训练的速度和精度。学习速率太大容易导致目标(代价)函数波动较大从而难以找到最优,而弱学习速率设置太小,则会导致收敛过慢耗时太长

超参数技术

在机器学习中,超参数是在学习过程开始之前设置其值的参数。 相反,其他参数的值是通过训练得出的。 不同的模型训练算法需要不同的超参数,一些简单的算法(如普通最小二乘回归)不需要。 给定这些超参数,训练算法从数据中学习参数。相同种类的机器学习模型可能需要不同的超参数来适应不同的数据模式,并且必须对其进行调整以便模型能够最优地解决机器学习问题。 在实际应用中一般需要对超参数进行优化,以找到一个超参数元组(tuple),由这些超参数元组形成一个最优化模型,该模型可以将在给定的独立数据上预定义的损失函数最小化。

TensorFlow技术

TensorFlow是一个开源软件库,用于各种感知和语言理解任务的机器学习。目前被50个团队用于研究和生产许多Google商业产品,如语音识别、Gmail、Google 相册和搜索,其中许多产品曾使用过其前任软件DistBelief。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

推荐系统技术

推荐系统(RS)主要是指应用协同智能(collaborative intelligence)做推荐的技术。推荐系统的两大主流类型是基于内容的推荐系统和协同过滤(Collaborative Filtering)。另外还有基于知识的推荐系统(包括基于本体和基于案例的推荐系统)是一类特殊的推荐系统,这类系统更加注重知识表征和推理。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

语音识别技术

自动语音识别是一种将口头语音转换为实时可读文本的技术。自动语音识别也称为语音识别(Speech Recognition)或计算机语音识别(Computer Speech Recognition)。自动语音识别是一个多学科交叉的领域,它与声学、语音学、语言学、数字信号处理理论、信息论、计算机科学等众多学科紧密相连。由于语音信号的多样性和复杂性,目前的语音识别系统只能在一定的限制条件下获得满意的性能,或者说只能应用于某些特定的场合。自动语音识别在人工智能领域占据着极其重要的位置。

图像处理技术

图像处理是指对图像进行分析、加工和处理,使其满足视觉、心理或其他要求的技术。 图像处理是信号处理在图像领域上的一个应用。 目前大多数的图像均是以数字形式存储,因而图像处理很多情况下指数字图像处理。

MXNet技术

MXNet是开源的,用来训练部署深层神经网络的深度学习框架。它是可扩展的,允许快速模型训练,并灵活支持多种语言(C ++,Python,Julia,Matlab,JavaScript, Go,R,Scala,Perl,Wolfram语言)

掩饰的基于区域的卷积神经网络技术

Mask R-CNN是一个概念上简单,灵活和通用的对象实例分割框架。 该方法能够高效地检测图像中的对象,同时为每个实例生成高质量的分割蒙版。 这种方法通过添加一个用于预测对象蒙版的分支来扩展R-CNN使之更快,该分支与现有的用于边界框识别的分支并行。

图像分类技术

图像分类,根据各自在图像信息中所反映的不同特征,把不同类别的目标区分开来的图像处理方法。它利用计算机对图像进行定量分析,把图像或图像中的每个像元或区域划归为若干个类别中的某一种,以代替人的视觉判读。

强化学习技术

强化学习是一种试错方法,其目标是让软件智能体在特定环境中能够采取回报最大化的行为。强化学习在马尔可夫决策过程环境中主要使用的技术是动态规划(Dynamic Programming)。流行的强化学习方法包括自适应动态规划(ADP)、时间差分(TD)学习、状态-动作-回报-状态-动作(SARSA)算法、Q 学习、深度强化学习(DQN);其应用包括下棋类游戏、机器人控制和工作调度等。

优化器技术

优化器基类提供了计算梯度loss的方法,并可以将梯度应用于变量。优化器里包含了实现了经典的优化算法,如梯度下降和Adagrad。 优化器是提供了一个可以使用各种优化算法的接口,可以让用户直接调用一些经典的优化算法,如梯度下降法等等。优化器(optimizers)类的基类。这个类定义了在训练模型的时候添加一个操作的API。用户基本上不会直接使用这个类,但是你会用到他的子类比如GradientDescentOptimizer, AdagradOptimizer, MomentumOptimizer(tensorflow下的优化器包)等等这些算法。

推荐文章
暂无评论
暂无评论~