如何评估深度学习的性能?英伟达提出7大挑战

关于深度学习性能,还有很多不明之处。例如,你怎么进行测量?你应该测量什么?在不久之前的 GTC 2018,英伟达 CEO 黄仁勋介绍了 PLASTER 框架,从可编程性到学习率 7 大挑战来评测深度学习性能。今日,英伟达博客对 PLASTER 框架进行了详细介绍,机器之心编译了相关白皮书的主要内容。

白皮书链接:https://www.tiriasresearch.com/wp-content/uploads/2018/05/TIRIAS-Research-NVIDIA-PLASTER-Deep-Learning-Framework.pdf

PLASTER 代表的含义:

  • 可编程性(Programmability)

  • 延迟(Latency)

  • 准确率Accuracy

  • 模型大小(Size of Model)

  • 吞吐量(Throughput)

  • 能效(Energy Efficiency)

  • 学习率(Rate of Learning)

可编程性

机器学习不仅在模型的规模和复杂性方面经历了爆炸性的增长,而且在神经网络体系结构的多样性方面也经历了类似的增长。即使是专家也很难理解模型的选择,然后选择合适的模型来解决他们的人工智能问题。

在对深度学习模型进行编码和训练之后,针对特定的运行时推断环境对其进行优化。英伟达使用两个关键工具解决训练和推理难题。在编码方面,基于人工智能的服务开发人员使用 CUDA,这是一个并行计算平台和 GPU 通用计算的编程模型。在推断方面,基于人工智能的服务开发人员使用了英伟达的可编程推断加速器 TensorRT。

CUDA 通过简化在英伟达平台上实现算法所需的步骤来帮助数据科学家。TensorRT 可编程推断加速器采用经过训练的神经网络,并对其进行优化以用于运行时部署。它测试浮点数和整数精度的不同级别,以便开发人员和运算过程能够平衡系统所需的准确率和性能,从而提供优化的解决方案。

开发人员可以直接在 TensorFlow 框架中使用 TensorRT 来优化基于人工智能的服务交付模型。TensorRT 可以从包括 Caffe2、MXNet 和 PyTorch 在内的各种框架中导入开放神经网络交换 ( ONNX ) 模型。虽然深度学习仍然是在技术层面编码,但这将帮助数据科学家更好地利用宝贵的时间。

延迟

人和机器做决策或采取行动时都需要反应时间。延迟就是请求与做出回应之间所需要的时间。大部分人性化软件系统(不只是 AI 系统),延迟都是以毫秒来计量的。

由于 Siri、Alexa 等语音接口的出现,语音识别成为了很常见的一种应用。在消费者与客服领域,虚拟助手是很大的一种需求。但是,当人们接入虚拟助手时,即使数秒的延迟都会让人感觉不自然。

图像和视频管理是另一种需要低延迟、实时推理服务的应用。谷歌曾表示,7 毫秒是图像和视频管理应用的最优化延迟。

另一个例子是自动翻译。早期基于程序、专家系统的设计,不能理解高速语言的细微差别,难以提供实时会话。现在,深度学习进一步改进了机器翻译。

准确率

虽然准确率对每个行业来说都不可或缺,但对医疗保健行业来说尤其重要。在过去的几十年中,医学成像技术有了很大进步,增加了其在医疗中的使用量,并且需要更多的图像分析来确定医学问题。医学成像的进步和使用还意味着必须把大量数据从医疗器械传给医学专家进行分析。解决数据量问题有两个选择:一是以较长延迟为代价传输完整信息,二是对数据进行采样并使用技术对其进行重建,但这些技术可能导致错误的重建和诊断。

深度学习的一个优点是可以以高精度进行训练,并且以较低精度实现。深度学习训练可以在更高级别的数学精度上非常精确地进行,通常选择 FP32。然后在运行时可以用较低精度的数学来实现,通常选择 FP16,从而获得改良的吞吐量、效率甚至延迟。保持高准确率对于最佳用户体验至关重要。TensorRT 利用 Tesla V100 Tensor Core 的 FP16 处理以及 Tesla P4 的 INT8 特性来加速推断,与 FP32 相比,其推理速度提高了 2 - 3 倍,同时准确率损失接近零。

基于人工智能的服务开发人员可以优化其深度学习模型以提高效率,然后在工作中以较低代价实现这些模型。

图 2:TensorRT 降低了精度的推断性能

模型大小

深度学习模型的大小和处理器间的物理网络容量都对性能有所影响,特别是在延迟和吞吐量方面。深度学习网络模型数量激增,模型大小和复杂性随之增加,也因此能够做更复杂的分析,满足了更强大系统的训练需求。在深度学习模型中,计算力和物理网络扩展的原因是:

  • 网络层数量

  • 每层节点(神经元)数量;

  • 每层计算复杂度

  • 一个网络层节点间连接的数量以及相邻层间节点的数量

深度学习市场还处于早期阶段。在对比模型大小时,当前的思路都归结于物理关联:深度学习模型大小与计算和推理所需的物理网络资源成正比。例如,当开发者优化一个已训练深度学习模型来保证推断准确率和延迟时,可能会降低计算精度、简化每个模型网络层或者简化模型网络层间的连接。然而,使用更大的已训练模型往往会带来更大的优化模型来做推断。

