IT思维

文章页右侧顶部广告

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

2018-05-13 13:21:46 0 人工智能 | , ,
公众号/机器之心

选自tiriasresearch

作者:David A. Teich等

机器之心编译

关于深度学习性能,还有很多不明之处。例如,你怎么进行测量?你应该测量什么?在不久之前的 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/

IT思维

IT思维(itsiwei.com)是互联网首个定位在科技与电商“思维”韬略的平台,我们时刻关注互联网电商行业新动向; 诚邀行业资深从业者加入“思维客家族”!
Return to Top ▲Return to Top ▲