机器之心编辑部
今天,各行各业正与人工智能(AI)加速融合,通过智能化创新来寻求业务转型升级。与为数不多的顶级 AI 研发公司相比,大多数传统行业或企业有着更丰富的 AI 应用场景,推动着规模化的 AI 应用落地,其 AI 应用更具有实践意义。然而,在智能化技术架构和平台选择上,它们又往往面临着「拿着钉子到处找锤子」的尴尬局面。
尽管有人津津乐道于承载 AI 应用的一些专用架构平台,但实际情况是:仅采用专用加速芯片或优化单一框架,已经无法满足运行不同工作负载和适应不同应用场景所需。这是因为,AI 的应用需求是多种多样的,不同的应用也决定了从数据中心到边缘再到设备所需的硬件能力都会有所差别。而且,解决企业 AI 规模化落地,需要充分利用以数据为中心的基础架构,考虑芯片处理器、核心算法和软件工具等平台解决方案的选择。
无论是算法工程师、AI 开发者还是数据科学家,他们在选择 AI 技术架构和平台时会有多方面的考量。一个共识是,基于既有的 IT 基础设施,统一大数据和人工智能平台,可以更加高效释放数据价值,实现 AI 业务目标。人们正在发现,更加通用的英特尔架构具有重要的先发优势。由英特尔计算架构和至强平台的助力,人工智能技术可以帮助企业从既有的平台起步,加速「破局」AI 产业实践。
英特尔 AI 架构带来的优势可以从七个方面说起,其中包括性能、数据预处理、可扩展性、内存、模型部署、大数据分析,以及跨平台部署应用。
第一重助力:性能
今天,CPU 性能优化已有数量级的提升,VNNI 和框架优化等大幅提升了 CPU 架构运行深度学习推理的速度。
很多人可能都认为 AI 这种新出现的技术,或者说应用负载,也应该用新的架构来支撑,其实不然。实际上随着 CPU 性能的数量级提升,以及在软硬件层面针对 AI 应用的不断优化,CPU 平台也能很好地承载 AI 应用。现在 CPU 能兼容几乎所有的 AI 主流技术,深度学习的应用任务,特别是推理,完全可以用 CPU 来搞定。而且 CPU 还有一个特定的优势,就是当用户混合使用机器学习和深度学习方法时,CPU 更适合承载这样的任务。
不断更新换代的英特尔 CPU 平台,已经在众多 AI 应用,特别是推理上提供了强大的算力。以第二代英特尔至强可扩展处理器为例,它集成了加速人工智能深度学习推理的英特尔深度学习加速(英特尔 DL Boost)技术,将人工智能性能提升到一个全新的水平,可加速数据中心、企业和智能边缘计算环境中的人工智能推理工作负载。以常见的 Caffe Resnet-50 模型为例来看性能变化,第二代英特尔至强铂金 8280 处理器借助英特尔 DL Boost 技术,图像识别的速度可比上一代英特尔至强可扩展处理器提升 14 倍。
另外,英特尔 CPU 平台还与各类主流深度学习框架(包括 TensorFlow、PyTorch、caffe 、MXNet、PaddlePaddle、BigDL 等)合作,针对 CPU 的 AI 训练和 AI 推理功能进行全面优化,Xeon 处理器训练性能因此得到不断提升,客户也可以选择使用适合自身需求的深度学习框架做模型训练,而无需购买或者设置不同的硬件基础设施。
随着软件工具的不断更新及面向主流框架的深度优化,CPU 平台不论是支持基于单一 AI 技术的应用,还是在运行融合了多种 AI 技术的应用时,其性能表现都更为突出。
对于全新硬件架构的每一个数量级的性能提升潜力,软件能带来超过两个数量级的性能提升。以第二代英特尔至强可扩展处理器上的 VNNI 深度学习加速指令为例,过去卷积神经需要三条指令,而现在的话一条指令就可以了,通过在底层的软硬件协同优化,可根据不同深度学习框架将推理性能加速 2-3 倍甚至更多。
第二重助力:数据预处理
数据的处理分析和之后的 AI 应用如果在一个平台上,可以给用户带来更大的便利性,也能节省成本和降低风险。
尽管当前市场对于 AI 技术抱有很大兴趣,但实施水平仍然相当低下。我们需要根据应用需求构建起完整的数据分析/AI 流水线,从高质量数据源整理、数据预处理与清洗、适当特征数据的选择与构建等前期工作开始,这就要求数据工程师、算法工程师等协同工作。
算法工程师往往要花很多时间,来处理用于深度学习模型训练和测试的庞大数据,数据预处理会涉及很多很零碎的事情,比如校对数据的标注是否符合某种逻辑。在进行数据预处理时,所写的代码不一定是执行起来效率最高的,因为有可能这些零碎的校验数据功能只用一次,而不是反复使用。在这种情况下,可以使用方便快速实现功能的 Python 语言调用 CPU 来实现,而且基于 CPU 有很多现成的包和工具,具有更快数据预处理的优势。CPU 还可以通过使用更多内存、减少 I/O 操作来提升 AI 运行效率。
如今的深度学习和 AI 领域,优秀的算法和框架数不胜数,但英特尔开源的 BigDL 和采用了这一技术的 Analytics Zoo 平台选择了一个颇具独特性的切入点,那就是专为已有大数据集群的场景设计。目前,来自零售业、金融服务行业、医疗保健业、制造业及电信业等领域的企业客户都已经开始在英特尔至强服务器上利用 Analytics Zoo、或基于 BigDL 构建更为平滑无缝的数据分析-AI 应用流水线。
第三重助力:可扩展性
作为普遍使用的基础设施,CPU 平台就是为可扩展性而搭建的,它们不仅易于在更多节点上进行扩展,还能按核实现弹性扩展和调配。
在深度学习和机器学习领域,不管是模型训练还是推理,为了分配和部署计算能力,常常需要基于现有的 IT 基础设施或者云平台进行硬件扩展。目前一些专有的 AI 架构平台只能以卡或芯片为单位来管理和扩展,而英特尔至强平台不仅更容易在更多节点上扩展,还能按核实现弹性的扩展和调配,能真正做到精细化的资源管理和调配。这使得 AI 平台可以尽可能通过云化来提高灵活性,提升自动化管理水平,并充分利用到每个计算核心的价值等。
比如有开发者指出,在新一代 Skylake-SP 微构架芯片设计上,英特尔首次开始采用了全新网格互连构架(Mesh Interconnect Architecture)设计方式,从传统的利用环形连接,到了新设计则全面改采用网格互连的方式,来进行资料存取与控制指令的传送。因为最小单位可以是以每行、每列来连接,所以每颗 Skylake-SP 核心、缓存、内存控制器及 I/O 控制器之间的路径选择变得更多元,还可以跨不同的节点互连,以寻找最短的数据传递捷径,即使是加大核心数量,也能够维持很快存取数据,并支持更高内存频宽,以及更高速的 I/O 传输。
第四重助力:内存
CPU 易扩展缓存,而英特尔傲腾 DC 持久内存 Apache Pass 更是集大容量、经济性和持久性于一身,性能接近 DRAM。
不论是 AI 训练还是推理,靠近计算单元的内存或者说较高速的数据缓存都非常重要。在 AI 分析中,它们对训练中的神经网络构建,并通过该网络进行推理比较都有着重要的影响。因此我们希望在靠近计算单元的地方尽可能缓存更多数据。其容量的增加,会很大程度上提高 AI 的整体性能、准确性、响应速度。
训练深度学习模型时,占用 CPU 内存比较大,一般来说单台刀片可以轻松做到 256GB 以上的内存,做分布式训练时还可以把数据分配到不同机器上进行计算,而且可以尽量把数据预存到 CPU。此外,CPU 大内存的优势不仅体现在训练上,更主要的是推理,比如对尺寸很大的医疗影像模型进行推理处理。
即使没有英特尔傲腾数据中心级持久内存的出现,英特尔至强处理器平台也很容易扩展内存的容量。但有了这种全新类型的产品后,内存的存储密度/价格比可能会更理想,其性能也接近 DRAM,让更大量的数据可以更接近 CPU 进行移动和处理,极大地降低从系统存储获取数据的延迟。相比之下,专有架构平台要扩展缓存,还是很不方便的。
第五重助力:模型部署
英特尔技术产品从端到端是有统一的应用兼容性的,这样可以保证我们在后端训练迭代算法,前端部署推理。
在深度学习实践中,是否应该去搭建一套新的专用平台?持否定意见的开发者认为,目前主要用于 AI 模型推理的平台都是基于 CPU 架构的,应该利用现有的数据中心基础设施,利用现有的、熟悉的处理器平台,以最低的成本部署人工智能,这相比另起炉灶、寻找其他计算平台的方法,用时更短 、风险更低、性价比更高。
有开发者据此总结了三条理由:首先,现如今标准 CPU 平台完全能够胜任 AI 所有应用;其次,现在 AI 属于「试错阶段「,同时技术也在快速演变和迭代,利用现有的 CPU 平台,可以最小成本做最大的事,无需大量额外投资,但如果另起炉灶可能得不偿失;最后,用多年熟悉且信任的 CPU 平台,构建「激进」的 AI 项目,本身就是一个绝好的平衡,让技术风险变得可控。
在现有英特尔架构支持的数据应用基础上构建 AI 应用,生产环境非常成熟,易于部署,运维人员学习难度低。英特尔从云到端都有硬件平台就绪,不论是通用计算还是专用芯片(如 Movidius),而且还有相关的软件支持,如众多优化库、框架和工具。另外,英特尔为 AI 应用的开发者们提供了 OpenVINO 等工具包,可以方便实现模型部署,优势显著。
第六重助力:大数据分析
英特尔至强处理器和 BigDL 软硬搭配,在 Hadoop 和 Spark 等主流大数据框架上,可以简化训练(数据获取+处理)过程。
Hadoop 和 Spark 是目前非常流行的大数据管理和处理框架,想利用它们承载的数据进行深度学习训练,通常需要把这些数据导出,然后进行处理,这个过程不仅耗时而且投资较大,所以在这些大数据平台上进行深度学习训练显得尤为重要。
有开发者认为,可以针对各种不同来源的数据,首先根据目标算法需要的数据格式,进行数据整合。得到目标数据之后,再根据业务需要,按照对应的比例,将最原始的数据分成训练数据和测试数据,通过算法对数据不断进行训练,后期进行相应的测试。
其实更好的方式是打通数据流水线。英特尔的 Analytics Zoo(内含 BigDL)打通端到端数据流水线,在 Hadoop 和 Spark 等主流的大数据框架上,把数据的收集、存储、传输、预处理、后期处理等环节,与 AI 的训练和预测等部分有机结合起来,就可以让企业的数据分析流水线变得高效而统一。例如,英特尔协助美的公司基于 Analytics Zoo 构建了一套端到端的产品缺陷检测方案,准确率优于人工检查方法,并避免了检查工作给生产线带来侵入性影响。
Analytics Zoo 将 Spark、TensorFlow 以及 BigDL 程序整合至同一流水线当中,整个流水线能够在 Spark 集群之上以透明方式实现扩展,从而进行分布式训练与推理。最终使美的的图像预处理时长由 200 毫秒降低至 50 毫秒,并将延迟影响由 2,000 毫秒缩短至 124 毫秒。
第七重助力:跨平台部署应用
英特尔至强处理器、Analytics Zoo 以及 OpenVINO 工具包,能够简化深度学习流水线,实现一站式端到端的 AI 应用部署。
深度学习应用的开发周期很长,而且往往会涉及多个工具和平台,如何将新技术、新创新应用到非常大规模、大数据的生产系统中,目前在软硬件架构上有非常大的断层。这提升了技术开发门槛,开发者十分期待从云端到终端能跨平台部署深度学习应用。
2018 年,英特尔开源了 Analytics Zoo,构建了端到端的大数据分析+AI 平台,无论是用 TensorFlow 还是 Keras,都能将这些不同模块的程序无缝运行在端到端流水线上,大大提升了开发效率。
并且,Analytics Zoo 也兼容 OpenVINO在 AI 应用上的加速特性。基于英特尔硬件平台、专注于加速深度学习的 OpenVINO工具套件,是一个快速开发高性能计算机视觉和深度学习视觉应用的工具包。
英特尔 OpenVINO 工具套件不仅适用于开发可模拟人类视觉的应用和解决方案,它还可以通过英特尔 FPGA 深度学习加速套件支持 FPGA,旨在通过优化广泛使用的 Caffe 和 TensorFlow 框架来简化采用英特尔 FPGA 的推理工作负载,并用于包括图像分类、机器视觉、自动驾驶、军事以及医疗诊断等应用。
OpenVINO工具包基于卷积神经网络(CNN),可扩展英特尔硬件(包括加速器)的工作负载,并最大限度地提高性能。
具体来说,OpenVINO 具有面向 OpenCV 和 OpenVx 的优化计算机视觉库,并支持跨计算机视觉加速器的异构执行,可通过基于英特尔架构的处理器(CPU)及核显(Integrated GPU)和深度学习加速器(FPGA、Movidius VPU)的深度学习加速芯片,增强视觉系统功能和性能。它支持 在边缘端进行深度学习推理,并加速高性能计算机视觉应用,帮助开发人员和数据科学家提高计算机视觉应用性能,简化深度学习部署过程。
AI 应用落地的实际选择
经过上述分析我们可以发现,在七个方面中,每个维度都支持 CPU 架构和平台的优势。一方面,CPU 的计算能力通过软硬件协同优化不断提升,可以更好地适应 AI 场景需求,企业渐渐意识到用 CPU 做 AI 已经「足够好」;另一方面,通过收购和探索不同芯片架构,英特尔的 AI 软硬件产品组合正在不断完善,这使得英特尔能够建立一个完整的 AI 基础架构,非常丰富的产品组合是英特尔与其他公司实现差异化的最大亮点。
本文为机器之心发布,转载请联系本公众号获得授权。
------------------------------------------------