当前位置: 首页 > news >正文

wordpress 做影视站wordpress 博客搬家

wordpress 做影视站,wordpress 博客搬家,公司网站运营公司排名,跨境电商平台有哪些分类导读 深度学习已在面向自然语言处理等领域的实际业务场景中广泛落地#xff0c;对它的推理性能优化成为了部署环节中重要的一环。推理性能的提升#xff1a;一方面#xff0c;可以充分发挥部署硬件的能力#xff0c;降低用户响应时间#xff0c;同时节省成本#xff1b;…导读 深度学习已在面向自然语言处理等领域的实际业务场景中广泛落地对它的推理性能优化成为了部署环节中重要的一环。推理性能的提升一方面可以充分发挥部署硬件的能力降低用户响应时间同时节省成本另一方面可以在保持响应时间不变的前提下使用结构更为复杂的深度学习模型进而提升业务精度指标。 本文针对地址标准化服务中的深度学习模型开展了推理性能优化工作。通过高性能算子、量化、编译优化等优化手段在精度指标不降低的前提下AI模型的模型端到端推理速度最高可获得了4.11倍的提升。 1. 模型推理性能优化方法论 模型推理性能优化是AI服务部署时的重要环节之一。一方面它可以提升模型推理的效率充分释放硬件的性能。另一方面它可以在保持推理延迟不变的前提下使得业务采用复杂度更高的模型进而提升精度指标。然而在实际场景中推理性能优化会遇到一些困难。 1.1 自然语言处理场景优化难点 典型的自然语言处理Natural Language Processing NLP任务中循环神经网络Recurrent Neural Network, RNN以及BERT[7]Bidirectional Encoder Representations from Transformers.是两类使用率较高的模型结构。为了便于实现弹性扩缩容机制和在线服务部署的高性价比自然语言处理任务通常部署于例如Intel® Xeon®处理器这样的x86 CPU平台。然而随着业务场景的复杂化服务的推理计算性能要求越来越高。以上述RNN和BERT模型为例其在CPU平台上部署的性能挑战如下 RNN 循环神经网络是一类以序列sequence数据为输入在序列的演进方向进行递归recursion且所有节点循环单元按链式连接的递归神经网络。实际使用中常见的RNN有LSTMGRU以及衍生的一些变种。在计算过程中如下图所示RNN结构中每一次的后级输出都依赖于相应的输入和前级输出。因此RNN可以完成序列类型的任务近些年在NLP甚至是计算机视觉领域被广泛使用。RNN相较于与BERT而言计算量更少模型参数共享但其计算时序依赖性会导致无法对序列进行并行计算。 RNN结构示意图 BERT BERT[7]证明了能够以较深的网络结构在大型数据集上完成无监督预训练Unsupervised Pre-training进而供给特定任务进行微调finetune的模型。它不仅提升了这些特定任务的精度性能还简化了训练的流程。BERT的模型结构简单又易于扩展通过简单地加深、加宽网络即可获得相较于RNN结构更好的精度。而另一方面精度提升是以更大的计算开销为代价的BERT模型中存在着大量的矩阵乘操作这对于CPU而言是一种巨大的挑战。 BERT模型结构示意图 1.2 模型推理优化策略 基于上述推理性能挑战的分析我们认为从软件栈层面进行模型推理优化主要有如下策略 模型压缩包括量化、稀疏、剪枝等特定场景的高性能算子AI编译器优化 量化 模型量化是指将浮点激活值或权重通常以32比特浮点数表示近似为低比特的整数16比特或8比特进而在低比特的表示下完成计算的过程。通常而言模型量化可以压缩模型参数进而降低模型存储开销并且通过降低访存和有效利用低比特计算指令如Intel® Deep Learning Boost Vector Neural Network InstructionsVNNI取得推理速度的提升。 给定浮点值我们可以通过如下公式将其映射为低比特值 其中和是通过量化算法所得。基于此以Gemm操作为例假设存在浮点计算流程 我们可以在低比特域完成相应的计算流程 高性能算子 在深度学习框架中为了保持通用性同时兼顾各种流程如训练算子的推理开销存在着冗余。而当模型结构确定时算子的推理流程仅是原始全量流程个一个子集。因此当模型结构确定的前提下我们可以实现高性能推理算子对原始模型中的通用算子进行替换进而达到提升推理速度的目的。 在CPU上实现高性能算子的关键在于减少内存访问和使用更高效的指令集。在原始算子的计算流程中一方面存在着大量的中间变量而这些变量会对内存进行大量的读写操作进而拖慢推理的速度。针对这种情况我们可以修改其计算逻辑以降低中间变量的开销另一方面算子内部的一些计算步骤我们可以直接调用向量化指令集对其进行加速如Intel® Xeon®处理器上的高效的AVX512指令集。 AI编译器优化 随着深度学习领域的发展模型的结构、部署的硬件呈现出多样化演进的趋势。将模型部署至各硬件平台时我们通常会调用各硬件厂商推出的runtime。而在实际业务场景中这可能会遇到一些挑战如 模型结构、算子类型的迭代的速度会高于厂家的runtime使得一些模型无法快速基于厂商的runtime完成部署。此时需要依赖于厂商进行更新或者利用plugin等机制实现缺失的算子。业务可能包含多个模型这些模型可能由多个深度学习框架训得此外模型可能需要部署至多个硬件平台。此时需要将这些格式不同的模型转化至各个硬件平台所需的格式同时要考虑各推理框架实现的不同导致的模型精度性能变化等问题尤其是像量化这类对于数值差异敏感度较高的方法。 AI编译器就是为了解决上述问题而提出的它抽象出了多个层次来解决上述的一些问题。首先它接受各个前端框架的模型计算图作为输入并通过各类Converter转化生成统一的中间表示。随后诸如算子融合、循环展开等图优化pass会作用至中间表示以提升推理性能。最后AI编译器会基于优化后的计算图进行面向特定硬件平台的codegen生成可执行的代码这过程中会引入诸如stitch、shape constraint等优化策略。AI编译器有很好鲁棒性、适应性、易用性并且能够收获显著优化收益。 本文中阿里云机器学习平台PAI团队联合英特尔数据中心软件团队、英特尔人工智能和分析团队、达摩院NLP地址标准化团队针对地址标准化服务的推理性能挑战合作实现了高性能的推理优化方案。 2. 地址标准化介绍 公安政务、电商物流、能源水电燃、运营商、新零售、金融、医疗等行业在业务开展的过程中往往涉及大量地址数据而这些数据往往没有形成标准结构规范存在地址缺失、一地多名等问题。随着数字化的升级城市地址不标准的问题愈加凸显。 地址应用现存问题 地址标准化[2]Address Purification是阿里巴巴达摩院NLP团队依托阿里云海量的地址语料库以及超强的NLP算法实力所沉淀出的高性能及高准确率的标准地址算法服务。地址标准化产品从规范地址数据、建立统一标准地址库的角度出发提供高性能地址算法。 地址标准化优势 该地址算法服务能自动地标准化处理地址数据可有效地解决一地多名地址识别地址真伪辨别等地址数据不规范、人工治理耗时耗力、地址库重复建设问题为企业政府机关以及开发者提供地址数据清洗地址标准化能力使地址数据更好的为业务提供支持。地址标准化产品具有如下的几个特点 准确率高拥有海量地址语料库以及超强的NLP算法技术并持续优化迭代地址算法准确率高超强性能积累了丰富的项目建设经验能够稳定承载海量数据服务全面提供20多种地址服务满足不同业务场景需求部署灵活支持公共云、混合云、私有化部署。 本次优化的模块属于地址标准化中的搜索模块。地址搜索是指用户输入地址文本相关信息基于地址库和搜索引擎对用户输入的地址文本进行搜索和联想并返回相关兴趣点Point of InterestPOI信息。地址搜索功能不仅能够提升用户数据处理体验同时也是多个地址下游服务的基础如经纬度查询、门址标准化、地址归一等因此在整套地址服务体系中起到了关键作用。 地址服务搜索体系示意图 具体而言本次优化的模型是基于多任务地理预训练语言模型底座产出的多任务向量召回模型和精排模型。 多任务地理预训练语言模型底座在掩码语言模型 (Masked Language Model, MLM) 任务的基础上结合了相关兴趣点分类与地址元素识别省、市、区、POI 等并通过元学习Meta Learning的方式自适应地调整多个任务的采样概率在语言模型中融入通用的地址知识。 多任务地址预训练模型底座示意图 多任务向量召回模型基于上述底座训练所得包含双塔相似度、Geohash (地址编码) 预测、分词和 Term Weighting (词权重) 四个任务。 多任务向量召回模型示意图 作为计算地址相似度匹配的核心模块精排模型则是在上述底座的基础上引入了海量点击数据和标注数据训练训练所得[3]并通过模型蒸馏技术提升了模型的效率[4]。最终用应用于召回模型召回的地址库文档重新排序。基于上述流程训练得到的4层单模型能够在CCKS2021中文NLP地址相关性任务[5]上获得较12层基线模型更好的效果详见性能展示部分。 精排模型示意图 3. 模型推理优化解决方案 阿里云机器学习平台PAI团队推出的Blade产品支持以上提及的所有优化方案提供了统一的用户接口并拥有多个软件后端如高性能算子、Intel Custom Backend、BladeDISC等等。 Blade模型推理优化架构图 3.1 Blade Blade是阿里云机器学习PAI团队Platform of Artificial Intelligence推出的通用推理优化工具可以通过模型系统联合优化使模型达到最优推理性能。它有机融合了计算图优化、Intel® oneDNN等vendor优化库、BladeDISC编译优化、Blade高性能算子库、Costom Backend、Blade混合精度等多种优化手段。同时简洁的使用方式降低了模型优化门槛、提升了用户体验和生产效率。 PAI-Blade支持多种输入格式包括Tensorflow pb、PyTorch torchscript等。对于待优化的模型PAI-Blade会对其进行分析再应用多种可能的优化手段并从各种优化结果中选取出加速效果最明显的为最终的优化结果。 Blade优化示意图 为了在保证部署成功率的前提下获得最大的优化效果PAI-Blade采取了“圈图”的方式进行优化即 将待优化子计算图中能够被推理后端/高性能算子支持的部分转化至相应的优化子图无法被优化的子图回退fallback至相应的原生框架TF/Torch执行。Blade圈图示意图 Blade Compression是Blade推出的面向模型压缩的工具包旨在协助开发人员进行高效的模型压缩优化工作。它包含了多种模型压缩功能包括量化、剪枝、稀疏化等。压缩后的模型可以便捷地通过Blade实现进一步优化以获得模型系统联合的极致优化。 量化方面Blade Compression 提供了简洁的使用接口通过调用几个简单api即可完成量化改图、校准calibration、量化训练Quantization-aware TrainingQAT、导出量化模型等步骤。提供了多种后端的支持通过config文件的配置即可完成面向不同设备、不同后端的量化过程。集成了PAI-Blade团队在实际生产业务中自研的各种算法以获得更高的量化精度。 同时我们提供了丰富的原子能力api便于对特定情况进行定制化开发。 Blade Compression示意图 BladeDISC是阿里云机器学习平台PAI团队推出的面向机器学习场景的动态shape深度学习编译器是Blade的后端之一。它支持主流的前端框架TensorFlow、PyTorch与后端硬件CPU、GPU同时也支持推理以及训练的优化。 BladeDISC架构图 3.2 基于Intel® Xeon®的高性能算子 神经网络模型中的子网络通常具有长期的通用性和普遍性如 PyTorch 中的 Linear Layer 和Recurrent Layers 等是模型建构的基础模块负责着特定的功能通过这些模块的不同组合得到形形色色的模型并且这些模块也是AI编译器重点优化的目标。据此为了得到最佳性能的基础模块从而实现性能最佳的模型Intel针对X86架构对这些基础模块进行了多层次优化包括使能高效的AVX512指令、算子内部计算调度、算子融合、缓存优化并行优化等等。 在地址标准化服务中经常会出现Recurrent Neural Network (RNN) 模型并且RNN模型中最影响性能的模块是LSTM或GRU等模块本章节以LSTM为例呈现在不定长且多batch的输入时如何实现对LSTM的极致性能优化。 通常为了满足不同用户的需求和请求追求高性能和低成本的云上服务会将不同的用户请求进行Batch以实现计算资源的最大化利用。如下图所示总共有3条已经被embedding的句子并且内容和输入的长度是不相同的。 原始输入数据 为了使得LSTM计算的更高效需要对Batched input采用PyTorch的pack_padded_sequence()函数进行padding和sort得到下图所示一个paddding的数据tensor一个描述数据tensor的batch size的tensor一个描述数据tensor的原始序号tensor。 LSTM输入数据 到目前为止已经准备好了LSTM的输入对于LSTM的计算过程如下图所示对输入的tensor进行分段批量计算及跳过零值计算。 LSTM针对输入的计算步骤 更深入的LSTM的计算优化如下图17所示公式中的矩阵乘部分进行了公式间计算融合如下图所示原先4次矩阵乘转换成1次矩阵乘并且采用AVX512指令进行数值计算以及多线程并行优化从而实现高效的LSTM算子。其中数值计算指的是矩阵乘和后序的elementwise的元素操作针对矩阵乘部分本方案采用的是oneDNN库进行计算库中具有高效的AVX512 GEMM实现针对elementwise的元素操作本方案对其采用AVX512指令集进行算子融合提升了数据在缓存中的命中率。 LSTM计算融合[8] 3.3 推理后端 Custom Backend Intel custom backend[9]作为Blade的软件后端强有力地加速着模型量化和稀疏的推理性能主要包含三个层面的优化。首先采用Primitive Cache的策略对内存进行优化其次进行图融合优化最后在算子层级实现了包含稀疏与量化算子在内的高效算子库。 Intel Custom Backend架构图 低精度量化 稀疏与量化等高速算子, 得益于Intel® DL Boost加速指令集如VNNI指令集。 VNNI 指令介绍 上图为VNNI 指令, 8bits可以使用AVX512 BW三个指令来加速, VPMADDUBSW 先对2对由8bits组成的数组做乘法与加法, 得到16bits数据, VPMADDWD将相邻数据加总起来,得到32bits数据, 最后VPADDD加上一个常数, 此三函数可组成一个AVX512_VNNI此指令可用来加速推理中的矩阵相乘。 图融合 除此之外Custom Backend中也提供了图融合例如矩阵相乘后不输出中间态临时Tensor而是直接运行后面指令即将后项的post op与前级算子进行融合如此减少数据搬运以减少运行时间下图为一个范例红框内的算子融合后可消除额外的数据搬移成为一个新的算子。 图融合 内存优化 内存分配与释放会与操作系统进行通信从而导致运行时的延时增加为了减少这部分的开销Custom Backend中增加了Primitive Cache的设计Primitive Cache用于缓存已经被创建的Primitive使得Primitive不能被系统回收减少了下一次调用时的创建开销。 同时为耗时较大的算子建立了快取机制以加速算子运行如下图所示 Primitive Cache 量化功能如之前所说模型大小减小后计算与存取的开销大幅减少从而性能得到巨大的提升。 4. 整体性能展示 我们选取了地址搜索服务中典型的两个模型结构来验证上述优化方案的效果。测试环境如下所示 服务器型号阿里云 ecs.g7.large2 vCPU测试CPU型号Intel® Xeon® Platinum 8369B CPU 2.70GHz测试CPU核数1 vCPUPyTorch版本1.9.0cpuonnx版本1.11.0onnxruntime版本1.11.1 4.1 ESIM ESIM[6]是一种专为自然语言推断而生的加强版LSTM它的推理开销主要来自于模型中的LSTM结构。Blade利用Intel数据中心软件团队开发的高性能通用LSTM算子对其进行加速替换PyTorch module中的默认LSTM (Baseline)。本次测试的ESIM中包含两种LSTM结构单算子优化前后的性能如表所示 LSTM结构输入shape优化前RT优化后RT加速比LSTM - A7x2000.199ms0.066ms3.02x202x2000.914ms0.307ms2.98xLSTM - B70x500.266ms0.098ms2.71x202x500.804ms0.209ms3.85x LSTM单算子优化前后推理性能 优化前后ESIM端到端推理速度如表 所示同时优化前后模型的精度保持不变。 模型结构ESIM[6]ESIM[6]Blade算子优化加速比RT6.3ms3.4ms1.85x ESIM模型优化前后推理性能 4.2 BERT BERT[7]近年来在自然语言处理 (NLP) 、计算机视觉CV等领域被广泛采纳。Blade对该种结构有编译优化FP32、量化INT8等多种手段。 速度测试中测试数据的shape固定为10x53各种后端及各种优化手段的速度性能如下表所示。可以看到blade编译优化后或INT8量化后的模型推理速度均优于libtorch与onnxruntime其中推理的后端是Intel Custom Backend BladeDisc。值得注意的是经过量化加速后的4层BERT的速度是2层BERT的1.5倍意味着可以在提速的同时让业务用上更大的模型获得更好的业务精度。 地址BERT推理性能展示 精度方面我们基于CCKS2021中文NLP地址相关性任务[5]展示相关模型性能如下表所示。达摩院地址团队自研的4层BERT的macro F1精度要高于标准的12层BERT-base。Blade编译优化可以做到精度无损而经过Blade Compression量化训练后的真实量化模型精度要略高于原始浮点模型。 模型结构macro F1越高越好12层BERT-base77.24地址-4层BERT78.72(1.48)地址-4层BERT Blade编译优化78.72(1.48)地址-4层BERT Blade量化78.85(1.61) 地址BERT相关精度结果 参考文献 [1] https://help.aliyun.com/document_detail/205129.html [2] https://www.aliyun.com/product/addresspurification/addrp [3] Augmented SBERT: Data Augmentation Method for Improving Bi-Encoders for Pairwise Sentence Scoring Tasks (Thakur et al., NAACL 2021) [4] Rethink Training of BERT Rerankers in Multi-stage Retrieval Pipeline (Gao et al., ECIR 2021) [5] https://tianchi.aliyun.com/competition/entrance/531901/introduction [6] Enhanced LSTM for natural language inference[J] (Chen Q, Zhu X, Ling Z, et al., ACL 2017) [7] BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding (Devlin J, Chang M W, Lee K, et al., ACL 2019) [8] https://pytorch.org/docs/stable/generated/torch.nn.LSTM.html [9] https://github.com/intel/neural-compressor/commits/inc_with_engine 作者陈博华 原文链接 本文为阿里云原创内容未经允许不得转载。
http://www.lebaoying.cn/news/36725.html