图 3:深度学习模型大小

吞吐量

吞吐量用来表述:在给定创建或部署的深度学习网络规模的情况下,可以传递多少推断结果。开发人员越来越多地在指定的延迟阈值内优化推断。虽然延迟限制可确保良好的客户体验,但在此限制内最大化吞吐量对于最大限度地增加数据中心效率和收益至关重要。

人们倾向于把吞吐量作为唯一的性能指标,因为每秒计算的次数越多,其他领域的性能就越好。但是,如果系统无法在指定的延迟要求、电源预算或服务器节点数内提供足够的吞吐量,那它最终将无法很好地满足应用程序的推断需求。如果吞吐量和延迟之间缺乏适当的平衡,结果会是较差的客户体验、服务等级协议(SLAs)缺失,以及服务可能出现故障。

娱乐业长期以来一直把吞吐量作为关键性能指标,尤其是在动态广告投放中。例如,品牌赞助商将广告动态地置于诸如电视节目或体育赛事的视频流中。广告商想知道其广告出现的频率,以及它们是否传达给了预期受众。了解这些投放的准确性和焦点对于广告商来说至关重要。

图 4:直播时的图像识别

能效

随着深度学习加速器性能的提高,深度学习加速器的能耗也飞速增加。为深度学习解决方案提供 ROI 涉及了更多的层面,而不能仅仅看到系统的推断性能。能耗增长会快速增加提供服务的成本,这推动了在设备和系统中对提高能效的需求。

例如,语音处理中通常需要海量处理来提供自然语音的智能应答。提供实时语音处理的数据中心推断通常涉及大量计算机资源的支撑,并给企业总成本带来很大的影响。因此,行业中使用每瓦特推断数(inferences-per-watt)来度量运营状况。超大规模数据中心追求能效的最大化,以在固定电源预算的情况下提供尽可能多的推断。

解决方案不是仅仅看哪些单独的处理器拥有更低的能耗。例如,如果某个处理器的功率是 200W,另一个处理器的功率是 130W,这并不表示 130W 的处理器系统更好。如果 200W 的系统能以 20 倍的速度更快地完成任务,那么它的能效更大。

每瓦特推断数还取决于训练过程和推断过程中的延迟因素。能效不仅取决于过程中的纯能耗,还取决于吞吐量。能效是另一个展示 PLASTER 元素相互关联的例子,并且必须在完整的推断性能图景中被考虑到。

学习率

近年来,企业开始实施开发运营,使用更强大的系统和更高级的编程工具,让开发和业务变得更加紧密。虽然深度学习仍处于起步阶段,但很多等待利用深度学习的学术、政府和商业机构却并非如此。他们想要的不是利用空洞而静态的数据训练出来的推断引擎。「AI」中包含了智能(intelligence)一词,用户希望神经网络能在合理的期限内进行学习和适应。为了让复杂的深度学习系统推动商业发展,软件工具开发者必须支持开发运营。

随着组织机构继续对深度学习和神经网络进行实验研究,他们将学习如何更有效地构建和实现深度学习系统。由于推断服务持续接收新数据并且服务本身也在增长和变化,深度学习模型必须周期性地重新训练。为此,当新数据到达时,IT 机构和软件开发者必须更快地重新训练模型。多 GPU 服务器配置已经使深度学习训练时间从数周、数天降低到了数小时、数分钟。更快的训练时间意味着开发者可以更频繁地重新训练他们的模型以提高准确率或保持高准确率。目前一些深度学习实现已经可以每天重新训练多次。

可编程性也是学习率的一个影响因素。为了减少开发者工作流,谷歌和英伟达近日发布了 TensorFlow 和 TensorRT 的集成。开发者可以在 TensorFlow 框架内调用 TensorRT 来优化已训练的网络,从而在英伟达的 GPU 上高效运行。深度学习能够更好地整合训练过程和推断过程,因而更易成为开发运营的解决方案,帮助机构在迭代他们的深度学习模型时快速地实现变化。


参考链接:https://blogs.nvidia.com/blog/2018/05/12/how-do-i-understand-deep-learning-performance/

产业英伟达GTC评测
相关数据
人工智能技术
Artificial Intelligence

在学术研究领域,人工智能通常指能够感知周围环境并采取行动以实现最优的可能结果的智能体(intelligent agent)

神经网络技术
Neural Network

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

学习率技术
Learning rate

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

机器学习技术
Machine Learning

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

神经元技术
neurons

(人工)神经元是一个类比于生物神经元的数学计算模型,是神经网络的基本组成单元。 对于生物神经网络,每个神经元与其他神经元相连,当它“兴奋”时会向相连的神经元发送化学物质,从而改变这些神经元的电位;神经元的“兴奋”由其电位决定,当它的电位超过一个“阈值”(threshold)便会被激活,亦即“兴奋”。 目前最常见的神经元模型是基于1943年 Warren McCulloch 和 Walter Pitts提出的“M-P 神经元模型”。 在这个模型中,神经元通过带权重的连接接处理来自n个其他神经元的输入信号,其总输入值将与神经元的阈值进行比较,最后通过“激活函数”(activation function)产生神经元的输出。

语音识别技术
Speech Recognition

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

准确率技术
Accuracy

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

机器之心
机器之心

机器之心编辑

推荐文章
返回顶部