特斯拉、谷歌、微软、Facebook等科技巨头有很多共同点。其中之一是他们每天运行数十亿个Transformer模型预测。例如,Transformer在特斯拉的AutoPilot自动驾驶系统中驾驶汽车,在Gmail中完成句子,即时翻译Facebook上的用户帖子,在Bing中回答用户的自然语言查询。Transformers极大地提高了机器学习模型的准确性,席卷了NLP,并且正在扩展到其他模式(例如,语音和视觉)。然而,将这些大型模型引入工业生产并使其大规模快速运行对于任何机器学习工程团队来说都是一个巨大的挑战。如果不雇用像上面提到的数百名高技能机器学习工程师,如何应用如此大规模的模型?近日,HuggingFace开源了一个新包“Optimum”,旨在为Transformer的工业化生产提供最好的工具包,让模型在特定硬件上以最高效率训练和运行。项目地址:https://github.com/huggingface/blog/blob/master/hardware-partners-program.mdOptimum让Transformer高效工作为了在训练和服务模型的过程中获得最好的性能,需要模型加速技术和目标硬件兼容。每个硬件平台都提供特定的软件工具、功能和调整,可以对性能产生巨大影响。同样,为了利用先进的模型加速技术,如稀疏化、量化等,优化的内核需要与硅上的操作兼容,并且特定于从模型架构派生的神经网络图。深入思考这个三维兼容矩阵以及如何使用模型加速库是一项艰巨的工作,很少有机器学习工程师有这方面的经验。Optimum的推出正是为了“简化这项工作,为高效的人工智能硬件提供性能优化工具,并与硬件合作伙伴合作,赋能机器学习工程师优化他们的机器学习”。通过Transformer包,研究人员和工程师可以更轻松地使用最先进的模型,而无需考虑框架、架构和工作流的复杂性;工程师还可以轻松利用所有可用硬件的特性,而无需考虑硬件平台上模型加速的复杂性。最佳实践:如何在英特尔至强CPU上执行模型量化为什么量化如此重要却难以实现?预训练语言模型BERT在各种NLP任务中取得了最好的成绩,而其他基于Transformer的模型如ViT和SpeechText在计算机视觉和语音任务中也取得了最好的成绩。变形金刚在机器学习世界中无处不在,并且会一直存在。然而,由于需要大量的计算能力,将基于Transformer的模型应用于工业生产是困难且昂贵的。有许多技术试图解决这个问题,其中最流行的是量化。不幸的是,在大多数情况下,模型量化工作量很大,原因如下:首先,需要编辑模型。具体来说,我们需要用它们的量化形式替换一些操作,并插入一些新的操作(量化和反量化节点),而其他操作需要适应权重和激活被量化的情况。比如PyTorch是工作在动态图模式下的,所以这部分是非常耗时的,也就是说需要在模型实现本身加上上面的修改。PyTorch现在提供了一个名为“torch.fx”的工具,允许用户在不改变模型实现的情况下对模型进行转换,但是当模型不支持跟踪时很难使用这个工具。在此基础上,用户还需要找到模型中需要编辑的部分,并考虑哪些操作有可用的量化内核版本等问题。其次,模型编辑好之后,需要选择很多参数来找到最佳的量化设置。需要考虑以下三个问题:用什么观测方法进行距离校正?应该使用哪种量化方案?目标设备支持哪些量化相关数据类型(int8、uint8、int16)?同样,平衡量化与可接受的精度损失。最后,从目标设备导出量化模型。虽然PyTorch和TensorFlow在简化量化方面取得了长足进步,但基于Transformer的模型非常复杂,可以使用现成的工具轻松实现。Intel的量化神器:NeuralCompressorNeuralCompressor架构图。地址:https://github.com/intel/neural-compressorIntel的开源Python库NeuralCompressor(原名“低精度优化工具”——LPOT)用于帮助用户部署低精度推理方案。使用深度学习模型的低精度方法实现最佳生产目标,例如推理性能和内存使用。NeuralCompressor支持训练后量化、量化训练和动态量化。为了指定量化方法、目标和性能基准,用户需要提供一个配置yaml文件来指定调优参数。配置文件可以托管在HuggingFace的模型中心或指定本地文件夹路径。使用Optimum在IntelXeonCPU上轻松实现Transformer量化。实现代码如下:踏上ML生产性能去中心化普及之路SOTA硬件优化专注于在专用硬件上实现最优生产性能,其中可以利用软硬件加速技术实现效率最大化。Optimum团队将与硬件合作伙伴合作,以启用、测试和维护加速技术,并以易于使用的方式与之交互。该团队将很快宣布新的硬件合作者,以实现高效的机器学习。SOTAmodelOptimum团队将与硬件合作伙伴一起研究针对特定硬件优化的模型设置和组件,并将结果发布到HuggingFace模型上的AI社区。该团队希望Optimum和针对特定硬件优化的模型能够提高生产过程的效率,而生产过程在机器学习消耗的整体能源中占很大比例。最重要的是,该团队希望Optimum能够促进普通人采用大型变形金刚。