相关文章:

  • 网站建设服务器的配置wordpress简历
  • 个人网站可以做淘宝客惠州市住房和城乡规划建设局官方网站
  • 江西网站制作公司哪些企业需要网络推广
  • 一个设计网站多少钱长沙app定制开发
  • 山东济宁网站建设西安网站建设软件
  • 有哪些网站建设工作注册一个公司的流程
  • 公司网页网站建设ppt模板下载义乌市建设局官方网站
  • 网站设计风格有哪些计算机网站开发图片
  • 我的世界查询建筑网站网站建设 今晟网络
  • 网站怎么做appWordPress tag 分类
  • 百度广告投放平台广州seo服务
  • 重庆网站建设公司是什么意思icp备案有效期几年
  • 比特币网站建设网站开发的技术路线
  • 那个网站做h5好有前景的网站建设
  • 安阳360网站推广工具专门做三国战纪的网站叫什么
  • 现在有哪些网站兼职可以做网站设计怎么保持风格一致
  • 网站建设的实验小结高端品牌网站定制设计
  • 深圳营销型网站建设服务商拼多多流量推广神器
  • wordpress建站怎么学资讯网站开发的背景
  • 网站备案 时间更新建筑企业上市公司有哪些
  • 不知道我自己的网站的ftp账号青岛商家都上什么网站
  • 专门做求职课程的网站网站频道建设
  • 如何破解WordPress网站建设通一年多少钱
  • 专业网站定制 北京网络系统管理技能大赛竞赛科目
  • 湖北省建设工程造价管理协会网站河北邯郸seo网站建设网站优化
  • 福州做网站哪家公司好网站需要怎么做的
  • 做网站如何下载别人网站图片重庆网站建站模板
  • 长沙设计网站排名广州网站建设海珠新科
  • 南京医院手机网站建设平台网站建设合同
  • 上海市企业网站建设品牌型网站成功案例图片