CN111859904A - Nlp模型优化方法、装置以及计算机设备 - Google Patents
Nlp模型优化方法、装置以及计算机设备 Download PDFInfo
- Publication number
- CN111859904A CN111859904A CN202010756900.4A CN202010756900A CN111859904A CN 111859904 A CN111859904 A CN 111859904A CN 202010756900 A CN202010756900 A CN 202010756900A CN 111859904 A CN111859904 A CN 111859904A
- Authority
- CN
- China
- Prior art keywords
- model
- nlp
- optimized
- sparse
- nlp model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 73
- 238000005457 optimization Methods 0.000 title claims abstract description 32
- 238000012545 processing Methods 0.000 claims abstract description 40
- 238000013139 quantization Methods 0.000 claims abstract description 23
- 238000013138 pruning Methods 0.000 claims abstract description 17
- 238000006243 chemical reaction Methods 0.000 claims abstract description 8
- 230000008569 process Effects 0.000 claims description 27
- 210000002569 neuron Anatomy 0.000 claims description 21
- 230000015654 memory Effects 0.000 claims description 20
- 238000007781 pre-processing Methods 0.000 claims description 16
- 230000006835 compression Effects 0.000 claims description 8
- 238000007906 compression Methods 0.000 claims description 8
- 238000012163 sequencing technique Methods 0.000 claims description 8
- 230000011218 segmentation Effects 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 6
- 230000002441 reversible effect Effects 0.000 claims description 6
- 230000009471 action Effects 0.000 claims description 5
- 238000003062 neural network model Methods 0.000 abstract description 4
- 238000003058 natural language processing Methods 0.000 description 81
- 238000012549 training Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000005265 energy consumption Methods 0.000 description 6
- 238000011002 quantification Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013136 deep learning model Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Abstract
本申请提供了一种NLP模型优化方法、装置以及计算机设备,涉及神经网络模型技术领域,缓解了目前的NLP模型的预测速度较慢的技术问题。该方法包括:获取待优化NLP模型;通过对所述待优化NLP模型进行剪枝处理,建立所述待优化NLP模型的稀疏化模型;对所述稀疏化模型进行量化处理,得到所述稀疏化模型的压缩后模型;对所述压缩后模型的部分代码转换为预设语言代码,并基于代码转换后的模型进行编译,得到编译后模型;所述预设语言代码的运行速度大于所述部分代码的运行速度;通过异步处理方式对所述编译后模型部署FastAPI,得到优化后的NLP模型。
Description
技术领域
本申请涉及神经网络模型技术领域,尤其是涉及一种NLP模型优化方法、装置以及计算机设备。
背景技术
目前,深度学习模型需要大量算力、内存和电量,尤其以自然语言处理(NaturalLanguage Processing,简称NLP)领域的模型更为突出,前期需要加入大量预处理成分,例如,遍历、正则和分词等。
再者,NLP领域的新兴模型越来越来多,例如,BERT、XLNET等,NLP模型的前期预测过程便更为繁琐,耗时较长。因此,目前的NLP模型的预测过程速度较慢。
发明内容
本发明的目的在于提供一种NLP模型优化方法、装置以及计算机设备,以缓解目前的NLP模型的预测速度较慢的技术问题。
第一方面,本申请实施例提供了一种NLP模型优化方法,所述方法包括:
获取待优化NLP模型;
通过对所述待优化NLP模型进行剪枝处理,建立所述待优化NLP模型的稀疏化模型;
对所述稀疏化模型进行量化处理,得到所述稀疏化模型的压缩后模型;
对所述压缩后模型的部分代码转换为预设语言代码,并基于代码转换后的模型进行编译,得到编译后模型;所述预设语言代码的运行速度大于所述部分代码的运行速度;
通过异步处理方式对所述编译后模型部署FastAPI,得到优化后的NLP模型。
在一个可能的实现中,所述待优化NLP模型包括下述任意一项或多项:
TextCNN模型、BERT模型、fasttext模型。
在一个可能的实现中,获取待优化NLP模型的步骤,包括:
对初始NLP模型进行预处理,得到待优化NLP模型;其中,预处理的过程包括正则、循环遍历以及分词中的任意一项或多项。
在一个可能的实现中,通过对所述待优化NLP模型进行剪枝处理,建立所述待优化NLP模型的稀疏化模型的步骤,包括:
根据所述待优化NLP模型中神经元的作用数据对所述神经元进行排序,将排序结果中处于预设排名之后的神经元移除,基于移除后保留的神经元建立所述待优化NLP模型的稀疏化模型。
在一个可能的实现中,对所述稀疏化模型进行量化处理,得到所述稀疏化模型的压缩后模型的步骤,包括:
通过tensorflow lite对所述稀疏化模型进行量化压缩处理,得到所述稀疏化模型的压缩后模型。
在一个可能的实现中,所述预设语言代码中的预设语言为Cython语言。
在一个可能的实现中,所述异步处理方式包括结合反向代理的处理方式。
第二方面,提供了一种NLP模型优化装置,包括:
获取模块,用于获取待优化NLP模型;
剪枝模块,用于通过对所述待优化NLP模型进行剪枝处理,建立所述待优化NLP模型的稀疏化模型;
量化模块,用于对所述稀疏化模型进行量化处理,得到所述稀疏化模型的压缩后模型;
编译模块,用于对所述压缩后模型的部分代码转换为预设语言代码,并基于代码转换后的模型进行编译,得到编译后模型;所述预设语言代码的运行速度大于所述部分代码的运行速度;
部署模块,用于通过异步处理方式对所述编译后模型部署FastAPI,得到优化后的NLP模型。
第三方面,本申请实施例又提供了一种计算机设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的第一方面所述方法。
第四方面,本申请实施例又提供了一种计算机可读存储介质,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行上述的第一方面所述方法。
本申请实施例带来了以下有益效果:
本申请实施例提供的一种NLP模型优化方法、装置以及计算机设备,能够通过对获取到的待优化NLP模型进行剪枝处理来建立所述待优化NLP模型的稀疏化模型,然后,对所述稀疏化模型进行量化处理从而得到所述稀疏化模型的压缩后模型,之后对所述压缩后模型的部分代码转换为预设语言代码,并基于代码转换后的模型进行编译从而得到编译后模型,其中的所述预设语言代码的运行速度大于所述部分代码的运行速度,最后通过异步处理方式对所述编译后模型部署FastAPI从而得到优化后的NLP模型。本方案中,通过结合剪枝、量化、编译以及异步处理的整体过程对NLP模型进行压缩部署,能够提高模型的预测速度,缓解模型耗能的问题,实现了既可以使用开源大模型,又可以提高预测速率。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种NLP模型优化方法的流程示意图;
图2为本申请实施例提供的一种NLP模型优化方法的另一流程示意图;
图3为本申请实施例提供的一种NLP模型优化装置的结构示意图;
图4示出了本申请实施例所提供的一种计算机设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
目前,深度学习模型需要大量算力、内存和电量,尤其以NLP领域更为突出,前期需要加入大量预处理成分,例如,遍历、正则和分词等,再加上NLP新兴模型越来越来多,例如,BERT、XLNET等。当需要执行实时推断、在设备端运行模型、在计算资源有限的情况下运行浏览器时,这便形成了瓶颈。能耗是目前对于当前深度学习模型的主要担忧,而解决这一问题的方法之一是提高推断效率。
由此可见,随着目前模型的越来越大,内存消耗和预测速度都会受到影响。再者,文本数据越来越复杂,预处理过程也更加频繁且复杂。
现有NLP模型普遍通过fine-tuning模式建立,为了提高各方面准确率,引用目前很多的预训练好的大模型,如BERT等,单方面提高了准确率。但是也带来缺点,如能耗增加、内存爆炸、预测速度缓慢等一系列问题。
在实际应用中,Python代码本身效率并不高,尤其对于循环遍历等处理方式速度更加缓慢,目前的文本数据集随着时代的发展以及不同人之间的表述不同导致数据集本身越来越复杂多样,需要经过大量的不可避免的预测过程,这部分需要消耗大量的时间,因此目前的NLP模型的预测过程速度较慢。
基于此,本申请实施例提供了一种NLP模型优化方法、装置以及计算机设备,通过该方法可以缓解目前的NLP模型的预测速度较慢的技术问题。
下面结合附图对本发明实施例进行进一步地介绍。
图1为本申请实施例提供的一种NLP模型优化方法的流程示意图。如图1所示,该方法包括:
步骤S110,获取待优化NLP模型。
步骤S120,通过对待优化NLP模型进行剪枝处理,建立待优化NLP模型的稀疏化模型。
通过剪枝处理能够将模型压缩近百分之六十左右,缓解对正则、遍历等预处理导致预测速度较慢的问题。
步骤S130,对稀疏化模型进行量化处理,得到稀疏化模型的压缩后模型。
通过量化压缩模型能够将模型压缩近百分之九十左右,量化压缩提速能够进一步降低模型的能耗并提高预测速度。
步骤S140,对压缩后模型的部分代码转换为预设语言代码,并基于代码转换后的模型进行编译,得到编译后模型;预设语言代码的运行速度大于部分代码的运行速度。
通过转换代码至其他速度较快的语言并对其编译,能够对多循环多正则多预处理文本的过程进行提速。
步骤S150,通过异步处理方式对编译后模型部署FastAPI,得到优化后的NLP模型。
需要说明的是,对于目前运用较多的框架是Django和Flask,但是两者存在一定的缺点。首先是太过臃肿,API本身是需要轻量级即可。本申请实施例中的FastAPI便能够满足这一点,提供一个轻量化的API部署,而且本身通过异步方式实现。再者,python由于GIL(全局锁)的存在,不能发挥多核的优势,其性能较差。然而在IO密集型的网络编程里,本申请实施例提供异步处理相比于同步处理能够提升成百上千倍的效率,弥补了python性能方面的短板。其中,异步是指在处理调用这个事务的之后,无需等待这个事务的处理结果,能够直接处理第二个事务,通过状态、通知、回调来通知调用者处理结果,可以很大程度上提高API本身的并发能力,从而实现了通过FastAPI异步部署提高并发调用速率。
本申请实施例中,通过结合剪枝、量化、编译以及异步处理的整体过程对NLP模型进行压缩部署,能够提高模型的预测速度,缓解模型耗能的问题,实现了既可以使用开源大模型,又可以提高预测速率。
下面对上述步骤进行详细介绍。
在一些实施例中,待优化NLP模型包括下述任意一项或多项:TextCNN模型、BERT模型、fasttext模型。
在实际应用中,NLP神经网络模型可以为TextCNN模型、BERT模型、fasttext模型等多种不同类型的模型。当然,本申请实施例中的NLP模型不仅限于上述这些类型的模型,还可以为其他多种类型的神经网络模型。
在一些实施例中,上述步骤S110可以包括如下步骤:
步骤a),对初始NLP模型进行预处理,得到待优化NLP模型;其中,预处理的过程包括正则、循环遍历以及分词中的任意一项或多项。
如图2所示,其中的110部分表示的是无论在训练还是部署过程,NLP领域的模型都需要进行大量的预处理过程来对文本数据进行清洗,此过程可以包括正则、循环遍历和分词等。
如图2所示,在111部分中,对于现今许多NLP预训练模型的公布,使得fine-tuning这样的方式更加有效,很容易提高模型的准确率,但是公开的预训练模型都是非常巨大,需要更多的内存引用,更多的能耗,处理速度很慢,对于硬件配置要求高。
在一些实施例中,上述步骤S120可以包括如下步骤:
步骤b),根据待优化NLP模型中神经元的作用数据对神经元进行排序,将排序结果中处于预设排名之后的神经元移除,基于移除后保留的神经元建立待优化NLP模型的稀疏化模型。
如图2所示,其中的112部分表示对于NLP模型本身初步的压缩提速,该部分可以通过剪枝的方式实现,剪枝提高推断效率的方法之一,它可以高效生成规模更小、内存利用率更高、能耗更低、推断速度更快、推断准确率损失最小的模型。一般情况下,神经网络通常意味着必须进行大量浮点相乘操作。完美情况下,只需将每个神经元与几个其他神经元连接起来,不用进行其他浮点相乘操作,这叫做“稀疏”网络,稀疏网络更容易压缩。通过在推断期间跳过zero,能够改善延迟情况。
本申请实施例中,可以根据网络中神经元的贡献对其进行排序,可以将排序较低的神经元移除,得到规模更小且速度更快的网络。速度更快、规模更小的网络对于在移动设备上运行非常重要,而通过步骤b)中的过程可以将模型压缩近百分之六十左右。
在一些实施例中,上述步骤S130可以包括如下步骤:
步骤c),通过tensorflow lite对稀疏化模型进行量化压缩处理,得到稀疏化模型的压缩后模型。
如图2所示,其中的113部分表示对于上述步骤S120中剪枝完的模型进一步进行量化压缩提速的过程,通过tensorflow lite,实现量化的过程可以包括如下步骤:
1.Post Training Quantization:对于Post Training Quantization合理的说,计算过程皆为Float,而非Int。所以只能在减少模型的大小。速度方面并不能得到提升。
对于Weight only quantization这种模式,是将模型的weight进行quantized压缩成uint8。但在计算过程中,会将weight进行dequantized回Float。
对于Quantizing weights and activations这种模式,在weight quantization的基础上,对某些支持quantized的Kernel,先进行quantization,再进行activation计算,再de-quant回float32,不支持的话会直接使用Float32进行计算,这相对与直接使用Float32进行计算会快一些。
2.Quantization Aware Training:对于Quantization Aware Training这种模式,除了可以对weight进行quantization,也可以在训练过程中,进行模拟量化,求出各个op的max跟min输出。因此,实现不仅仅在训练过程,在测试过程的全程计算过程皆为uint8,不仅仅能够实现模型的压缩,计算速度也能够得到提高。
在一些实施例中,在上述步骤S140中,预设语言代码中的预设语言为Cython语言。
如图2所示,其中的114部分针对上述步骤S130中压缩完的模型,对于模型本身的预测已经优化的非常快,这时需要解决前期预处理的部分代码优化。
需要说明的是,C语言是编译性语言,而Python则是解释性语言,简而言之,就是Python运行是逐行运行,不需要实现编译,而C需要在运行前编译。由此可见,如果运行前,需要事先编译,自然可以做很多优化,以使代码运行的更快。而Cython的就是这个目的,使Python也可以被编译,然后执行。
Cython是一种部分包含和改变C语言,以及完全包含pyhton语言的一个语言集合。Cython是用Python实现的一种语言,可以用来写Python扩展,用它写出来的库都可以通过import来载入,性能上比Python的快。Cython里可以载入Python扩展(例如import math),也可以载入C的库的头文件例如cdef extern from“math.h”),另外也可以用它来写Python代码。将关键部分重写成C扩展模块。Cython中的优势之处在于可以把Python和C结合起来,使得看起来像Python语言的Cython代码有着和C相似的运行速度。
通过Cython编译能够对多循环多正则多预处理文本的过程进一步提速,利用Cython可以提速7倍左右。当然,对于Cython部分可以采用其他框架代替,或者转换代码至其他速度较快的语言。
在一些实施例中,在上述步骤S150中,异步处理方式包括结合反向代理的处理方式。如图2所示,115部分中的异步部分也可以采用与反向代理相结合的方式,以提高并发调用速率。
图3提供了一种NLP模型优化装置的结构示意图。如图3所示,NLP模型优化装置300包括:
获取模块301,用于获取待优化NLP模型;
剪枝模块302,用于通过对待优化NLP模型进行剪枝处理,建立待优化NLP模型的稀疏化模型;
量化模块303,用于对稀疏化模型进行量化处理,得到稀疏化模型的压缩后模型;
编译模块304,用于对压缩后模型的部分代码转换为预设语言代码,并基于代码转换后的模型进行编译,得到编译后模型;预设语言代码的运行速度大于部分代码的运行速度;
部署模块305,用于通过异步处理方式对编译后模型部署FastAPI,得到优化后的NLP模型。
在一些实施例中,待优化NLP模型包括下述任意一项或多项:
Te3tCNN模型、BERT模型、fastte3t模型。
在一些实施例中,获取模块301具体用于:
对初始NLP模型进行预处理,得到待优化NLP模型;其中,预处理的过程包括正则、循环遍历以及分词中的任意一项或多项。
在一些实施例中,剪枝模块302具体用于:
根据待优化NLP模型中神经元的作用数据对神经元进行排序,将排序结果中处于预设排名之后的神经元移除,基于移除后保留的神经元建立待优化NLP模型的稀疏化模型。
在一些实施例中,量化模块303具体用于:
通过tensorflow lite对稀疏化模型进行量化压缩处理,得到稀疏化模型的压缩后模型。
在一些实施例中,预设语言代码中的预设语言为Cython语言。
在一些实施例中,异步处理方式包括结合反向代理的处理方式。
本申请实施例提供的NLP模型优化装置,与上述实施例提供的NLP模型优化方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
如图4所示,本申请实施例提供的一种计算机设备400,包括:处理器401、存储器402和总线,所述存储器402存储有所述处理器401可执行的机器可读指令,当计算机设备运行时,所述处理器401与所述存储器402之间通过总线通信,所述处理器401执行所述机器可读指令,以执行如上述NLP模型优化方法的步骤。
具体地,上述存储器402和处理器401能够为通用的存储器和处理器,这里不做具体限定,当处理器401运行存储器402存储的计算机程序时,能够执行上述NLP模型优化方法。
处理器401可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器401中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器401可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processing,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器402,处理器401读取存储器402中的信息,结合其硬件完成上述方法的步骤。
对应于上述NLP模型优化方法,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行上述NLP模型优化方法的步骤。
本申请实施例所提供的NLP模型优化装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。本申请实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
再例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述NLP模型优化方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的范围。都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种NLP模型优化方法,其特征在于,所述方法包括:
获取待优化NLP模型;
通过对所述待优化NLP模型进行剪枝处理,建立所述待优化NLP模型的稀疏化模型;
对所述稀疏化模型进行量化处理,得到所述稀疏化模型的压缩后模型;
对所述压缩后模型的部分代码转换为预设语言代码,并基于代码转换后的模型进行编译,得到编译后模型;所述预设语言代码的运行速度大于所述部分代码的运行速度;
通过异步处理方式对所述编译后模型部署FastAPI,得到优化后的NLP模型。
2.根据权利要求1所述的方法,其特征在于,所述待优化NLP模型包括下述任意一项或多项:
TextCNN模型、BERT模型、fasttext模型。
3.根据权利要求1所述的方法,其特征在于,获取待优化NLP模型的步骤,包括:
对初始NLP模型进行预处理,得到待优化NLP模型;其中,预处理的过程包括正则、循环遍历以及分词中的任意一项或多项。
4.根据权利要求1所述的方法,其特征在于,通过对所述待优化NLP模型进行剪枝处理,建立所述待优化NLP模型的稀疏化模型的步骤,包括:
根据所述待优化NLP模型中神经元的作用数据对所述神经元进行排序,将排序结果中处于预设排名之后的神经元移除,基于移除后保留的神经元建立所述待优化NLP模型的稀疏化模型。
5.根据权利要求1所述的方法,其特征在于,对所述稀疏化模型进行量化处理,得到所述稀疏化模型的压缩后模型的步骤,包括:
通过tensorflow lite对所述稀疏化模型进行量化压缩处理,得到所述稀疏化模型的压缩后模型。
6.根据权利要求1所述的方法,其特征在于,所述预设语言代码中的预设语言为Cython语言。
7.根据权利要求1所述的方法,其特征在于,所述异步处理方式包括结合反向代理的处理方式。
8.一种NLP模型优化装置,其特征在于,包括:
获取模块,用于获取待优化NLP模型;
剪枝模块,用于通过对所述待优化NLP模型进行剪枝处理,建立所述待优化NLP模型的稀疏化模型;
量化模块,用于对所述稀疏化模型进行量化处理,得到所述稀疏化模型的压缩后模型;
编译模块,用于对所述压缩后模型的部分代码转换为预设语言代码,并基于代码转换后的模型进行编译,得到编译后模型;所述预设语言代码的运行速度大于所述部分代码的运行速度;
部署模块,用于通过异步处理方式对所述编译后模型部署FastAPI,得到优化后的NLP模型。
9.一种计算机设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至7任一项所述的方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行所述权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010756900.4A CN111859904A (zh) | 2020-07-31 | 2020-07-31 | Nlp模型优化方法、装置以及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010756900.4A CN111859904A (zh) | 2020-07-31 | 2020-07-31 | Nlp模型优化方法、装置以及计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111859904A true CN111859904A (zh) | 2020-10-30 |
Family
ID=72952602
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010756900.4A Pending CN111859904A (zh) | 2020-07-31 | 2020-07-31 | Nlp模型优化方法、装置以及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111859904A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110119745A (zh) * | 2019-04-03 | 2019-08-13 | 平安科技(深圳)有限公司 | 深度学习模型的压缩方法、装置、计算机设备及存储介质 |
CN110162610A (zh) * | 2019-04-16 | 2019-08-23 | 平安科技(深圳)有限公司 | 机器人智能应答方法、装置、计算机设备及存储介质 |
CN110262996A (zh) * | 2019-05-15 | 2019-09-20 | 北京超维度计算科技有限公司 | 一种基于高性能可重构计算的超级计算机 |
CN110889492A (zh) * | 2019-11-25 | 2020-03-17 | 北京百度网讯科技有限公司 | 用于训练深度学习模型的方法和装置 |
CN110908667A (zh) * | 2019-11-18 | 2020-03-24 | 北京迈格威科技有限公司 | 神经网络联合编译的方法、装置和电子设备 |
-
2020
- 2020-07-31 CN CN202010756900.4A patent/CN111859904A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110119745A (zh) * | 2019-04-03 | 2019-08-13 | 平安科技(深圳)有限公司 | 深度学习模型的压缩方法、装置、计算机设备及存储介质 |
CN110162610A (zh) * | 2019-04-16 | 2019-08-23 | 平安科技(深圳)有限公司 | 机器人智能应答方法、装置、计算机设备及存储介质 |
CN110262996A (zh) * | 2019-05-15 | 2019-09-20 | 北京超维度计算科技有限公司 | 一种基于高性能可重构计算的超级计算机 |
CN110908667A (zh) * | 2019-11-18 | 2020-03-24 | 北京迈格威科技有限公司 | 神经网络联合编译的方法、装置和电子设备 |
CN110889492A (zh) * | 2019-11-25 | 2020-03-17 | 北京百度网讯科技有限公司 | 用于训练深度学习模型的方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2022177220A (ja) | テキスト認識モデルの訓練方法、テキスト認識方法及び装置 | |
CN109559734B (zh) | 声学模型训练的加速方法和装置 | |
CN110796242A (zh) | 神经网络模型推理方法、装置、电子设备及可读介质 | |
CN111783974A (zh) | 模型构建及图像处理方法、装置、硬件平台及存储介质 | |
JP2022118263A (ja) | 自然言語処理モデルの訓練方法、自然言語処理方法、装置、電子機器、記憶媒体及びプログラム | |
CN111857949B (zh) | 模型发布方法、装置、设备及存储介质 | |
EP4318319A1 (en) | Model processing method and apparatus | |
US20200050924A1 (en) | Data Processing Method and Apparatus for Neural Network | |
CN108549935B (zh) | 一种实现神经网络模型的装置及方法 | |
CN111061511A (zh) | 一种服务处理方法、装置及存储介质和服务器 | |
CN114490116A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN111859904A (zh) | Nlp模型优化方法、装置以及计算机设备 | |
CN112527272A (zh) | 对接tvm的方法及相关设备 | |
CN113361621B (zh) | 用于训练模型的方法和装置 | |
CN110502439B (zh) | 调试方法、装置、电子设备以及存储介质 | |
CN112001494A (zh) | 一种实现nGraph框架支持FPGA后端设备的方法 | |
CN114925858B (zh) | 基于深度学习框架持续集成系统的任务处理方法及装置 | |
CN114298329A (zh) | 一种模型训练方法、装置、设备及存储介质 | |
CN116776926B (zh) | 一种对话模型的优化部署方法、装置、设备及介质 | |
CN114912544B (zh) | 自动化特征工程模型的训练方法及自动化特征工程方法 | |
CN115469931B (zh) | 一种循环程序的指令优化方法、装置、系统、设备及介质 | |
CN115756416B (zh) | 物理机理求解器计算单元的程序生成方法及装置 | |
US20220051085A1 (en) | Runtime hyper-heterogeneous optimization for processing circuits executing inference model | |
CN113361712B (zh) | 特征确定模型的训练方法、语义分析方法、装置及电子设备 | |
CN112614509B (zh) | 生成语音测评安装包、执行语音测评的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |