Google与DeepMind合作,在XNNPACK加速函数库和TensorFlow Lite中,加入了稀疏神经网络相关支持以及指南,让开发者可以在设备上实例稀疏网络,并使用稀疏网络进行有效率的推理(Inference)。这些工具可以提高模型推理速度1.2到2.4倍速,模型大小也减少一半,Google使用该技术改进跨平台人工智能工作管线框架MediaPipe中的手部关注,以及视频会议服务Google Meet里的背景模糊功能。
设备上神经网络可以用来开发低延迟和高隐私性即时应用程序,提供像是姿势评估和背景模糊等功能,通过使用TensorFlow Lite等机器学习推理框架和XNNPACK机器学习加速函数库,开发者可以在模型大小、推理速度和预测品质中取得平衡,使得模型可以在各种设备上执行。而优化模型的其中一种方法,便是使用稀疏神经网络,通过将网络中部分权重设置为0,不仅能够压缩模型大小,还可以跳过许多乘法和加法运算,加快推理速度。
但是因为过去缺少稀疏卷积基础架构的工具,而且在设备上执行这些操作的支持度仍不足,导致要在生产环境使用该技术受到限制,因此Google与DeepMind在XNNPACK加速函数库和TensorFlow Lite中,扩展对稀疏神经网络的支持,使得开发人员可以更容易使用该技术。
新版的XNNPACK函数库能够侦测稀疏模型,当模型为稀疏神经网络,则会将标准密集推理模式切换成稀疏推理,并且加速1×1卷积运算符,在模型有80%权重为0的时候,执行速度将提高到原本的1.8到2.3倍。
该版本提供了稀疏网络创建指南,引导开发者从一个密集版本的模型开始,在训练期间逐渐将部分权重设置为0,这个过程称为修剪,开发者可以使用各种修剪技术,也可以使用Google在TF模型优化工具包中提供的方法,使深度学习模型变得稀疏,但同时又不降低其品质。生成的稀疏模型,可以使用压缩格式存储,与等效的密集模型相比,压缩后模型尺寸可极大幅度缩小。
研究人员提到,用户可以对分类、切割和回归等问题进行稀疏化,而这能带来显著的好处,像是应用在Google Meet,稀疏模型的推理时间缩短了30%。
该方法适用于MobileNetV2、MobileNetV3和EfficientNetLite等模型,神经网络的稀疏程度,会直接影响推理速度和品质,即便保守地使用稀疏度30%的模型,也能获得良好地性能加速,而在稀疏度70%以上时,准确度会明显下降,但是只要将原始基础网络的大小扩张20%,就能补偿稀疏度70%精确度下降的问题,在加速推理速度的同时,又不降低模型品质。
Google Meet背景模糊功能实际使用稀疏模型,其应用70%的稀疏度,带来30%的模型加速,同时保有前景遮罩品质。而MediaPipe则使用EfficientNetLite模型,在移动设备和网页上提供手部姿势识别功能,与密集模型相比,稀疏模型提高了2倍的推理能力。
Google提到,稀疏化技术,是一个可以简单改善神经网络在CPU上推理的技术,使得较大型的模型不会产生明显的性能和尺寸负担,Google将继续扩展XNNPACK,并且结合更多优化技术。