人工智能(AI)进展神速,且随着开发工具、环境越来越成熟,加上芯片性能不断提升,AI算法已经可以直接在嵌入式设备上,利用训练好的模型进行推论,实现各种智能应用。 另一方面,训练模型的难度也越来越低,甚至已经有业者跟技术研究法人推出DIY式的模型训练平台。 嵌入式设备结合AI,必成大势所趋。
从Deepmind推出的AlphaGo打败世界围棋高手至今,不过短短两三年,人工智能技术的应用已经开枝散叶,并进驻各种终端装置。 其中,影像辨识的技术进展速度最快,许多带有机器视觉功能的嵌入式装置,已经开始与机器学习(ML)、深度学习(DL)等AI算法结合,让机器设备不只能看得到,更能看得懂自己所看到的影像究竟代表何种意义。
FPGA扫除障碍 嵌入式视觉结合ML
安驰科技技术应用工程部经理吴文忠(图1)表示,目前深度学习或机器学习所面临的最主要的挑战有三,一是必须针对不同的使用情境使用不同网络跟优值(Figure of Merits);二是必须处理大量的乘法运算跟庞大的数据集, 三则是新的算法不断出炉,使用固化(Harden)的加速器芯片有很高的风险。
图1 安驰科技应用工程部经理吴文忠指出,人工智能算法日新月异,芯片本身必须具备相当高的弹性,才能灵活地支持最新的算法。
若是针对嵌入式应用,功耗与运算效能则是必须额外考虑的重点。 因为嵌入式应用往往在成本、功耗、散热等规格上,面临更严格的限制。 由于推论算法的快速进步,现在ML或DL算法可以在不会对推论准确率造成明显影响的前提下,利用降低精度的方式来减少对处理器的运算效能需求,并且明显降低功耗。 这对于有意整合DL、ML的嵌入式应用开发者来说,无疑是一大福音。
不过,由于嵌入式应用开发商面对的是很典型的少量多样市场,因此开发商在选择芯片解决方案时,还是要注重应用设计上的弹性。 有些应用或客户可能对推论的准确度要求较严格,有些则可以接受一定程度的妥协。 因此,理想的芯片架构必须十分弹性,能支持任意精度的运算。
不过,FPGA毕竟不是一般常见的处理器,其设计语言通常是Verilog等硬件描述语言(HDL),待硬件配置完成后,才会执行一般以C语言撰写的程序。 因此,对一般嵌入式应用产品的开发者来说,要使用FPGA来设计应用,是存在一定门坎的。
有鉴于此,赛灵思(Xilinx)近年来在开发工具与相关设计环境上不断投入资源,藉由SDSoC、SDAccel等开发环境与工具链,让FPGA的应用设计门坎大幅降低。 在某些情况下,甚至可以用C语言直接设计以FPGA为基础的应用。
针对这波人工智能浪潮,赛灵思也已经做好准备,可提供给用户xDNN CNN Overley、xfDNN中间件、相关工具与Runtime。 这些底层可以支持目前市面上绝大多数的开源NN框架,例如Caffe、Go等深度学习框架。 让即便对FPGA本身没有很深入了解的人工智能软件工程师,也能利用FPGA开始设计自己的应用。
此外,针对机器视觉应用,赛灵思还提供OpenCV硬件加速功能,称为xfOpenCV。 该方案是一个针对FPGA优化的OpenCV函式库(Library),内含超过50种应用开发上最需要的OpenCV函式。 由于该函式库是针对FPGA进行优化,因此开发者利用该函式库所写出来的软件,可以充分利用FPGA的运算资源,执行效率更好。
吴文忠总结说,以往影像辨识得要靠服务器这类具有强大运算能力的设备才能跑得动,但随着赛灵思芯片、开发板与软件工具环境到位,现在影像辨识这类人工智能功能,已经可以直接在各种嵌入式设备上执行。 嵌入式设备结合AI,相信将是大势所趋。
模型训练非难事 DIY平台现身
嵌入式硬件已具备支持模型推论的能力,但对有意发展机器学习、深度学习等人工智能技术应用的业者来说,推论所使用的模型要如何建立,也是一大关键。
一个精准的模型除了本身设计要好之外,还需要靠卷标完成、质量良好的数据集来训练。 这种数据集需要投入大量人力物力来整理,而且在训练的过程中不仅要使用具备高运算效能的设备,还得花上一段时间。 因此,要发展出自己的机器学习或深度学习模型,可是工程浩大。
资策会数字转型所副主任刘文山(图2)表示,深度学习在影像、自然语言辨识等应用领域近年来有长足进展,因此很多业者都想将深度学习应用在未来的产品上。 不过,一个完整的深度学习模型包含数百万个参数,需要百亿次以上的计算量,因此在模型训练的过程中,势必要动用大量运算资源。 另一方面,训练用的数据集要如何取得,对许多有意开发深度学习应用的开发者来说,也是一个很大的挑战。
图2 资策会数字转型所副主任刘文山表示,资策会正在进行中的AIY项目,将可明显降低模型训练所需的资源跟技术门坎。
一般来说,训练用的数据集越庞大,模型的准确率越高。 但要如何搜集够庞大的数据,却是一大问题。 而且,越是特别、例外、异常的数据,越难搜集到,但这些特别或异常的状况,却是引发模型判断错误,导致准确率下降的重要原因之一。 即便开发者克服重重困难,收集到完整度高、数量够多的数据集,传统上,训练用的数据集还需要经过人工卷标,这又是另一个旷日废时的大工程。
针对上述跟数据集有关的难题,目前业界正在发展非监督式学习、转移式学习等新技术,以降低模型训练时对数据集的依赖。
资策会数字转型所内部也正在进行一个名为AIY的项目,中文名称则是「智己造」,目标是让开发者能自己DIY出所需要的AI模型,而且准确度必须有一定水平。 该项目目前已经进展到可以展示的阶段。
目前该项目已经发展出一套云端工具,可以支持图像辨识或人脸辨识。 用户可以透过该工具提供的接口来设定模型训练的几个重要参数,并看到模型训练的进度。 当模型训练出来,准确率达到可以接受的水平后,该工具还可以对模型进行压缩,牺牲一点准确率来缩小模型。 缩小后的模型,尺寸约只有原始模型的六分之一,以便让手机、嵌入式装置等储存空间跟运算效能都有限的终端装置也能跑得动。
嵌入式系统电源设计面临更多挑战
而随着嵌入式应用开始与人工智能算法结合,即便仅是使用训练好的模型来进行推论,对处理器芯片的效能要求仍会有一定程度的提升,也可能出现以FPGA甚至ASIC当做加速器的设计需求。 对嵌入式系统的电源而言,这会在系统中引入新的变量,且势必要进一步提高电源供应器的能源密度。
怀格(Vicor)资深技术支持工程师张仁程(图3)表示,从电源的角度来看,不管是CPU、GPU或FPGA、加速器,一样都是负载点(POL)。 不过,对电源设计来说,这些新型态处理器芯片的出现,意味着系统的电源树会变得更为复杂。 此外,随着半导体制程越来越先进,处理器对电源噪声的忍受度也跟着降低。 最后,支撑整个系统运作所需要的电源功率,也会跟着提升。
图3 怀格资深技术支持工程师张仁程指出,模块化的电源设计,能为支持AI的嵌入式应用带来许多好处。
模块化的电源设计思路,可以让设计人员更灵活地因应变化多端的电源需求,是简化电源设计复杂度的有效方法。 电源的噪声则跟电路拓扑设计的功力有关,针对低噪声电源,怀格已经发展出许多独特的电路拓扑,来满足未来设计人员在开发产品时的需求。
而电源系统的输出功率需求越来越高,则是电源业界始终不变的发展趋势,真正的挑战在于,如何在电源系统体积不变的前提下,提供更高的功率输出,并解决随之而来的散热问题。
就怀格的观点,模块型的电源设计,也是进一步提升电源密度必然要走的路。 传统的AC-DC电源供应器虽然还可以设计得更小,但相较于以转换器级封装(Converter Housed in Package, ChiP)技术实现的电源方案,在尺寸上还是有数倍到数十倍的差异。
至于在散热方面,随着模块封装外壳进入铜世代,这类模块的散热性能将进一步得到提升,在许多应用环境下,甚至可以利用机构外壳来当作散热器(Heatsink),不必再外挂沉重又庞大的散热器,也不必使用散热风扇。 这对于缩小嵌入式产品的体积、减轻重量跟提高系统稳定度,都有很大的帮助。
上一篇:2018年中国国际大数据产业博览会“工业互联网”在贵阳举办
下一篇:人工智能对知识产权的挑战与思考
推荐阅读最新更新时间:2024-05-07 18:02