看着垃圾桶里的垃圾,不知道有多少人直挠头,因为实在不知道它们各自到底属于什么类别。别着急,人工智能可以帮助你。印度尼西亚 Gringgo Indonesia 基金会开发了一个 App,只要拍照,就能识别可回收垃圾,机器学习框架 TensorFlow,是该 App 的核心处理模块。相信不久之后,上海和后续其他 45 个城市的居民们,都有可能用上类似的 App。
TensorFlow 无疑是现在使用最广泛的机器学习开发框架。全球最大的程序员问答网站 StackOverflow 刚刚完成了 2019 年度的开发人员调查,在机器学习这个类别中,TensorFlow 的普及程度是第二名的三倍还多。
因此,如果能够优化 TensorFlow 的运行效率,将会提升机器学习的处理速度,从而推进人工智能在相关领域的应用。
英特尔刚刚发布的深度学习加速程序库 DL Boost,作为全新的内置处理器技术,其中包括向量神经网络指令集,在不影响结果正确性的前提下,以降低精度的量化方式,可以将内存使用减少4倍,同时提升计算指令运行数量,在第二代至强 可扩展处理器上运行,针对不同模型的吞吐量可以加速 3.1到 4 倍。
量化加速推理,AI 加速普及
将深度神经网络投入具体应用,需要两个阶段:第一阶段是训练过程,使用海量数据和算力训练神经网络;第二阶段是推理过程,也就是将训练好的神经网络处理未知数据,加以分类、识别、处理。在推理过程,需要处理的数据量比训练少,因为这已经是实际应用阶段,需要针对特定场景处理特定数据,此时,更重要的是响应和效率优化。
英特尔预测,到 2020 年,推理周期和训练周期之间的比率将从深度学习初期的 1:1 提高至超过 5:1。也就是说,在人工智能领域,推理的比重将会越来越重要。英特尔称这一转变为 “大规模推理”。因此,优化加速推理过程,也就相当于加速推进 AI 普及。
量化(Quantization)是加速模型推理过程常用的方法。这样做有两个好处:减少模型占用空间,同时节省计算资源。量化之后,不但可以更快速地运行模型,而且功耗更低,尤其有利于移动设备。过去很多无法高效运行浮点数模型的嵌入式系统,现在可以运行推理过程,这就为物联网的大量应用开启了广大空间。
已经使用了 32 位浮点数的模型,借助英特尔 Optimization for TensorFlow 开源优化框架,支持无缝量化到 8 位 完成模型推理过程,而且不需要其他程序库,就可以在至强 第二代处理器上利用 DL Boost 的强大能力。
此外,英特尔还提供了可以离线使用的 Optimization for TensorFlow Quantization 量化工具,将已经训练好的 32 位浮点模型转化为量化好的 8 位推理模型。在保留准确性的前提下,英特尔已经用其量化了多个常用的深度学习模型,包括卷积和前馈神经网络,可以在开源项目 Intel-model-zoo 中找到。
具体量化过程,可以分为以下三个步骤:
★将 fp32 推理模型导出为序列化的 TensorFlow GraphDef;
★ 将 fp32-graph 图数据 转化为量化的 quantized-graph 图数据;
★ 校准、优化量化的 quantized-graph 图数据。
简而言之,英特尔 DL Boost 程序库和第二代至强 可扩展处理器,可以加速深度学习模型推理过程,而且不需要使用其他程序库,就能优化 TensorFlow 中的量化过程,对于计算机视觉、自然语言处理和语音识别等应用特别有效。
从TensorFlow开始,让世界更美好
当然,与英特尔合作的绝不仅限于 TensorFlow。无论是 Apache 的 MXNet,还是 Caffe、PyTorch,英特尔都有相关优化。今年3月,微软也宣布与英特尔合作,为Azure带来优化的深度学习框架。在这些主流机器学习框架上,让英特尔 至强 可扩展处理器的性能不断提升,将会满足越来越多不同场景、不同行业的人工智能需求。
人工智能的终极目的,就是要让我们的社会变得更加美好,让我们的生活更加便利。也许要不了多久,在人工智能和机器学习的帮助下,我们不光不必为垃圾分类费神,甚至连垃圾处理都不再是人类的难题。
领取专属 10元无门槛券
私享最新 技术干货