英特尔张宇:软硬结合创新助力边缘智能应用落地
人工智能的发展一次又一次打破了人们对技术的认知。随着行业数字化转型,人们对于敏捷连接,实施的业务以及应用的智能等方面的诉求,推动了边缘人工智能的发展。相比于火热的大模型,张宇博士坦言,边缘人工智能目前绝大部分的应用还处于边缘推理阶段。利用大量数据以及极大算力在数据中心训练一个模型,把训练的结果推送到前端去执行一个推理操作,这是目前绝大部分在边缘实现人工智能的使用模式。这种模式不可避免会限制模型更新频率,但是很多智能行业对模型的更新实际上是有诉求的。
张宇博士认为人工智能发展的第二个阶段应该是边缘训练阶段,但是边缘训练并不是把数据中心的训练方法照搬到边缘来进行实现。因为在边缘来实现训练,有很多特定问题和特定挑战需要解决。比如在智能制造领域或者是在自动驾驶领域实现边缘训练,执行这些操作的人员往往是产线工人或汽车驾驶人员。这些人员往往没有人工智能经验,同时也没有精力帮你做人工智能操作。
边缘人工智能的发展,从历史上来看,它应该发展成三个阶段:第一个阶段是边缘推理,第二个阶段是边缘训练,第三个阶段是边缘的自主机器学习。边缘人工智能的发展实际上面临着众多的挑战,除了前面提到的有关边缘训练的挑战以外,还有边缘设备面临的挑战。由于提供的算力所能够承载的功耗往往是有限的,所以如何在有限资源的情况下去实现边缘的推理及训练,这对芯片的性能、功耗比提出了更高的要求。另外,边缘设备的碎片化非常明显,如何利用软件很好地实现在不同平台之间的迁移,实际上也提出了更多要求。
张宇直言,如果我们要边缘实现边缘训练,就需要有更加自动化的手段和工具去完成从数据标注到模型的训练,以及模型部署一整套完整的开发流程。他认为边缘人工智能下一步的发展方向应该是自主学习阶段,也就是边缘的auto machine learning。作为自主学习,人工智能应该能够感知人的意图。根据人的意图,它能够设计一个合理的网络模型结构,或选取一个合理的人工智能网络模型,然后自主选择相应训练数据集进行训练,再把训练结果自主推送到前端去执行相应推理操作,完成一整套自主化的过程。
人工智能的发展离不开算力,离不开数据,其实数据的背后又离不开通信技术以及存储技术。应该说推动本轮人工智能发展最核心的要素,实际上是计算、通讯和存储技术的不断提升。张宇博士介绍,英特尔作为一家数据公司,产品恰恰涵盖了计算、通讯和存储的各个方面。在计算方面,英特尔提供的是包括CPU、GPU、FPGA和各种人工智能加速芯片在内的多种产品,来满足用户对于算力的不同要求。在硬件方面,考虑到边缘人工智能对于算力、功耗、安全的不同要求,英特尔所采取的思路是同时推动通用处理器和通用GPU并举的方案。在前端方面,我们会根据不同场景的要求选择不同的产品组合,包括独立显卡、集成显卡、CPU以及Habana。
英特尔有不同的计算资源可供用户使用,但这需要考虑资源分配和调度问题。对于资源调度,需要一个统一的API接口,否则不同的资源调度都需要不同的接口,这是不经济的。因此,英特尔正在考虑如何在异构平台上合理分配负载,以进行人工智能处理。在底层方面,英特尔采用了OneAPI的思路,它基于DPC++编程模式,利用OneAPI提供的优化库,在英特尔硬件平台上高效调用底层资源。这是英特尔在底层方面的战略,并且是我们目前一直在进行的工作。
在上层调度方面,我们首先需要考虑资源分配的问题。对于大模型的训练,不同的应用有不同的算法模型和算力要求,因此我们不能使用至强处理器来进行训练。目前,我们主要推荐使用专门为大模型训练设计的Habana Gaudi 2。在最近的MLCommons公开的AI评测中,只有英特尔和另一家友商展示了在大模型训练方面的良好性能,其中英特尔是其中之一。我们计划不久将其引入中国,并发布相关活动,这对英特尔来说非常重要。
在软件推理方面,英特尔提供的OpenVINO深度学习的部署工具套件,可以将开发人员在开放的人工智能框架上所设计和训练好的网络模型交给OpenVINO,它可以帮助开发人员完成从建模到优化到部署的开发过程。在建模方面,OpenVINO提供三百多个预训练好的网络模型。开发人员可以在模型基础之上直接进行应用的开发,或者在这些模型之上进行二次训练,加速模型的构建速度。在优化方面,OpenVINO使用的是网络压缩的技术,能够将模型在保证精度的情况下进行简化。其实网络压缩是一个很大的概念,里面包含了若干技术。除了量化的技术以外,还包括低比特等一系列的技术。在训练完成后,将训练结果传递给OpenVINO进行硬件平台的适配。在OpenVINO的新版本中,它提供了Auto插件,用户只需告诉OpenVINO自己关注的性能指标,如延迟或吞吐量,OpenVINO就能够自动探测硬件类型并进行硬件配置,将工作负载下发到相应的硬件上执行人工智能操作。因此,我们希望通过OpenVINO来处理调度问题。
在调度之前,我们需要进行模型压缩。压缩不是普通的压缩,而是根据使用场景、行业和关注特征等进行有针对性的优化,以便于使用OpenVINO进行部署和分配硬件负载。因此,在底层方面,我们采用OneAPI来进行统一,而在推理方面,我们将利用OpenVINO来进行负载的分配。对于大模型的训练,我们将使用Habana Gaudi 2来完成。
评论