CN114186550B - 文本处理方法、装置、系统、设备以及存储介质 - Google Patents
文本处理方法、装置、系统、设备以及存储介质 Download PDFInfo
- Publication number
- CN114186550B CN114186550B CN202111505371.1A CN202111505371A CN114186550B CN 114186550 B CN114186550 B CN 114186550B CN 202111505371 A CN202111505371 A CN 202111505371A CN 114186550 B CN114186550 B CN 114186550B
- Authority
- CN
- China
- Prior art keywords
- operator
- natural language
- tensor
- text processing
- text
- 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.)
- Active
Links
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
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
- G06F16/355—Class or cluster creation or modification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/40—Processing or translation of natural language
- G06F40/42—Data-driven translation
- G06F40/47—Machine-assisted translation, e.g. using translation memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/40—Processing or translation of natural language
- G06F40/53—Processing of non-Latin text
-
- 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
-
- 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
- G06N3/0455—Auto-encoder networks; Encoder-decoder networks
-
- 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/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Machine Translation (AREA)
Abstract
本公开提供了一种文本处理方法、装置、系统、设备以及存储介质,涉及计算机技术领域,尤其涉及自然语言处理、深度学习等人工智能领域。具体实现方案为:采用文本处理加速算子对第一文本进行文本处理;采用所述文本处理加速算子对文本处理后的内容进行并行加速。本公开实施例通过文本加速处理算子进行文本处理和并行加速,可以提高文本处理速度。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及自然语言处理、深度学习等人工智能领域。
背景技术
自然语言处理(Natural Language Processing,NLP)是深度学习框架的应用场景之一。随着预训练模型技术的快速普及,使得自然语言理解与生成两大关键任务应用范式逐渐统一,开发者与业务场景对其性能与易用性的要求也被逐渐提升。
发明内容
本公开提供了一种文本处理方法、装置、系统、设备以及存储介质。
根据本公开的一方面,提供了一种文本处理方法,包括:采用文本处理加速算子对第一文本进行文本处理;采用所述文本处理加速算子对文本处理后的内容进行并行加速。
根据本公开的另一方面,提供了一种文本处理装置,包括:文本处理模块,用于采用文本处理加速算子对第一文本进行文本处理;并行加速模块,用于采用所述文本处理加速算子对文本处理后的内容进行并行加速。
根据本公开的另一方面,提供了一种基于深度学习框架的系统,包括:文本处理加速算子,用于对第一文本进行文本处理,对文本处理后的内容进行并行加速。
根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开任一实施例的方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行本公开任一实施例的方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据本公开任一实施例的方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开一实施例的文本处理方法的流程示意图;
图2是根据本公开另一实施例的文本处理方法的流程示意图;
图3是根据本公开另一实施例的文本处理方法的流程示意图;
图4是根据本公开另一实施例的文本处理方法的流程示意图;
图5是根据本公开另一实施例的文本处理方法的流程示意图;
图6是根据本公开另一实施例的文本处理方法的流程示意图;
图7是根据本公开一实施例的文本处理装置的结构示意图;
图8是根据本公开另一实施例的文本处理装置的结构示意图;
图9是根据本公开另一实施例的文本处理装置的结构示意图;
图10是根据本公开另一实施例的文本处理装置的结构示意图;
图11是根据本公开一实施例的基于深度学习框架的系统的结构示意图;
图12是根据本公开另一实施例的基于深度学习框架的系统的结构示意图;
图13是根据本公开另一实施例的基于深度学习框架的系统的结构示意图;
图14是根据本公开另一实施例的基于深度学习框架的系统的结构示意图;
图15是端到端文本处理的算子化流程的示意图;
图16是一种示例性的转换(Transformer)编码器算子的结构示意图;
图17a是解码器类型的生成网络的示意图;
图17b是前缀语言建模类型的生成网络的示意图;
图17c是编码器解码器类型的生成网络的示意图;
图18a是解码策略为束搜索的示意图;
图18b是解码策略为采样搜索的示意图;
图19是深度学习框架理解与生成模型联合优化的流程示意图;
图20a、图20b和图20c是转换(Transformer)编码器算子融合的流程示意图;
图21a是不同框架文本处理性能对比的示例图;
图21b是训练速度提升的示例图;
图21c是推理速度提升的示例图;
图21d是转换编码速度对比的示例图;
图22示出用来实施本公开的实施例的示例电子设备的示意性框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本公开一实施例的文本处理方法的流程示意图。该方法可以包括:
S101、采用文本处理加速算子对第一文本进行文本处理;
S102、采用所述文本处理加速算子对文本处理后的内容进行并行加速。
具体地,第一文本中可以包括需要继续进行处理的具体内容例如一个或多个字符串文本(String Text)。文本加速处理算子例如加速分词器算子(FasterTokenizerOperator)可以对多个字符串文本进行一系列的文本处理得到每个字符串文本对应的整形(Integer)格式的内容。然后,文本加速处理算子还可以对文本处理后的整形格式的内容进行并行加速。这样通过文本加速处理算子进行文本处理和并行加速,可以提高文本处理速度。
图2是根据本公开另一实施例的文本处理方法的流程示意图。该实施例的文本处理方法可以包括上述方法实施例的一个或多个特征。在一种实施方式中,S101中,采用文本处理加速算子对第一文本进行文本处理,包括:
S201、获取所述第一文本对应的第一张量;
S202、对所述第一张量进行切分,得到多个切分结果;
S203、对每个所述切分结果进行标识映射;
S204、采用映射结果生成第二张量。
示例性地,可以通过第一张量算子获取第一文本的张量表达,将第一文本转换为第一张量。张量是神经网络中的一种数据结构,可以理解为是一个数据容器,与多维数组或者矩阵等类似。第一张量可以包括字符串张量,字符串张量可以包括第一文本中的一个或多个字符串文本(可以简称字符串)。例如,第一张量中可以包括由第一文本分成的N行字符串。通过切分算子可以对第一张量进行切分可以包括对第一张量中的字符串进行切分。然后通过映射算子可以将切分结果分别进行映射后,通过第二张量算子可以根据映射结果得到第二张量。第二张量中可以包括与N行字符串对应的N行整形格式的数值。在本公开实施例中,通过第一张量可以对文本进行有序排列,有利于提高处理结果的准确性,通过将文本处理过程算子化,有利于提高处理速度。
在一种实施方式中,S202中,对所述第一张量进行切分,得到多个切分结果,包括以下至少之一:
对所述第一张量进行分字处理,得到多个分字;
对所述第一张量进行分词处理,得到多个分词。
例如,通过分字算子将第一张量中的某个字符串“今天空气不错”进行分字处理,得到这个字符串的多个分字“今”、“天”、“空”、“气”、“不”和“错”。
再如,通过分词算子将第一张量中的某个字符串“一起去旅游”进行分词处理,得到这个字符串的多个分词“一起”、“去”和“旅游”。
在本公开实施例中,具体进行分字,还是进行分词,或者是既分字又分词,可以根据实际应用场景的需求进行处理,对此不做限定。在本公开实施例中,通过对第一张量进行分字和/或分词处理,有利于灵活地适应于更多的文本处理场景。
在一种实施方式中,S203中,对每个切分结果进行标识映射,包括:根据映射关系将每个分字和/或分词映射为数值。例如,可以预先设置字典、词典、词表等作为映射关系,在字典、词典、词表等可以查找到每个对应的整形格式的数值。在本公开实施例中,通过映射关系查找到第一张量的每个分字和/或分词对应的数值,更加便于机器处理,有利于提高处理速度和准确性。
在一种实施方式中,S204中,采用映射结果生成第二张量,包括:根据所述第一张量的每一行字符串的映射结果得到所述第二张量的每一行数值,所述第一张量包括N行字符串,所述第二张量与所述N行字符串对应的N行数值,N为正整数。
例如,如果第一张量包括N行字符串,通过上述的映射关系可以查找到每行字符串对应的数值,得到N行数值。可以将这N行数值组成的矩阵作为第二张量。在本公开实施例中,通过第二张量可以对第一文本转换得到的数值进行有序排列,便于后续进行加速处理。
在一种实施方式中,所述第一文本包括字符串,所述第一张量为字符串张量,所述第二张量为整形张量,所述第二张量的每一行数值与所述第一张量的每一行字符串具有对应关系。在本公开实施例中,通过第一张量可以对字符串进行有序排列,通过第二张量可以对字符串转换得到的整形数值进行有序排列,便于后续进行加速处理。
在一种实施方式中,S102中,采用所述文本处理加速算子对文本处理后的内容进行并行加速,包括:
S205、采用多线程对所述第二张量进行并行处理。例如,通过多线程并行加速算子调用多个线程,如果每个线程可以处理第二张量的一行数值,则可以并行处理第二张量的多行数值。在本公开实施例中,通过多线程,可以明显提高文本处理速度,有利于实现高性能字符编解码。通常,能够同时调用的线程越多,并行处理的速度越快。
在一种实施方式中,所述文本处理由第一语言运行转换为由第二语言运行。在本公开实施例中,将文本处理由第一语言运行转换为由第二语言运行,能够利用多线程并行加速,有利于灵活地适应于不同的语言环境,进一步提高处理速度。
在一种实施方式,所述第一语言为解释型语言,所述第二语言为编译型语言。例如,将原本通过运行解释型语言来执行的文本处理流程转换为通过运行编译型语言来执行,并且利用编译型语言能够调用多线程的特点实现并行加速。具体例如,解释型语言可以包括Python、Java等,编译型语言可以包括C++等。解释型语言和编译型语言也可以除了上述示例之外的其他类型,在此不做限定。这样,有利于灵活地适应于不同的语言环境,减少开发难度,并利用编译型语言提高处理速度。
图3是根据本公开另一实施例的文本处理方法的流程示意图。该实施例的文本处理方法可以包括上述方法实施例的一个或多个特征。在一种实施方式中,该方法还包括:
S301、采用自然语言理解模型对所述文本处理加速算子加速后的内容进行自然语言理解处理。在本公开实施例中,将文本处理加速算子应用于自然语言理解模型中,可以加快自然语言理解的处理速度。
在一种实施方式中,所述自然语言理解模型包括所述文本处理加速算子和转换编码器算子。在本实施例中,文本处理加速算子的具体功能可以参见图1和图2的实施例的相关描述。例如,文本处理加速算子中的多线程并行加速算子从第二张量并行读取数值后,可以传递给转换(Transformer)编码器算子,由转换编码器算子对收到的数值进行字符串编码。转换编码器算子可以包括多层转换编码器。在本公开实施例中,通过文本处理加速算子和转换编码器算子,可以快速准确进行自然语言理解处理。
在一种实施方式中,所述转换编码器算子包括融合的注意力机制算子和融合的前向反馈算子。
例如,融合的注意力机制算子可以减少注意力机制的OP数目。具体例如,可以将多头注意力机制中的通用矩阵-矩阵乘(General Matrix-matrix Multiplication,GEMM)、偏移相加(bias add)、转置(transpose)等从3减少为1,并提高数据重用率,得到融合的注意力机制(Fused Attention)算子。
再如,可以融合Kernels,得到融合的前向反馈(Fused Feedforward)算子例如FusedDropoutActBias、FusedLnAddDropoutBias、FusedAddDropoutBias等。
在本公开实施例中,通过融合的注意力机制算子可以减少框架调度开销,通过融合的前向反馈算子可以降低访存开销。
在一种实施方式中,该方法还包括:
S302、采用自然语言生成模型对所述自然语言理解模型处理后的内容进行自然语言生成处理。例如,自然语言生成模型的转换编码器算子输出自然语言理解结果后,自然语言生成模型可以利用解码器对自然语言生成模型进行解码和预测等处理,得到自然语言生成结果。在本公开实施例中,通过自然语言生成模型,可以基于自然语言理解结果准确地预测生成结果。
在一种实施方式中,所述自然语言生成模型包括转换解码器算子和解码策略算子。在本公开实施例中,自然语言生成模型通过转换(Transformer)解码器算子和解码策略算子,可以快速准确进行自然语言生成处理。
在一种实施方式中,S302中,采用自然语言生成模型对所述自然语言理解模型处理后的内容进行自然语言生成处理,包括:采用所述转换解码器算子识别解码器代码特征,以识别所采用的生成网络类型;调用所述生成网络类型对应的预置解码算子。
例如,可以为每一种生成网络类型的预置高性能的解码算子。如果用户选择了某种类型的解码器代码,转换解码器算子可以基于该解码器代码识别该用户所采用的生成网络类型。然后转换解码器算子可以调用所识别出的生成网络类型对应的预置的高性能的解码算子。因此,在本公开实施例中,可以支持多种生成网络类型,进而支持更多的解码能力。
在一种实施方式,所述生成网络类型包括以下至少之一:
解码器Decoder类型;
前缀语言建模Prefix LM类型;
编码器解码器Encoder-Decoder类型。
例如,Decoder类型的生成网络可以包括解码器层和Transformer层等。再如,Prefix LM类型的生成网络可以包括Prefix LM层和Transformer层等。再如,Encoder-Decoder类型的生成网络可以包括解码器层、Transformer层、编码器解码器层和编码器层等。在本公开实施例中,通过支持更加全面的生成网络类型,从而提供更加丰富的解码能力。
在一种实施方式中,S302中,采用自然语言生成模型对所述自然语言理解模型处理后的内容进行自然语言生成处理,还包括:采用所述解码策略算子识别解码策略特征,以识别所采用的解码算法;采用所述解码算法将运行在第一语言上的循环代码自动翻译为第二语言的代码。
例如,如果用户选择了某种解码算法,解码策略算子可以识别解码策略特征,进而识别用户所采用的加密算法,进而第一语言上的循环代码自动翻译为第二语言的代码。参见上述的示例,第一语言可以为解释型语言,第二语言可以为编译型语言。采用识别出的解码算法可以将运行在解释型语言上的循环代码自动翻译为编译型语言的代码。因此,有利于自动进行不同语言之间的代码转换,提高自然语言生成处理的性能,减少开发难度。
在一种实施方式,所述解码算法包括以下至少之一:
基于搜索的解码算法;
基于采样的解码算法。
例如,基于搜索的解码算法可以包括贪心搜索、束搜索等。其中,贪心搜索可以在每一步中预测最有可能的那个词,将这个词作为下一次预测时的输入。束搜索可以先用编码器解码器给定输入的语法句子,输出第一个单词最可能的概率值;再针对每个已经选出的第一个可能的单词,考虑第二个单词是什么。
再如,基于采样的解码算法可以包括随机采样、前K个采样(Top-K Sampling)、核采样(Top-P(nucleus)Sampling)。其中,随机采样可以包括:根据语言模型得到的下一个单词在整个单词表上的概率分布进行随机采样,决定下一个单词生成什么。Top-K Sampling可以包括:取概率最大的K个词,之后对这K个词概率归一化之后再进行采样。Top-P采样可以包括:对当前的所有词的概率按照从大到小开始累加,当累加的值大于阈值P时,后面小的概率词就不使用,对前面的词再进行采样。
在本公开实施例中,通过不同解码算法,可以支持更加丰富的自动解码功能,提高代码转换性能。
在一种实施方式中,S302中,采用自然语言生成模型对所述自然语言理解模型处理后的内容进行自然语言生成处理,还包括:调用深度学习框架的即时编译能力编译所述第二语言的代码得到动态链接库,以将所述动态链接库与所述深度学习框架链接。
参见上述的示例,第二语言可以为编译型语言。调用深度学习框架的即时编译能力,可以自动编译该编译型语言的代码得到动态链接库,进而将深度学习框架与动态链接库链接,得到高性能的转换解码器算子。
图4是根据本公开另一实施例的文本处理方法的流程示意图。该实施例的文本处理方法可以包括上述方法实施例的一个或多个特征。在一种实施方式中,该方法还包括:
S401、导出所述文本处理加速算子的词表。例如,文本处理加速算子的词表可以包括该文本处理加速算子所使用的各个词与数值的映射关系。不同自然语言理解模型的所使用文本处理加速算子的词表可能不同,也可能部分或全部相同,具体根据自然语言理解模型具体需要实现的功能来确定。在本公开实施例中,导出文本处理加速算子的词表后可以复用,有利于提高后续的部署速度,降低部署难度。
在一种实施方式中,该方法还包括以下至少之一:
S402、对导出的词表采用二进制序列化方式存储;
S403、采用压缩算法对导出的词表进行压缩存储。
通过序列化存储有利于提高读取词表的速度,进而提高文本处理速度。通过压缩存储有利于减少词表占用的存储空间,节约存储资源。
图5是根据本公开另一实施例的文本处理方法的流程示意图。该实施例的文本处理方法可以包括上述方法实施例的一个或多个特征。在一种实施方式中,该方法还包括:
S501、将所述文本处理加速算子和转换编码器算子合并为一个算子,导出自然语言理解模型计算图。
在本公开实施例中,计算图可以为有向图,其中的节点可以对应于数学运算。计算图可以是表达和评估数学表达式的一种方式。在本公开实施例中,将文本处理加速算子和转换编码器算子合并在自然语言理解模型计算图中,有利于加快自然语言理解的速度,并得到准确的自然语言理解结果。
图6是根据本公开另一实施例的文本处理方法的流程示意图。该实施例的文本处理方法可以包括上述方法实施例的一个或多个特征。在一种实施方式中,该方法还包括:
S601、根据解码策略,生成循环解码的框架计算图;
S602、将转换解码器算子,嵌入所述循环解码的框架计算图中;
S603、导出自然语言生成模型计算图。
例如,首先,根据解码策略生成循环解码的框架计算图(可以简称解码框架计算图),该解码框架计算图主要包括循环流程图。然后,在解码框架计算图中补上解码器的计算结构。例如,解码器的计算结构可以包括通过转换解码器算子识别解码器代码特征得到的生成网络结构。
在本公开实施例中,将转换解码器算子嵌入解码框架计算图中,能够快速导出自然语言生成模型计算图,有利于减少后续的部署难度,提高部署速度。
在一种实施方式中,该方法还包括:导出自然语言处理合并计算图,所述自然语言处理合并计算图包括自然语言理解模型计算图和自然语言生成模型计算图合并的计算图;其中,所述自然语言理解模型计算图包括文本处理加速算子和转换编码器算子;所述自然语言生成模型计算图包括转换解码器算子和解码策略算子。其中,合并的计算图可以包括自然语言理解模型计算图的算子和自然语言生成模型计算图的算子。
在本公开实施例中,通过导出合并的计算图,可以实现一体化存储,导出方式简单,导出的计算图支持的丰富的自然语言理解和生成功能。
在一种实施方式中,该方法还包括:在多个设备的深度学习框架中导入自然语言理解模型计算图、自然语言生成模型计算图和合并的计算图中的至少之一。这样,有利于实现一次到处,多出部署,满足多设备训推一体统一部署的需要。
图7是根据本公开一实施例的文本处理装置的结构示意图。该装置可以包括:
文本处理模块701,用于采用文本处理加速算子对第一文本进行文本处理;
并行加速模块702,用于采用所述文本处理加速算子对文本处理后的内容进行并行加速。
在本公开实施例中,通过文本加速处理算子进行文本处理和加速,可以提高文本处理速度。
图8是根据本公开另一实施例的文本处理装置的结构示意图。该实施例的文本处理装置可以包括上述装置实施例的一个或多个特征。在一种实施方式中,所述文本处理模块701包括:
第一张量子模块801,用于获取所述第一文本对应的第一张量;
切分子模块802,用于对所述第一张量进行切分,得到多个切分结果;
映射子模块803,用于对每个所述切分结果进行标识映射;
第二张量子模块804,用于采用映射结果生成第二张量。
在一种实施方式中,所述切分子模块802具体用于执行以下至少之一:
对所述第一张量进行分字处理,得到多个分字;
对所述第一张量进行分词处理,得到多个分词;
在一种实施方式中,所述映射子模块803具体用于根据映射关系将每个分字和/或分词映射为数值。
在一种实施方式中,所述第二张量子模块804具体用于根据所述第一张量的每一行字符串的映射结果得到所述第二张量的每一行数值,所述第一张量包括N行字符串,所述第二张量与所述N行字符串对应的N行数值,N为正整数。
在一种实施方式中,所述第一文本包括字符串,所述第一张量为字符串张量,所述第二张量为整形张量,所述第二张量的每一行数值与所述第一张量的每一行字符串具有对应关系。
在一种实施方式中,所述并行加速模块702具体用于采用多线程对所述第二张量进行并行处理。
在一种实施方式中,所述文本处理模块701进行文本处理由第一语言运行转换为由第二语言运行。
图9是根据本公开另一实施例的文本处理装置的结构示意图。该实施例的文本处理装置可以包括上述装置实施例的一个或多个特征。在一种实施方式中,该装置还包括:自然语言理解模块901,用于采用自然语言理解模型对所述文本处理加速算子加速后的内容进行自然语言理解处理。
在一种实施方式中,所述自然语言理解模型包括所述文本处理加速算子和转换编码器算子。
在一种实施方式中,所述转换编码器算子包括融合的注意力机制算子和融合的前向反馈算子。
在一种实施方式中,该装置还包括:自然语言生成模块902,用于采用自然语言生成模型对所述自然语言理解模型处理后的内容进行自然语言生成处理。
在一种实施方式中,所述自然语言生成模型包括转换解码器算子和解码策略算子。
在一种实施方式中,自然语言生成模块902包括:转换解码子模块9021,用于采用所述转换解码器算子识别解码器代码特征,以识别所采用的生成网络类型;调用所述生成网络类型对应的预置解码算子。
在一种实施方式中,所述生成网络类型包括以下至少之一:
解码器Decoder类型;
前缀语言建模Prefix LM类型;
编码器解码器Encoder-Decoder类型。
在一种实施方式中,自然语言生成模块902包括:解码策略子模块9022,用于采用所述解码策略算子识别解码策略特征,以识别所采用的解码算法;采用所述解码算法将运行在第一语言上的循环代码自动翻译为第二语言的代码。
在一种实施方式中,所述解码算法包括以下至少之一:
基于搜索的解码算法;
基于采样的解码算法。
在一种实施方式中,自然语言生成模块802还包括:编译子模块9023,用于调用深度学习框架的即时编译能力编译所述第二语言的代码得到动态链接库,以将所述动态链接库与所述深度学习框架链接。
在一种实施方式中,所述第一语言为解释型语言,所述第二语言为编译型语言。
图10是根据本公开另一实施例的文本处理装置的结构示意图。该实施例的文本处理装置可以包括上述装置实施例的一个或多个特征。在一种实施方式中,该装置还包括:第一导出模块1001,用于导出所述文本处理加速算子的词表。
在一种实施方式中,该装置还包括存储模块1002,用于以下至少之一:
对导出的词表采用二进制序列化方式存储;
采用压缩算法对导出的词表进行压缩存储。
在一种实施方式中,该装置还包括:第二导出模块1003,用于将所述文本处理加速算子和转换编码器算子合并为一个算子,导出自然语言理解模型计算图。
在一种实施方式中,该装置还包括:第三导出模块1004,用于根据解码策略,生成循环解码的框架计算图;将转换解码器算子,嵌入所述循环解码的框架计算图中;导出自然语言生成模型计算图。
在一种实施方式中,该装置还包括:第四导出模块1005,用于导出自然语言处理合并计算图,所述自然语言处理合并计算图包括自然语言理解模型计算图和自然语言生成模型计算图合并的计算图;
其中,所述自然语言理解模型计算图包括文本处理加速算子和转换编码器算子;所述自然语言生成模型计算图包括转换解码器算子和解码策略算子。
在一种实施方式中,该装置还包括:部署模块1006,用于在多个设备的深度学习框架中导入自然语言理解模型计算图、自然语言生成模型计算图和合并的计算图中的至少之一。
本公开实施例的文本处理装置的各模块的具体功能和示例,可以参见上述文本处理方法实施例中的相关描述,在此不再赘述。
图11是根据本公开一实施例的基于深度学习框架的系统的结构示意图。该系统可以包括:文本处理加速算子1101,用于对第一文本进行文本处理,对文本处理后的内容进行并行加速。
在本公开实施例中,通过文本加速处理算子进行文本处理和加速,可以提高基于深度学习框架的系统的文本处理速度。
图12是根据本公开另一实施例的基于深度学习框架的系统的结构示意图。该实施例的基于深度学习框架的系统可以包括上述系统实施例的一个或多个特征。在一种实施方式中,所述文本处理加速算子1101包括:
第一张量算子1201,用于获取所述第一文本对应的第一张量;
切分算子1202,用于对所述第一张量进行切分,得到多个切分结果;
映射算子1203,用于对每个所述切分结果进行标识映射;
第二张量算子1204,用于采用映射结果生成第二张量。
在一种实施方式中,所述切分算子1202具体用于执行以下至少之一:
对所述第一张量进行分字处理,得到多个分字;
对所述第一张量进行分词处理,得到多个分词;
在一种实施方式中,所述映射算子1203具体用于根据映射关系将每个分字和/或分词映射为数值。
在一种实施方式中,所述第二张量算子1204具体用于根据所述第一张量的每一行字符串的映射结果得到所述第二张量的每一行数值,所述第一张量包括N行字符串,所述第二张量与所述N行字符串对应的N行数值,N为正整数。
在一种实施方式中,所述第一文本包括字符串,所述第一张量为字符串张量,所述第二张量为整形张量,所述第二张量的每一行数值与所述第一张量的每一行字符串具有对应关系。
在一种实施方式中,所述文本处理加速算子1101还包括:多线程并行加速算子1205,用于采用多线程对所述第二张量进行并行处理。
在一种实施方式中,所述第一张量算子、切分算子、映射算子和第二张量算子是运行第一语言执行的,所述多线程并行加速算子是运行第二语言执行的。
图13是根据本公开另一实施例的基于深度学习框架的系统的结构示意图。该实施例的基于深度学习框架的系统可以包括上述系统实施例的一个或多个特征。在一种实施方式中,该系统还包括:自然语言理解模型1301,用于对所述文本处理加速算子加速后的内容进行自然语言理解处理。
在一种实施方式中,所述自然语言理解模型包括所述文本处理加速算子1101和转换编码器算子1102。
在一种实施方式中,所述转换编码器算子1102包括融合的注意力机制算子和融合的前向反馈算子。
在一种实施方式中,该系统还包括:自然语言生成模型1302,用于对所述自然语言理解模型处理后的内容进行自然语言生成处理。
在一种实施方式中,所述自然语言生成模型1302包括转换解码器算子13021和解码策略算子13022。
在一种实施方式中,所述转换解码器算子13021用于:
识别解码器代码特征,以识别所采用的生成网络类型;
调用所述生成网络类型对应的预置解码算子。
在一种实施方式中,所述生成网络类型包括以下至少之一:
解码器Decoder类型;
前缀语言建模Prefix LM类型;
编码器解码器Encoder-Decoder类型。
在一种实施方式中,所述解码策略算子13022用于:
识别解码策略特征,以识别所采用的解码算法;
采用所述解码算法将运行在第一语言上的循环代码自动翻译为第二语言的代码。
在一种实施方式中,所述解码算法包括以下至少之一:
基于搜索的解码算法;
基于采样的解码算法。
在一种实施方式中,该自然语言生成模型还包括:编译算子13023,用于调用深度学习框架的即时编译能力编译所述第二语言的代码得到动态链接库,以将所述动态链接库与所述深度学习框架链接。
在一种实施方式中,所述第一语言为解释型语言,所述第二语言为编译型语言。
图14是根据本公开另一实施例的基于深度学习框架的系统的结构示意图。该实施例的基于深度学习框架的系统可以包括上述系统实施例的一个或多个特征。在一种实施方式中,该系统还包括:第一导出模块1401,用于导出所述文本处理加速算子的词表。
在一种实施方式中,该系统还包括存储模块1402,用于执行以下至少之一:
对导出的词表采用二进制序列化方式存储;
采用压缩算法对导出的词表进行压缩存储。
在一种实施方式中,该系统还包括:第二导出模块1403,用于将所述文本处理加速算子和转换编码器算子合并为一个算子,导出自然语言理解模型计算图。
在一种实施方式中,该系统还包括:第三导出模块1404,用于根据解码策略,生成循环解码的框架计算图;将转换解码器算子,嵌入所述循环解码的框架计算图中;导出自然语言生成模型计算图。
在一种实施方式中,该系统还包括:第四导出模块1405,用于导出自然语言处理合并计算图,所述自然语言处理合并计算图包括自然语言理解模型计算图和自然语言生成模型计算图合并的计算图;
其中,所述自然语言理解模型计算图包括文本处理加速算子和转换编码器算子;所述自然语言生成模型计算图包括转换解码器算子和解码策略算子。
在一种实施方式中,该系统还包括:部署模块1406,用于在多个设备的深度学习框架中导入自然语言理解模型计算图、自然语言生成模型计算图和合并的计算图中的至少之一。
本公开实施例的基于深度学习框架的系统的各算子和/或模块的具体功能和示例,可以参见上述文本处理方法实施例中的相关描述,在此不再赘述。
当前深度学习框架在解决预训练模型在NLP场景应用时,训练和推理性能仍然有很大的优化空间,且开发体验在训练和部署的时候呈现不一致,在真实工业场景中也提升了落地和部署的成本。
深度学习框架如PyTorch是在框架外使用解释型语言(如Python)进行处理,而让深度学习框架重点聚焦对深度学习模型例如:DNN(Deep Neural Networks,深度神经网络)模型、转换(Transformer)模型、ERNIE(飞桨语义理解框架)模型、BERT(BiDirectionalEncoder Rpresentation From Transformers,转换的双向编码器表示)部分的高性能计算。但对于工业界场景如互联网公司,追求极致的性能与成本,模型需要上线部署时会选用编译型语言(如C++)对模型进行端到端的开发实现。此时需要使用C++端实现文本处理部分的逻辑。而如果深度学习框架只对(DNN/Transformer/BERT/ERNIE)等预训练模型进行C++推理,开发者需要对着Python复杂的文本处理逻辑,重新改写一套C++版本,并严格进行对齐与测试。而随着模型与应用场景的迁移,文本处理的流程会有大幅度的变化(如从文本分类迁移至机器翻译,两套文本处理逻辑完全不同)此时的开发成本会非常高昂且容易遇到编码等细节问题造成线上部署效果出错或者不对齐。例如,参考BERT模型训练与推理的文本处理模块,使用的为纯Python版本的处理,无C++版本,且与TensorFlow框架分离。
一些框架因为文本处理(Tokenizer部分)实现逻辑复杂,开发成本较高,多数采用解释型语言(如Python)进行实现,因此其实现性能均比较低。且受制于解释型语言,难以多线程并发加速。为此,本公开实施例提出了文本处理自动算子的流程,可以在框架内提供针对预训练模型的文本处理算子,并且可以利用编译型语言实现多线程并发加速。
针对自然语言生成模型,由于解码策略的复杂性,大部分框架对于解码的循环均在解释型语言上进行,因此产生了大量的框架调度开销,使得GPU利用率较低,文本生成速度慢。为此,本公开实施例提出自动生成网络识别、解码策略识别、编译型代码生成、即时编译等加速流程。
其他框架NLP的产业级部署流程繁杂,成本较高。为此,本公开实施例针对NLP模型的导出部署,可以将文本处理算子部分与计算图融合导出,提出了包含文本处理、自然语言理解与生成计算图联合导出的流程,降低部署成本。
在本公开实施例中,提供一种依托深度学习框架例如百度飞桨深度学习框架的方法和系统,可以满足自然语言理解与生成两大关键应用场景的一套高效开发、训练和推理。本公开实施例的方案可广泛应用于文本分类、序列标注、机器翻译、文本生成、阅读理解、通用对话等多种自然语言处理产业化落地场景。
本公开实施例针对自然语言处理在深度学习框架上的应用特点,提出了以下应用流程,包含端到端文本处理算子化、自然语言理解模型与生成模型联合加速以及训推一体部署方案中的至少之一。
一、深度学习框架端到端文本处理算子化流程
针对深度学习框架可以整体使用张量(Tensor)加速的特点,提供了一套针对原始文本(Raw Text)类型的张量表达。这种方式可以通过字符串张量的协议,结合编译器技术的代码生成(Code Gen)原理,自动将解释型语言(例如Python)上实现的低性能流程融合并自动生成对应的高性能C++代码。通过例如MKLDNN等中央处理单元(CPU)高性能加速库自动并行化,达到了超越传统解释型(例如Python)代码实现速度的近百倍。示例性地,上述的低性能流程可以包括多个复杂的文本处理流程如基础分词模块、标识(Identifier,ID)映射模块等细粒度模块的功能。
如图15所示,是一种深度学习端到端文本处理的算子化流程,可以将文本处理自动算子化,然后通过多线程并行加速。例如,在文本处理自动算子化中,首先字符串张量算子将原始字符串文本(String Text)转换为字符串张量(String Tensor),切分算子利用基础分字模块对字符串张量进行分字处理。然后,映射算子对各个分字结果分别进行ID映射,得到每个分字结果对应的整形数值,进而整形张量算子利用原始字符串对应的正常数值得到整形张量(Integer Tensor)。通过多线程可以对整形张量并行处理。文本处理自动算子化过程可以通过例如加速分词器算子(FasterTokenizerOperator)实现上述的文本处理和并行加速,将解释型语言运行时实现的基础的文本处理功能,转换为在编译型语言运行时实现,利用编译型语言可以多线程并行处理的特点,提高大幅文本处理速度。加速分词器算子也可以称为加速版分词算子、加速版分词器、分词器等。
二、自然语言理解与生成任务自动化加速流程
对于自然语言理解模型种类,主要是基于转换模型的编码器(TransformerEncoder)(可以简称转换编码器)类型的。
如图16所示,是一种示例性的转换(Transformer)编码器结构示意图。该Transformer编码器可以包括Add&Norm、前向反馈(Feed Forward)、
示例性地,自然语言生成模型的种类,按照编码器类型可以包括:
纯解码器(Decoder)类型:如图17a所示,纯Decoder类型的自然语言生成模型可以包括转换(Transformer)层、解码器(Decoder)层和Transformer层。纯Decoder类型的代表模型结构例如生成式预训练(Gererate Pre-Training,GPT)模型。
前缀语言建模(Prefix Language Model,Prefix LM)类型:如图17b所示,纯Prefix LM类型的自然语言生成模型可以包括Transformer层、Prefix LM层和Transformer层。Prefix LM类型的代表模型例如统一语言模型(Unified Language Model,UniLM)、PLATO模型(一种通用领域对话生成预训练模型)。
编码器解码器(Encoder-Decoder)类型,如图17c所示,Encoder-Decoder类型的自然语言生成模型可以包括Transformer层、Decoder层、Transformer层、Encoder-Decoder层、Transformer层、编码器(Encoder)层和Transformer层。Encoder-Decoder类型的代表模型例如BART(Bidirectional and Auto-Regressive Transformers,双向自回归转换)模型。
示例性地,生成的解码策略,可以包括以下类型:
基于搜索的解码算法,例如:束搜索(Beam Search)、贪心搜索(Greedy Search)、多样同胞搜索(Diverse Sibling Search)等。如图18a所示,为束搜索的一种示例。可以先用编码器解码器给定输入的语法句子,输出第一个单词最可能的概率值,例如词1到词2的概率为0.4,到词3的概率为0.5,到词4的概率为0.1。然后,针对每个已经选出的第一个可能的单词,考虑第二个单词是什么。例如,词2到词5的概率是0.05,到词6的概率是0.05,到词7的概率是0.9;词3到词8的概率是0.4,到词9的概率是0.4,到词20的概率是0.3;词4到词11的概率是0.3,到词12的概率是0.5,到词13的概率是0.2。
基于采样的解码模块,例如:前K个采样(Top-K Sampling)、核采样(Top-PSampling)等。如图18b所示,为采样搜索的一种示例。
在本公开实施例中,提供了一种针对兼具自然语言理解模型(简称理解模块)和自然语言生成模型(简称生成模块)综合加速的流程,如图19所示,该流程可以包括以下几个部分:
1、针对理解模型Transformer编码器的加速优化,如图19所示,可以包括以下步骤:
S11.针对原始文本例如字符串(String Text)输入,框架可以自动插入加速版本分词算子(FasterTokenizer Operator)对原始文本进行高性能处理。
S12.调用多层Transformer编码器进行字符串编码。
示例性地,针对理解模型中的编码器优化,可以包括注意力机制融合和前向反馈融合:
(1)在编码过程中可以针对多头注意力机制进行融合优化,以减少框架调度开销。例如,可以将算子数目减少1/3,如图20a、图20b和图20c所示,可以将多头注意力机制中的GEMM、偏移相加(bias add)、转置(transpose)等从3减少为1,提高数据重用率,得到融合的注意力机制(Fused Attention)算子。
(2)对Feedforward层进行融合优化。例如,如图20c所示,将传统的3个GPU的核(Kernel)算子融合为1个,例如,融合的核算子可以包括FusedDropoutActBias、FusedLnAddDropoutBias、FusedAddDropoutBias等,可以得到融合的前向反馈(FusedFeedforward)算子。可以显著降低一倍访存操作开销例如从8load/store(访/存)变为4load/store。
2、针对生成模型中的Transformer解码器的加速优化,也可以参见图20a、图20b和图20c。例如,该加速优化过程可以包括以下步骤:
S21.生成网络类型识别,调用阈值解码算子。具体地,多层Transformer解码器算子可以识别用户解码器代码特征,对生成网络类型进行分类,例如,根据图17a、图17b和图17c所示的类型,用户解码器代码特征可能被识别为这三类生成网络中的某一类。然后,可以自动调用与所识别出的生成网络对应的预置的高性能解码算子进行计算。
S22.解码策略识别,自动生成编译型语言。具体地,解码策略算子可以识别用户解码策略的特征,确定用户解码策略是基于搜索的算法还是基于采样的算法。针对基于搜索的算法和基于采样的算法的不同,可以将解释型语言上的循环代码,自动翻译为编译型语言的代码以提高性能。
S23.框架自动即时编译,自动生成算子并链接。例如,调用深度学习框架例如飞桨框架的即时编译(Just In-time Compiler)能力,快速得到动态链接库,链接得到高性能的解码器算子。
流程可以循环执行N次直至文本生成结束。
三、针对理解与生成模型的训推一体的部署方案流程,可以包括以下几个部分:
第一部分是理解模型的导出,可以包括以下步骤:S1.1首先需要对分词器中的词表进行导出,采用二进制序列化方式保存。S1.2(可选)也可以针对词表文本特点采用一系列压缩算法减少词表文件的存储。S1.3接下来,将分词器与多层Transformer编码器合并为一个算子,并导出为整体的理解模型计算图。
第二部分是生成模型的导出,可以包括以下步骤:S2.1先根据解码策略,产出循环解码的框架计算图(可以简称循环框架计算图)。S2.2将多层Transformer解码器的算子嵌入解码策略循环即循环框架计算图中。S2.3产出生成模型计算图。
第三部分是根据业务需要进行计算图合并。如果只需要自然语言理解部分,则只需要使用理解模型计算图。如果要生成模型部分的计算图,则可以将理解模型计算图和生成模型计算图合并成一个计算图,满足多设备训推一体统一部署的需要。
本公开实施例方案可以有效的提升自然语言理解全场景应用的训练模型速度、推理速度和部署成本,达到训推一体的部署体验。
如图21a所示,是不同框架文本处理性能的对比图,通过快速版本分词方案(本方案),可以远超其他框架的文本处理的速度。例如本方案可以为Paddle FasterTokenizer。对比方案1可以为HuggingFace Tokenizers(Rust),对比方案2可以为HuggingFaceTokenizers(Python),对比方案3可以为TensorFlow Text。
本方案的模型前向计算支持原始文本传入,文本处理与模型计算支持整图导出。本方案的训练速度与推理速度相比传统方案可以提速200%以上,推理速度提升160%,记录如图21b和图21c所示。
同时部署成本相比无训推一体版本,代码量有可以降低94%。例如C++部署代码从800多行降低到48行。
参见图21d,生成任务如机器翻译,使用本方案的生成与理解模型的融合优化策略后,加速比相比同类框架例如PyTorch的原生实现,最高可以有10倍以上提升。
本公开实施例提出了一种围绕深度学习框架在自然语言理解和自然语言生成全应用场景上的上的全流程开发范式,可以大幅度提升模型训练和推理性能,降低部署成本。依托深度学习张量化计算特点,对解释型语言的文本处理流程自动生成编译型语言并张量化并行加速的能力。自然语言理解和生成计算图的算子融合联合优化,降低与框架调度与访存开销,大幅提升性能。文本处理、自然语言理解、自然语言生成的计算图联合导出,全流程一体化存储,形成一次导出,多处部署的训推一体特色开发体验,降低部署成本。
本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图22示出了可以用来实施本公开的实施例的示例电子设备2200的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图22所示,设备2200包括计算单元2201,其可以根据存储在只读存储器(ROM)2202中的计算机程序或者从存储单元2208加载到随机访问存储器(RAM)2203中的计算机程序,来执行各种适当的动作和处理。在RAM2203中,还可存储设备2200操作所需的各种程序和数据。计算单元2201、ROM 2202以及RAM 2203通过总线2204彼此相连。输入/输出(I/O)接口2205也连接至总线2204。
设备2200中的多个部件连接至I/O接口2205,包括:输入单元2206,例如键盘、鼠标等;输出单元2207,例如各种类型的显示器、扬声器等;存储单元2208,例如磁盘、光盘等;以及通信单元2209,例如网卡、调制解调器、无线通信收发机等。通信单元2209允许设备2200通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元2201可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元2201的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元2201执行上文所描述的各个方法和处理,例如上述的文本处理方法。例如,在一些实施例中,上述的文本处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元2208。在一些实施例中,计算机程序的部分或者全部可以经由ROM 2202和/或通信单元2209而被载入和/或安装到设备2200上。当计算机程序加载到RAM 2203并由计算单元2201执行时,可以执行上文描述的文本处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元2201可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行上述的文本处理方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入、或者触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (45)
1.一种文本处理方法,包括:
采用文本处理加速算子对第一文本进行文本处理;以及
采用所述文本处理加速算子对文本处理后的内容进行并行加速;
其中,采用所述文本处理加速算子对所述第一文本进行文本处理,包括:
获取所述第一文本对应的第一张量;其中,所述第一文本包括字符串,所述第一张量为字符串张量;
对所述第一张量进行切分,得到多个切分结果;
对每个所述切分结果进行标识映射;以及
采用映射结果生成第二张量;其中,所述第二张量为整形张量;
其中,采用所述映射结果生成所述第二张量,包括:
根据所述第一张量的每一行字符串的映射结果得到所述第二张量的对应行数值;其中,所述第一张量包括N行字符串,所述第二张量包括与所述N行字符串分别对应的N行数值,N为正整数;
其中,采用所述文本处理加速算子对文本处理后的内容进行并行加速,包括:
采用多线程对所述第二张量进行并行处理。
2.根据权利要求1所述的方法,其中,对所述第一张量进行切分,得到多个切分结果,包括以下至少之一:
对所述第一张量进行分字处理,得到多个分字;
对所述第一张量进行分词处理,得到多个分词。
3.根据权利要求2所述的方法,其中,对每个所述切分结果进行标识映射,包括:
根据映射关系将每个分字和/或分词映射为数值。
4.根据权利要求1所述的方法,其中,所述文本处理由第一语言运行转换为由第二语言运行;其中,所述第一语言为解释型语言,所述第二语言为编译型语言。
5.根据权利要求1所述的方法,还包括:
采用自然语言理解模型对所述文本处理加速算子加速后的内容进行自然语言理解处理。
6.根据权利要求5所述的方法,其中,所述自然语言理解模型包括所述文本处理加速算子和转换编码器算子。
7.根据权利要求6所述的方法,其中,所述转换编码器算子包括融合的注意力机制算子和融合的前向反馈算子。
8.根据权利要求1所述的方法,还包括:
采用自然语言生成模型对自然语言理解模型处理后的内容进行自然语言生成处理。
9.根据权利要求8所述的方法,所述自然语言生成模型包括转换解码器算子和解码策略算子。
10.根据权利要求9所述的方法,其中,采用自然语言生成模型对所述自然语言理解模型处理后的内容进行自然语言生成处理,包括:
采用所述转换解码器算子识别解码器代码特征,以识别所采用的生成网络类型;调用所述生成网络类型对应的预置解码算子。
11.根据权利要求10所述的方法,其中,所述生成网络类型包括以下至少之一:
解码器Decoder类型;
前缀语言建模Prefix LM类型;
编码器解码器Encoder-Decoder类型。
12.根据权利要求9所述的方法,其中,采用自然语言生成模型对所述自然语言理解模型处理后的内容进行自然语言生成处理,还包括:
采用所述解码策略算子识别解码策略特征,以识别所采用的解码算法;采用所述解码算法将运行在第一语言上的循环代码自动翻译为第二语言的代码。
13.根据权利要求12所述的方法,其中,所述解码算法包括以下至少之一:
基于搜索的解码算法;
基于采样的解码算法。
14.根据权利要求12所述的方法,采用自然语言生成模型对所述自然语言理解模型处理后的内容进行自然语言生成处理,还包括:
调用深度学习框架的即时编译能力编译所述第二语言的代码得到动态链接库,以将所述动态链接库与所述深度学习框架链接。
15.根据权利要求12所述的方法,其中,所述第一语言为解释型语言,所述第二语言为编译型语言。
16.根据权利要求1至15中任一项所述的方法,还包括:
导出所述文本处理加速算子的词表。
17.根据权利要求16所述的方法,还包括以下至少之一:
对导出的词表采用二进制序列化方式存储;
采用压缩算法对导出的词表进行压缩存储。
18.根据权利要求1至15中任一项所述的方法,还包括:
将所述文本处理加速算子和转换编码器算子合并为一个算子,导出自然语言理解模型计算图。
19.根据权利要求1至15中任一项所述的方法,还包括:
根据解码策略,生成循环解码的框架计算图;
将转换解码器算子,嵌入所述循环解码的框架计算图中;
导出自然语言生成模型计算图。
20.根据权利要求1至15中任一项所述的方法,还包括:
导出自然语言处理合并计算图,所述自然语言处理合并计算图包括自然语言理解模型计算图和自然语言生成模型计算图合并的计算图;
其中,所述自然语言理解模型计算图包括文本处理加速算子和转换编码器算子;所述自然语言生成模型计算图包括转换解码器算子和解码策略算子。
21.根据权利要求1至15中任一项所述的方法,还包括:
在多个设备的深度学习框架中导入自然语言理解模型计算图、自然语言生成模型计算图和合并的计算图中的至少之一。
22.一种文本处理装置,包括:
文本处理模块,用于采用文本处理加速算子对第一文本进行文本处理;以及
并行加速模块,用于采用所述文本处理加速算子对文本处理后的内容进行并行加速;
其中,所述文本处理模块包括:
第一张量子模块,用于获取所述第一文本对应的第一张量;其中,所述第一文本包括字符串,所述第一张量为字符串张量;
切分子模块,用于对所述第一张量进行切分,得到多个切分结果;
映射子模块,用于对每个所述切分结果进行标识映射;以及
第二张量子模块,用于采用映射结果生成第二张量;其中,所述第二张量为整形张量;
其中,所述第二张量子模块,用于根据所述第一张量的每一行字符串的映射结果得到所述第二张量的对应行数值;其中,所述第一张量包括N行字符串,所述第二张量包括与所述N行字符串分别对应的N行数值,N为正整数;
其中,所述并行加速模块具体用于采用多线程对所述第二张量进行并行处理。
23.根据权利要求22所述的装置,还包括:
自然语言理解模块,用于采用自然语言理解模型对所述文本处理加速算子加速后的内容进行自然语言理解处理。
24.根据权利要求23所述的装置,其中,所述自然语言理解模型包括所述文本处理加速算子和转换编码器算子。
25.根据权利要求24所述的装置,其中,所述转换编码器算子包括融合的注意力机制算子和融合的前向反馈算子。
26.根据权利要求22所述的装置,还包括:
自然语言生成模块,用于采用自然语言生成模型对自然语言理解模型处理后的内容进行自然语言生成处理。
27.根据权利要求26所述的装置,所述自然语言生成模型包括转换解码器算子和解码策略算子。
28.根据权利要求22至27中任一项所述的装置,还包括:
第一导出模块,用于导出所述文本处理加速算子的词表。
29.根据权利要求22至27中任一项所述的装置,还包括:
第二导出模块,用于将所述文本处理加速算子和转换编码器算子合并为一个算子,导出自然语言理解模型计算图。
30.根据权利要求22至27中任一项所述的装置,还包括:
第三导出模块,用于根据解码策略,生成循环解码的框架计算图;将转换解码器算子,嵌入所述循环解码的框架计算图中;导出自然语言生成模型计算图。
31.根据权利要求22至27中任一项所述的装置,还包括:
第四导出模块,用于导出自然语言处理合并计算图,所述自然语言处理合并计算图包括自然语言理解模型计算图和自然语言生成模型计算图合并的计算图;
其中,所述自然语言理解模型计算图包括文本处理加速算子和转换编码器算子;所述自然语言生成模型计算图包括转换解码器算子和解码策略算子。
32.根据权利要求22至27中任一项所述的装置,还包括:
部署模块,用于在多个设备的深度学习框架中导入自然语言理解模型计算图、自然语言生成模型计算图和合并的计算图中的至少之一。
33.一种基于深度学习框架的系统,包括:
文本处理加速算子,用于对第一文本进行文本处理,对文本处理后的内容进行并行加速;
其中,所述文本处理加速算子包括:
第一张量算子,用于获取所述第一文本对应的第一张量;其中,所述第一文本包括字符串,所述第一张量为字符串张量;
切分算子,用于对所述第一张量进行切分,得到多个切分结果;
映射算子,用于对每个所述切分结果进行标识映射;以及
第二张量算子,用于采用映射结果生成第二张量;其中,所述第二张量为整形张量;
其中,所述第二张量算子用于根据所述第一张量的每一行字符串的映射结果得到所述第二张量的对应行数值;其中,所述第一张量包括N行字符串,所述第二张量包括与所述N行字符串分别对应的N行数值,N为正整数;
其中,所述文本处理加速算子还包括:
多线程并行加速算子,用于采用多线程对所述第二张量进行并行处理。
34.根据权利要求33所述的系统,还包括:
自然语言理解模型,用于对所述文本处理加速算子加速后的内容进行自然语言理解处理。
35.根据权利要求34所述的系统,其中,所述自然语言理解模型包括所述文本处理加速算子和转换编码器算子。
36.根据权利要求35所述的系统,其中,所述转换编码器算子包括融合的注意力机制算子和融合的前向反馈算子。
37.根据权利要求33所述的系统,还包括:
自然语言生成模型,用于对自然语言理解模型处理后的内容进行自然语言生成处理。
38.根据权利要求37所述的系统,所述自然语言生成模型包括转换解码器算子和解码策略算子。
39.根据权利要求33至38中任一项所述的系统,还包括:
第一导出模块,用于导出所述文本处理加速算子的词表。
40.根据权利要求33至38中任一项所述的系统,还包括:
第二导出模块,用于将所述文本处理加速算子和转换编码器算子合并为一个算子,导出自然语言理解模型计算图。
41.根据权利要求33至38中任一项所述的系统,还包括:
第三导出模块,用于根据解码策略,生成循环解码的框架计算图;将转换解码器算子,嵌入所述循环解码的框架计算图中;导出自然语言生成模型计算图。
42.根据权利要求33至38中任一项所述的系统,还包括:
第四导出模块,用于导出自然语言处理合并计算图,所述自然语言处理合并计算图包括自然语言理解模型计算图和自然语言生成模型计算图合并的计算图;
其中,所述自然语言理解模型计算图包括文本处理加速算子和转换编码器算子;所述自然语言生成模型计算图包括转换解码器算子和解码策略算子。
43.根据权利要求33至38中任一项所述的系统,还包括:
部署模块,用于在多个设备的深度学习框架中导入自然语言理解模型计算图、自然语言生成模型计算图和合并的计算图中的至少之一。
44.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-21中任一项所述的方法。
45.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-21中任一项所述的方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111505371.1A CN114186550B (zh) | 2021-12-10 | 2021-12-10 | 文本处理方法、装置、系统、设备以及存储介质 |
US17/874,394 US20230186024A1 (en) | 2021-12-10 | 2022-07-27 | Text Processing Method, Device and Storage Medium |
KR1020220095795A KR20230088223A (ko) | 2021-12-10 | 2022-08-02 | 텍스트 처리 방법, 장치, 시스템, 기기 및 저장 매체 |
EP22188472.9A EP4195092A1 (en) | 2021-12-10 | 2022-08-03 | Text processing method and apparatus, system, device, and storage medium |
JP2022124589A JP2023086661A (ja) | 2021-12-10 | 2022-08-04 | テキスト処理方法、装置、システム、デバイス、記憶媒体、及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111505371.1A CN114186550B (zh) | 2021-12-10 | 2021-12-10 | 文本处理方法、装置、系统、设备以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114186550A CN114186550A (zh) | 2022-03-15 |
CN114186550B true CN114186550B (zh) | 2023-04-18 |
Family
ID=80604312
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111505371.1A Active CN114186550B (zh) | 2021-12-10 | 2021-12-10 | 文本处理方法、装置、系统、设备以及存储介质 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230186024A1 (zh) |
EP (1) | EP4195092A1 (zh) |
JP (1) | JP2023086661A (zh) |
KR (1) | KR20230088223A (zh) |
CN (1) | CN114186550B (zh) |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6327702B1 (en) * | 1998-12-30 | 2001-12-04 | Microsoft Corporation | Generating a compiled language program for an interpretive runtime environment |
CN107220231A (zh) * | 2016-03-22 | 2017-09-29 | 索尼公司 | 用于自然语言处理的电子设备和方法以及训练方法 |
CN109446534B (zh) * | 2018-09-21 | 2020-07-31 | 清华大学 | 机器翻译方法及装置 |
CN110287378B (zh) * | 2019-05-24 | 2021-10-19 | 中国科学院计算技术研究所 | 一种基于动态代码生成的图计算方法及系统 |
CN112861548B (zh) * | 2021-02-10 | 2023-06-23 | 百度在线网络技术(北京)有限公司 | 自然语言生成及模型的训练方法、装置、设备和存储介质 |
CN113010181B (zh) * | 2021-03-24 | 2022-05-27 | 北京百度网讯科技有限公司 | 一种深度学习框架之中算子的部署方法、装置及电子设备 |
CN113031966B (zh) * | 2021-05-20 | 2021-09-21 | 之江实验室 | 一种智能选择编译加速库的深度学习编译优化方法 |
CN113504906B (zh) * | 2021-05-31 | 2022-06-24 | 贝壳找房(北京)科技有限公司 | 代码生成方法、装置、电子设备及可读存储介质 |
CN113535144A (zh) * | 2021-06-15 | 2021-10-22 | 北京彩彻区明科技有限公司 | 自然语言编程方法、装置、设备及存储介质 |
-
2021
- 2021-12-10 CN CN202111505371.1A patent/CN114186550B/zh active Active
-
2022
- 2022-07-27 US US17/874,394 patent/US20230186024A1/en active Pending
- 2022-08-02 KR KR1020220095795A patent/KR20230088223A/ko unknown
- 2022-08-03 EP EP22188472.9A patent/EP4195092A1/en active Pending
- 2022-08-04 JP JP2022124589A patent/JP2023086661A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
CN114186550A (zh) | 2022-03-15 |
EP4195092A1 (en) | 2023-06-14 |
US20230186024A1 (en) | 2023-06-15 |
JP2023086661A (ja) | 2023-06-22 |
KR20230088223A (ko) | 2023-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110717039A (zh) | 文本分类方法和装置、电子设备、计算机可读存储介质 | |
JP2022177220A (ja) | テキスト認識モデルの訓練方法、テキスト認識方法及び装置 | |
CN111191030A (zh) | 基于分类的单句意图识别方法、装置和系统 | |
CN111241209B (zh) | 用于生成信息的方法和装置 | |
CN112507102B (zh) | 基于预训练范式模型的预测部署系统、方法、装置及介质 | |
CN113821616B (zh) | 领域自适应的槽位填充方法、装置、设备及存储介质 | |
US20220004365A1 (en) | Building pre-trained contextual embeddings for programming languages using specialized vocabulary | |
CN116661805B (zh) | 代码表示的生成方法和装置、存储介质及电子设备 | |
CN115688920A (zh) | 知识抽取方法、模型的训练方法、装置、设备和介质 | |
CN113408272A (zh) | 摘要生成模型的训练方法、装置、设备和存储介质 | |
US20220358955A1 (en) | Method for detecting voice, method for training, and electronic devices | |
CN112786108A (zh) | 分子理解模型的训练方法、装置、设备和介质 | |
CN115810068A (zh) | 一种图像描述生成方法、装置、存储介质及电子设备 | |
KR102608867B1 (ko) | 업계 텍스트를 증분하는 방법, 관련 장치 및 매체에 저장된 컴퓨터 프로그램 | |
US20230410794A1 (en) | Audio recognition method, method of training audio recognition model, and electronic device | |
CN113642324A (zh) | 文本摘要生成方法、装置、电子设备及存储介质 | |
CN114186550B (zh) | 文本处理方法、装置、系统、设备以及存储介质 | |
AU2020364386A1 (en) | Rare topic detection using hierarchical clustering | |
US20230153550A1 (en) | Machine Translation Method and Apparatus, Device and Storage Medium | |
CN114328956B (zh) | 文本信息的确定方法、装置、电子设备及存储介质 | |
CN115374782A (zh) | 文本处理方法、装置、存储介质及电子设备 | |
CN115496225A (zh) | 用于训练及应用机器学习模型的方法、系统、装置和介质 | |
CN114880520A (zh) | 视频标题生成方法、装置、电子设备和介质 | |
CN114491030A (zh) | 技能标签的抽取、候选短语分类模型的训练方法及装置 | |
CN112925889A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |