PHP+Go 开发仿简书,实战高并发高可用微服务架构
深度学习已广泛应用于自然语言处理等领域的实际业务场景,优化其推理性能成为部署过程中的重要一环。推理性能的提升:一方面可以充分发挥部署硬件的能力,减少用户的响应时间,同时节约成本;另一方面,在保持响应时间不变的前提下,可以使用结构更复杂的深度学习模型来提高业务准确率指标。
本文对深度学习模型在地址标准化服务中的推理性能进行了优化。借助高性能算子、量化、编译优化等优化手段,在不降低精度指标的情况下,AI模型的模型端到端推理速度最高可提升4.11倍。
1.模型推理性能优化方法
推理性能的优化是AI服务部署的重要环节之一。一方面可以提高模型推理的效率,充分释放硬件的性能。另一方面,可以使业务在保持推理延迟不变的前提下,采用更复杂的模型,从而提高准确率指标。然而,在实际场景中推理性能优化存在一些困难。
1.1自然语言处理场景优化的难点
在典型的自然语言处理(NLP)任务中,递归神经网络(RNN)和Bert [7](来自变压器的双向编码器表示)是使用率较高的两种模型结构。为了实现灵活的伸缩机制和在线服务部署的高性价比,自然语言处理任务通常部署在Intel Xeon处理器等x86 CPU平台上。然而,随着业务场景的复杂化,服务的推理计算的性能要求越来越高。以上述RNN和伯特模型为例,它们在CPU平台上部署的性能挑战如下:
RNN
递归神经网络是一种以序列数据为输入,递归序列的进化方向,所有节点(循环单元)链式连接的递归神经网络。实践中常用的RNN包括LSTM、GRU和一些衍生产品。在计算过程中,如下图所示,RNN结构中后级的输出取决于前级相应的输入和输出。因此,RNN可以完成序列类型的任务,近年来在NLP甚至计算机视觉中得到了广泛的应用。与BERT相比,RN具有更少的计算量和共享的模型参数,但其计算时间依赖性会导致无法对序列进行并行计算。
Rn结构图
伯特
BERT[7]证明了一个模型,可以在具有深度网络结构的大数据集上完成无监督的预训练,然后对特定任务进行微调。它不仅提高了这些特定任务的精度性能,而且简化了训练过程。BERT的模型结构简单,易于扩展。通过简单地加深和加宽网络,我们可以获得比RNN结构更好的精度。另一方面,精度的提高是以较高的计算成本为代价的,BERT模型中存在大量的矩阵乘法运算,这对CPU是一个巨大的挑战。
PHP+Go 开发仿简书,实战高并发高可用微服务架构
download:链接:https://pan.baidu.com/s/15leNkqqvQdpkPq3Up7RrbQ?pwd=6mz4
提取码:6mz4
--来自百度网盘超级会员V5的分享