工业机器视觉中的AI算力需求
2020-01-04牛昕宇
质检是工业生产的重要一环,以往这项工作需要由人工完成,检测效率和检测精度等存在提升空间。随着人工智能技术的快速发展,工业机器视觉逐步实现落地应用,但同时也对算力提出了更高要求。在2020世界计算机大会工业互联与制造生态专题论坛现场,鲲云科技创始人兼CEO牛昕宇围绕工业机器视觉中的AI算力需求,展开了详细解读,并给出了鲲云科技的解决方案。
鲲云科技是一家初创企业,总部在深圳。我们的核心是围绕数据流芯片和基于数据流芯片的AI应用,在这方面拥有全套自主知识产权,而且现在是全球第一家量产数据流AI芯片的企业。围绕这些技术,鲲云科技与浪潮、戴尔等企业都建立了战略合作关系。
简单讲一下,在工业领域我们现在面临什么挑战。其实,在工业领域我们面临的一个比较大的挑战,是我们需要大量的人力来做各种各样的工业生产工作,其中有很大一部分是工业质检。在这方面,我们用了很多传统CV(Computer Vision,计算机视觉)的方法来实现工业自动化,但是传统的工业CV有很多缺陷,包括精度不高、泛化能力不强,在各种复杂场景下定制化的成本非常高,这是深度学习或人工智能在工业领域所能解决的问题。
工业机器视觉应用案例
在落地过程中,鲲云科技工业机器视觉主要在四个方面能够发挥比较强的作用,一是对元器件的定位,二是对各种缺陷的检测,三是批次/型号分类,四是复杂的OCR(Optical Character Recognition,光学字符识别)。
首先看第一个案例,PCB面板的缺陷检测。在生产PCB的过程中有大量目检人员,他们需要解决PCB面板元器件的撞件、少件、结构损伤和IC覆膜破损等问题。在应用深度学习之前,这些问题都是通过人工的方法解决。应用深度学习,我们将其可以分两个阶段,第一阶段是缺陷风险区域检测,第二阶段是在缺陷风险区域进行缺陷识别和缺陷元器件定位。这里面其实面临一些挑战,在工业领域是一些非常常见的挑战。第一,缺陷的数据很少,因为大量的工业产品质量良好,缺陷问题非常少。第二,缺陷的种类非常多。所以,我们基本会采用迁移学习、预训练和数据增广等方法来解决挑战。
应用深度学习之后,每条产线可减少6名目检人员,目检人员的主要工作从以前的检测各种缺陷,变为对深度学习检测结果进行复检,每条产线年均节约人力成本近50万元,而且采用深度学习和人工智能芯片的方法,可以大幅降低单个产品检测时间,由15秒缩短至3秒,检测效率提升5倍。
第二个案例是基于深度学习的PCB线路板印刷缺陷检测。传统上一般采用人工的方法进行检测,因为传统CV的方法很难在各种各样的环境下,对不同的问题进行实时检测。通过采用深度学习算法,我们可以对不同环境下的不同形状、不同外观、不同情况的缺陷进行非常准确的检测。相对于传统的CV算法,深度学习的好处在于:第一,泛化能力更强,电路板的不同缺陷都可以得到非常好的检测;第二,检测精度更高,一般而言,深度学习相比于传统CV,检测精度能从90%~95%提升至99%左右,这并非是提升了5%左右的精度,而是代表误检率和漏检率从10%降低至1%,是10倍的检测精度的提升。
第三个案例是基于深度学习的电子元器件标识。我们做了很多诸如电容、电阻等的元器件的缺陷检测,主要是电子元器件上的OCR识别,通过识别电子元器件上印制的标签进行检测。例如,生产10欧姆的电阻,如果检测到电阻上印制了100欧姆的标识,那么这些缺陷电阻都要被检测识别出来。
第四个案例是基于深度学习的液体包装缺陷檢测。这个案例是化妆水瓶外观的缺陷检测,包括外观上有凹槽、污渍等。这是一个非常复杂的检测过程,首先要检测缺陷的区域,然后进行分类,判断是哪种区域,最后通过分割计算区域面积,确定其是否是真正的缺陷目标。
第五个案例是基于深度学习的数据线Boot缺陷检测。
算法和算力面临突破
以上是深度学习在工业智能化产线中的应用。其实,在应用过程中面临着很大的问题,一是需要各种各样的深度学习算法;二是算力要能够满足要求。深度学习精度高、泛化能力强,但它有一个明显的劣势,即对算力的要求呈指数级增长,相比于传统的CV而言,二者的算力要求远不是同一级别。据统计,在2010—2020年间,算力的需求增加了100万倍,但算力性能仅提升了1000倍。在实际的应用场景中,我们需要实时性,需要高精度,需要运行非常大的网络,需要降低工业智能化的部署成本,这些都对算力提出了要求,我们不可能在工业产线上布置一个超算中心来支持运营,所以这就需要我们引入新的人工智能芯片。
整个产线分两个阶段,分别是算法的开发和算法的部署。我们在产业线上收集缺陷目标,把它训练成一套成熟的算法,这是算法的开发过程。开发过程完成后,要把算法真正部署在产线上,使之在每条产线、每个环节上运行,这是算法的推断过程。在工业产线上,常规配置是1台训练机加N台推理机,所以在工业的大规模部署过程中,最强的算力需求是推断的算力。
现在的GPU有什么问题?这有一组举例数据,在Batch Size=1时,延时是5ms,吞吐率是191images/sec。GPU有一个特点,即它自身的利用率较低,所以需要采用大量数据同时输入的方式提高利用率。在Batch Size=128时,即一次性输入128张图片时,吞吐率超过了1500images/sec,但延时达到了85ms。在工业领域,延时是一个非常严苛的指标,所以用延时换吞吐率的方式,在工业上是不可接受的,也就是说,这种算力对于很多工业场景而言是难以使用的。
其次是可靠性要求。工业的智能化还处于发展的初级阶段,我们见到很多客户将商业显卡用在了工业环境中,其实这种稳定性非常不可靠。我们见到很多工业推理机中准备了两个商业显卡,以此保障商业显卡损坏后可以及时更换。其实,这不符合可靠性要求。
我们今天所面临的挑战主要有两方面,一是有没有足够的算法能解决工业场景中的智能化问题,二是没有足够强、成本足够低的算力,能够解决实际需求,解决工业AI落地的最后一公里。
AI算力解决方案
这是鲲云科技所提供的算力解决方案。鲲云科技在6月刚刚量产了全球第一颗数据流AI芯片。其中有两个核心指标,一是芯片的利用率高达95.4%。芯片利用率是指,芯片运行在实际场景中的实测性能与芯片峰值性能的比例。鲲云科技的这颗芯片,基本上可以把理论极限性能发挥出来,提供给用户。二是它的工作温度在-40℃至125℃,可以满足所有工业现场的工业级的温控和稳定性要求。鲲云科技的星空加速卡X3可以满足工业的各种要求,以及性价比的要求。
我们为什么要强调这是一颗数据流芯片,为什么说商业GPU或现有的GPU架构难以满足工业的要求?当我们用一颗AI芯片部署工业智能化的应用时,我们需要的是实测算力,也就是算法运行时,需要多少延时才能输出结果,而大部分GPU给到用户的是标称算力或峰值算力。芯片的峰值算力是用芯片计算单元数量乘以主频,计算得到的物理极限。GPU通过推高这一物理极限来获得更高的性能,这会带来更大的面积、更大的功耗,更关键的是算力的成本会非常高。在工业领域最讲究成本低、性能高,性价比非常关键,这也是目前商业显卡或GPU面临的一个问题。
数据流芯片走的是另一条道路,除了提升峰值算力之外,还有一条路是把现有的算力更好地发挥出来,用好存量。目前,GPU的芯片利用率只有10%~30%,如果想提升3倍性能,理论上有两个方向,一是把芯片面积做大3倍,或用更好的工艺提升芯片的峰值算力。当然,这样做理论上可以提升3倍性能,但實际上并不能提升3倍,因为这不是一个线性增长的过程。二是把利用率从10%提升到30%,或从30%提升到90%,把芯片的峰值性能发挥出来,这就是鲲云科技CAISA数据流架构所做的事情。
国际上,做数据流芯片的公司有很多家,鲲云科技是第一家能够量产数据流AI芯片的企业。指令集计算和定制数据流计算有什么区别?假设我们现在做一颗芯片,当然这是一个非常简单的例子,支持一维的乘累加计算。任何计算芯片,支持目标算法要满足两个条件:第一,所有的计算单元都可以支持,在这个例子里,乘法和加法必须支持;第二,所有的乘法和加法,按照规定的次序进行计算,在这个例子中,要先算乘法再算加法。目前,市面上大部分AI芯片主要是走指令集的道路,即我们常说的冯·诺依曼架构体系。简单讲,设计两条指令,一条乘法指令,一条加法指令,如何保证计算次序?先运行乘法指令,再运行加法指令就可以了。但是这有一个劣势,为了保证通用性,指令一定是切割成几个步骤的,数据搬运、计算、数据搬出,所以在运行前面的乘法指令时,加法的计算单元一直在等待,等乘法计算完成之后,再将结果搬进来、计算、搬出。在这个例子中,我们放了一个乘法器、一个加法器,当我卖给你这颗芯片时,我会告诉你这颗芯片的峰值算力是10个周期可以计算10次乘法和10次加法,这是理论峰值性能。但在实际运行时,只能计算1次乘法和1次加法,利用率只有10%,这就是通用性的代价。大部分的时间实际是在搬运数据,并没有花在真正的计算上。
定制数据流计算是什么思路?定制数据流计算通过数据的流动次序来控制计算次序。这很像工厂流水线,如何控制工序A在工序B之前?让工序A在流水线前端,工序B在流水线后端。在上述例子里,整个计算的“流水线”中,乘法器在前,加法器在后,数据就像工厂中的零部件一样流过这条产线。这样的话,一定是先算乘法,再算加法,这样的话效率就会非常高,因为乘法和加法在每个周期都进行计算。
当然,这并不意味着定制数据流架构一定比指令集架构好,二者各有优劣。如果你想要通用计算,你需要指令集架构。如果你希望针对AI领域有限的AI算法,做一个定制化的架构,做一个AI的计算平台,那么定制数据流架构非常适合。
关于定制数据流CAISA架构,主要介绍两点:第一,有各种各样定制化的数据流的算子,通过流水线的网络将其串接成不同的针对算法的流水线,通过流水线的方式保证高效率;第二,通过重构,不同的连接关系可以进行重构,形成不同的深度学习算法,可以保证通用性。通过更低的成本、更小的芯片面积实现更高的实测性能,这就是数据流AI芯片的价值。
我们还有专为CAISA架构设计的RainBuilder编译工具链,无缝链接TensorFlow、Caffe、PyTorch及ONNX等深度学习开发框架,支持C/C++的API。鲲云科技基于CAISA芯片、星空加速卡X3打造针对工业领域的算力平台,解决算法落地的最后一公里问题,适配各种主流的AI服务器。
在工业智能领域,我们面临很多挑战,一个核心的挑战是人员不足。我们现在用什么解决这一挑战?用深度学习算法,把以前人脑中的“know how”变成算法部署在现场。另外,我们采用鲲云科技自主研发的CAISA架构芯片支持算法的部署,相对于传统的GPU,它具有非常高的性价比、低延时、宽工作温度,以及非常稳定的工作状态,可以满足工业环境中各种各样的要求。
(本文根据鲲云科技创始人兼CEO牛昕宇在“2020世界计算机大会”上的演讲整理而成,未经演讲人审阅)