CN114861651B - 一种模型训练优化方法、计算设备、电子设备及存储介质 - Google Patents
一种模型训练优化方法、计算设备、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114861651B CN114861651B CN202210480209.7A CN202210480209A CN114861651B CN 114861651 B CN114861651 B CN 114861651B CN 202210480209 A CN202210480209 A CN 202210480209A CN 114861651 B CN114861651 B CN 114861651B
- Authority
- CN
- China
- Prior art keywords
- computing device
- word
- vector representation
- index
- segmentation
- 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/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
-
- 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
- G06N3/084—Backpropagation, e.g. using gradient descent
Abstract
本公开提供了模型训练优化方法、计算设备、电子设备及存储介质,涉及人工智能技术领域,尤其涉及深度学习技术领域。具体实现方案为:确定用于模型训练的分词的索引;根据所述分词的索引,确定所述分词的向量表示的存储位置;在所述存储位置为第二计算设备的情况下,从所述第二计算设备获取所述分词的向量表示;采用所述分词的向量表示进行模型训练。本公开能够节约了计算设备的存储空间,扩大训练模型的规模。
Description
技术领域
本公开涉及人工智能技术领域,尤其涉及深度学习技术领域。
背景技术
深度学习领域通常会使用嵌入(Embedding)层来处理信息的向量表示;例如在自然语言处理(NLP,Natural Language Processing)问题上,通常会使用Embedding层来处理词的语义表示(或称为向量表示)。在实现超大规模模型的训练时,选用的词表往往很大,导致占据计算设备的大部分存储空间,导致限制了模型的规模。
发明内容
本公开提供了一种模型训练优化方法、计算设备、电子设备及存储介质。
根据本公开的一方面,提供了一种模型训练优化方法,应用于第一计算设备,包括:
确定用于模型训练的分词的索引;
根据该分词的索引,确定该分词的向量表示的存储位置;
在该存储位置为第二计算设备的情况下,从所述第二计算设备获取所述分词的向量表示;
采用该分词的向量表示进行模型训练。
根据本公开的另一方面,提供了一种计算设备,包括:
索引确定模块,用于确定用于模型训练的分词的索引;0
存储位置确定模块,用于根据所述分词的索引,确定所述分词的向量表示的存储位置;
获取模块,用于在所述存储位置为第二计算设备的情况下,从所述第二计算设备获取所述分词的向量表示;
前向训练模块,用于采用所述分词的向量表示进行模型训练。
根据本公开的另一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与该至少一个处理器通信连接的存储器;其中,
该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行本公开中任一实施例的方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,该计算机指令用于使该计算机执行根据本公开中任一实施例的方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现根据本公开中任一实施例的方法。
本公开实施例提出的模型训练优化方法,在计算设备根据分词的索引确定分词的向量表示时,如果该分词的向量表示存储在其他的计算设备上,则可以从该其他的计算设备获取该分词的向量表示;这样,单个计算设备无需保存所有分词的向量表示(也就是整个词表),从而节约了计算设备的存储空间,提升了训练的模型的规模。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是一种并行训练方式示意图;
图2是根据本公开的一种模型训练优化方法200的实现流程图;
图3是根据本公开一实施方式中划分词表和查询分词的向量表示的实现方式示意图;
图4是根据本公开的一种模型训练过程示意图;
图5是根据本公开的另一种模型训练过程示意图;
图6是根据本公开的一种计算设备600的结构示意图;
图7是根据本公开的一种计算设备700的结构示意图;
图8是用来实现本公开实施例的模型训练优化方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
深度学习领域通常会使用Embedding层来处理信息的向量表示。以NLP模型为例,NLP模型通常会使用Embedding层来对输入句子的分词(Token)进行向量化转换,转换成分词对应的向量表示(或称为分词的Embedding)。在对分词进行向量化转换时,需要采用分词的索引查询预先保存的词表,从而确定该分词的向量表示。词表的维度是[vocabulary_size,hidden_size],其中vocabulary_size为词表中的词个数,hidden_size为隐藏层表示大小。在大模型场景下,词表中词的个数和隐藏层表示往往非常大。举例来说,针对一般的NLP大模型训练任务,词表中词的个数vocabulary_size=128k,隐藏层表示大小hidden_size=4096;在这样的配置下,总词表就有0.5B个参数。这种情况下,训练中如果采用混合精度训练(如Fp16训练)方式、并采用自适应矩估计(Adam,Adaptive Moment Estimation)优化器进行训练,那么对于Embedding层的训练会占据计算设备大量的存储空间,导致严重限制模型规模。通常,可以采用图形处理单元(GPU,Graphics Processing Unit)作为用于模型训练的计算设备,用于模型训练的GPU可以简称为卡(或rank)。在本公开文件的内容中,GPU、卡、rank均指计算设备。
为了提高模型训练速度,目前出现了一种并行训练方式。图1是一种并行训练方式示意图,在图1所示的示例中,采用两个计算设备(如rank0和rank1)并行训练神经网络,每个计算设备中均保存完整的词表。每个计算设备对输入的句子进行分词处理,得到多个分词(Token),每个分词对应一个索引(idx)。如图1所示,rank0对句子进行分词处理之后得到两个分词,两个分词的索引分别为3和7;之后,rank0查询本地保存的词表,得到idx=3的分词的向量表示、以及idx=7的分词的向量表示;rank1对句子进行分词处理之后得到两个分词,两个分词的索引分别为4和8;之后,rank1查询本地保存的词表,得到idx=4的分词的向量表示、以及idx=8的分词的向量表示;之后,rank0和rank1分别将查询得到的向量表示输入至神经网络,进行后续的神经模型训练过程。由上述过程可见,虽然采用多个计算设备并行处理分词的向量化转化,能够从一定程度上提升模型训练的速度;但是,由于各个计算设备都需要保存完整的词表,该词表占用了计算设备大量的存储空间,导致限制了模型的规模。
针对数据并行训练方式下词表数据量太大,导致存储成为了训练瓶颈的问题,本公开实施例提出一种模型训练优化方法,图2是根据本公开的一种模型训练优化方法200的实现流程图,包括:
S210:确定用于模型训练的分词的索引;
S220:根据该分词的索引,确定该分词的向量表示的存储位置;
S230:在该存储位置为第二计算设备的情况下,从该第二计算设备获取分词的向量表示;
S240:采用该分词的向量表示进行模型训练。
需要说明的是,上述第一计算设备和第二计算设备中的“第一”“第二”仅用于区分不同的计算设备,并不用于表示优先级、重要性或顺序等;第一计算设备和第二计算设备的功能类似,均用于根据分词的索引查找分词的向量表示,并将分词的向量表示输入至神经网络模型,如深度神经网络(Deep Neural Networks,DNN),对神经网络模型进行训练。上述示例中,第二计算设备可以指除第一计算设备以外的其他计算设备。
本公开实施例通过确定存储分词的向量表示的第二计算设备,并从该第二计算设备获取该分词的向量表示,第一计算设备中无需保存整个词表,能够节约第一计算设备的存储空间,并且在节约存储空间的同时,不影响对分词的向量化转换。
在一些实现方式中,该第一计算设备和至少一个该第二计算设备为预先设置的用于并行训练所述模型的计算设备,第一计算设备和至少一个第二计算设备存储不同分词的向量表示,第一计算设备和至少一个第二计算设备中存储的向量表示构成所述模型训练所需的词表。
也就是说,将对分词向量化处理所需的词表进行划分,每个计算设备(第一计算设备或第二计算设备)保存一部分词表,即保存多个分词的向量表示;所有计算设备保存的内容构成整个词表。由于对词表做了划分并分别保存,能够节约计算设备中的存储空间,避免对模型的规模造成限制。
例如,假设数据并行训练的维度为N,即计算设备的数量(卡数)为N,总的词表大小(如Embedding参数大小)是[vocabulary_size,hidden_size];其中vocabulary_size表示词表中词的个数,hidden_size表示隐藏层大小。将词表(Embedding参数)切分为N个部分,每个部分分别保存在一个计算设备上,这样,每个计算设备保存有vocabulary_size/N个分词的向量表示,即每个计算设备的参数大小为[vocabulary_size/N,hidden_size]。如果vocabulary_size无法被N整除,也就是词表无法被均匀切分成N个部分;那么,可以将词表进行扩充,在词表中增加一个或多个向量表示,这些向量表示不对应有意义的分词,仅用于扩充词表。在一种实现方式中,扩充后的词表中包含的向量表示的个数如下:
这样,每个计算设备上存储K个分词的向量表示,其中K=S/N。例如,参与模型训练的计算设备共N个,各个计算设备的标识分别为0、1、2……N-1;词表中的分词的向量表示共S个,各个分词的索引分别为0、1、2……S-1。在对词表进行划分并分别保存时,计算设备0中保存分词0、分词1、分词2……分词K-1的向量表示,计算设备1中保存分词K之后的K个分词的向量表示;以此类推。
在一些实施方式中,第一计算设备和各个第二计算设备分别存储K个分词的向量表示,所述K为正整数;利用上述存储规律,第一计算设备根据分词的索引,确定所述分词的向量表示的存储位置的方式可以包括:利用分词的索引及所述K,确定分词的向量表示的存储位置。
例如,确定分词的向量所存储的计算设备的标识为:其中/>表示下取整,idx表示分词的索引。可见,利用分词的索引和每个计算设备存储的向量表示的个数,能够通过简便的数学运算确定出分词的向量表示的存储位置,便于快速提取分词的向量表示。
例如,计算设备M的输入数据(即输入计算设备M的句子被分词处理之后得到的分词)的维度为[B,1],用[M_1,M_2,..,M_B]表示,B为M的输入数据的大小(即batch size大小),其中M_1、M_2、...、M_B表示B个分词的索引。对于各个输入数据M_i,计算设备M计算其中1<=i<=B,根据/>确定保存分词M_i的向量表示的存储设备,如果为存储设备N,则计算设备M从计算设备N获取分词M_i的向量表示;如果为存储设备M,则计算设备M从本地查找分词M_i的向量表示。
在一些实施方式中,第一计算设备从第二计算设备获取分词的向量表示,包括:
第一计算设备调用第一函数向第二计算设备发送所述分词的索引;
第一计算设备调用第二函数从第二计算设备接收所述分词的向量表示;其中,所述分词的向量表示由所述第二计算设备利用所述分词的索引查询得到。
其中,上述第一函数和第二函数可以采用GPU通信的通用函数,例如第一函数可以采用发送函数(send函数)、第二函数采用接收函数(recv函数)。采用前述通用函数,能够方便地实现不同计算设备之间数据的传输,提高数据传输的速度。
在一些示例中,在存储位置为第一计算设备的情况下,第一计算设备利用所述分词的索引查询所述分词的向量表示,并采用查询到的分词的向量表示进行模型训练。前述方式针对的是第一计算设备已存储分词的向量表示的情况,在这种情况下,第一计算设备可以采用分词的索引直接查询本地保存的该分词的向量表示,并进行后续的模型训练。
以下举一个具体的示例,说明对词表的划分、以及在模型训练时查询分词的向量表示的具体方式。
图3是根据本公开一实施方式中划分词表和查询分词的向量表示的实现方式示意图。如图3所示,数据并行维度为2,采用2个计算设备进行并行训练,2个计算设备的标识分别为0和1,如图中用rank0和rank1表示。对总的词表[10,hidden_size]进行切分,每个计算设备保存5个分词的向量表示(embedding表示),即,rank0中保存索引为0~4的分词的向量表示,rank1中保存索引为5~9的分词的向量表示。
如图3所示,rank0和rank1的输入分别是[3,7]和[4,8],即,rank0被输入分词索引3和分词索引7。
rank0通过计算确定出分词3对应的向量表示的存储位置为rank0,即分词3对应的向量表示保存在本地,则可以直接从本地查找分词3对应的向量表示;rank0通过计算/>确定出分词7对应的向量表示的存储位置为rank1,即分词7对应的向量表示保存在rank1中,则可以将该分词7的索引发送至rank1。rank1接收到分词7的索引后,采用该索引查找分词7对应的向量表示,并将该向量表示反馈至rank0;rank0接收rank1发送的分词7对应的向量表示,并最终将分词3和分词7的向量表示输出至后续的神经网络模型。
rank1也可以采用同样的方式查找分词的分词向量,即,计算出分词4对应的向量表示保存在rank0中,则将分词4的索引发送至rank0,并接收rank0返回的分词4对应的向量表示;并且,计算出分词8对应的向量表示保存在本地,则直接从本地查找分词8对应的向量表示。
通过上述过程,rank0和rank1可以分别查询各自保存的词表内容,并在查询到分词的向量表示之后,将查询结果发送回原卡。
由上述介绍可见,本公开提出的模型训练优化方法还可以包括:
第一计算设备调用第二函数从所述第二计算设备接收分词的索引;
利用所述分词的索引进行查询,得到所述分词的向量表示;
调用第一函数将所述分词的向量表示发送至所述第二计算设备。
例如,上述第一函数为发送函数(send函数)、第二函数为接收函数(recv函数)。第一计算设备为其他的计算设备(如第二计算设备)提供向量表示的查询服务。
以下介绍一种具体的模型训练过程示例。图4是根据本公开的一种模型训练过程示意图,如图4所示,rank0和rank1对NLP模型进行并行训练,对其中的Embedding的参数进行切分,分别放置在不同卡上,有效降低参数存储。各个计算单元的具体步骤如下:
对输入的句子进行转换,得到对应每个分词(token)的索引。
按照本公开的实现方案,对于不属于本计算单元的分词的索引,通过send/recv通信发送到对应计算设备;接收对应计算设备返回的该分词的向量表示;对于属于本计算单元的分词的索引,直接查找本地保存的词表,确定该分词的向量表示。
各个计算单元查找或接收到的分词的向量表示作为后续DNN网络的输入数据,再对DNN网络的输入数据进行降维处理,如扁平化(flatten)处理等相关处理,将处理之后的数据发送至DNN模型,进行后的模型训练过程。
对于反向传播训练方式,采用与上述过程类似的方式进行数据的转发,例如,在一些实施方式中,本公开实施例提出的模型训练优化方法还包括:
接收反向梯度数据;
根据所述反向梯度数据对应的分词的索引,确定所述反向梯度数据对应的计算设备;
在所述反向梯度数据对应的计算设备为所述第二计算设备的情况下,将所述反向梯度数据发送至所述第二计算设备。
以图5为例,图5是根据本公开的另一种模型训练过程示意图,计算设备(如图5中的rank0或rank1)收到DNN反向网络输出的反向梯度数据(如图5中的Output Grad),根据该反向梯度数据对应的分词的索引确定对应的计算设备,如果对应的设备为其他计算设备(如上述第二计算设备),也就是该数据不属于本设备上的Output Grad,则通过send/recv通信方式将该梯度数据发送回对应设备。接着,各个计算设备分别对自身的反向梯度数据进行Embedding反向计算,得到相应的Embedding参数的梯度嵌入参数梯度(EmbeddingParam Grad)和输入梯度(Input Grad)等,并利用前述参数继续后续的反向梯度训练过程。
可见,针对反向梯度训练方式,本公开实施例能够利用反向梯度数据所对应的分词的索引、找到该反向梯度数据所对应的计算设备,并传输至该对应的计算设备上,以用于后续的反向梯度训练过程。
本公开实施例还提出一种计算设备,图6是根据本公开的一种计算设备600的结构示意图,包括:
索引确定模块610,用于确定用于模型训练的分词的索引;
存储位置确定模块620,用于根据所述分词的索引,确定所述分词的向量表示的存储位置;
获取模块630,用于在所述存储位置为第二计算设备的情况下,从所述第二计算设备获取所述分词的向量表示;
前向训练模块640,用于采用所述分词的向量表示进行模型训练。
在一些实施方式中,所述计算设备和至少一个所述第二计算设备为预先设置的用于并行训练所述模型的计算设备,所述计算设备和所述至少一个第二计算设备存储不同分词的向量表示,所述计算设备和所述至少一个第二计算设备中存储的向量表示构成所述模型训练所需的词表。
在一些实施方式中,计算设备和各个所述第二计算设备分别存储K个分词的向量表示,所述K为正整数;
在一些实施方式中,存储位置确定模块620用于,利用所述分词的索引及所述K,确定所述分词的向量表示的存储位置。
在一些实施方式中,获取模块630用于:
调用第一函数向所述第二计算设备发送所述分词的索引;
调用第二函数从所述第二计算设备接收所述分词的向量表示;其中,所述分词的向量表示由所述第二计算设备利用所述分词的索引查询得到。
在一些实施方式中,获取模块630还用于,在所述存储位置为所述第一计算设备的情况下,利用所述分词的索引查询所述分词的向量表示;
所述前向训练模块640还用于,采用查询到的分词的向量表示进行模型训练。
图7是根据本公开的一种计算设备700的结构示意图,如图7所示,该计算设备还可以包括:
协同处理模块750,用于调用第二函数从所述第二计算设备接收分词的索引,利用所述分词的索引进行查询,得到所述分词的向量表示,调用第一函数将所述分词的向量表示发送至所述第二计算设备。
在一些实施方式中,该计算设备还可以包括:
反向训练模块760,用于接收反向梯度数据;根据所述反向梯度数据对应的分词的索引,确定所述反向梯度数据对应的计算设备;在所述反向梯度数据对应的计算设备为所述第二计算设备的情况下,将所述反向梯度数据发送至所述第二计算设备。
在一些实施方式中,计算设备600、计算设备700或第二计算设备为图形处理单元(GPU)。
本公开实施例的装置的各模块、子模块的具体功能和示例的描述,可以参见上述方法实施例中对应步骤的相关描述,在此不再赘述。
本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图8示出了可以用来实施本公开的实施例的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图8所示,设备800包括计算单元801,其可以根据存储在只读存储器(ROM)802中的计算机程序或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序,来执行各种适当的动作和处理。在RAM 803中,还可存储设备800操作所需的各种程序和数据。计算单元801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如模型训练优化方法。例如,在一些实施例中,模型训练优化方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序加载到RAM 803并由计算单元801执行时,可以执行上文描述的模型训练优化方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行模型训练优化方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入、或者触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (18)
1.一种模型训练优化方法,应用于第一计算设备,包括:
确定用于模型训练的分词的索引;
根据所述分词的索引,确定所述分词的向量表示的存储位置;
在所述存储位置为第二计算设备的情况下,从所述第二计算设备获取所述分词的向量表示;
采用所述分词的向量表示进行模型训练;
其中,所述第一计算设备和至少一个所述第二计算设备为预先设置的用于并行训练所述模型的计算设备;
所述第一计算设备和至少一个所述第二计算设备中每个计算设备均存储用于所述模型训练所需的词表的部分词表,所述第一计算设备和至少一个所述第二计算设备中的所有计算设备保存的内容构成整个词表。
2.根据权利要求1所述的方法,所述第一计算设备和所述至少一个第二计算设备存储不同分词的向量表示。
3.根据权利要求1所述的方法,其中,所述第一计算设备和各个所述第二计算设备分别存储K个分词的向量表示,所述K为正整数;
所述根据所述分词的索引,确定所述分词的向量表示的存储位置,包括:利用所述分词的索引及所述K,确定所述分词的向量表示的存储位置。
4.根据权利要求1所述的方法,其中,所述从所述第二计算设备获取所述分词的向量表示,包括:
调用第一函数向所述第二计算设备发送所述分词的索引;
调用第二函数从所述第二计算设备接收所述分词的向量表示;其中,所述分词的向量表示由所述第二计算设备利用所述分词的索引查询得到。
5.根据权利要求1所述的方法,还包括:
在所述存储位置为所述第一计算设备的情况下,所述第一计算设备利用所述分词的索引查询所述分词的向量表示;
采用查询到的分词的向量表示进行模型训练。
6.根据权利要求1所述的方法,还包括:
调用第二函数从所述第二计算设备接收分词的索引;
利用所述分词的索引进行查询,得到所述分词的向量表示;
调用第一函数将所述分词的向量表示发送至所述第二计算设备。
7.根据权利要求1所述的方法,还包括:
接收反向梯度数据;
根据所述反向梯度数据对应的分词的索引,确定所述反向梯度数据对应的计算设备;
在所述反向梯度数据对应的计算设备为所述第二计算设备的情况下,将所述反向梯度数据发送至所述第二计算设备。
8.根据权利要求1-7中任一所述的方法,其中,
所述第一计算设备或所述第二计算设备为图形处理单元GPU。
9.一种第一计算设备,包括:
索引确定模块,用于确定用于模型训练的分词的索引;
存储位置确定模块,用于根据所述分词的索引,确定所述分词的向量表示的存储位置;
获取模块,用于在所述存储位置为第二计算设备的情况下,从所述第二计算设备获取所述分词的向量表示;
前向训练模块,用于采用所述分词的向量表示进行模型训练;
其中,所述第一计算设备和至少一个所述第二计算设备为预先设置的用于并行训练所述模型的计算设备;
所述第一计算设备和至少一个所述第二计算设备中每个计算设备均存储用于所述模型训练所需的词表的部分词表,所述第一计算设备和至少一个所述第二计算设备中的所有计算设备保存的内容构成整个词表。
10.根据权利要求9所述的第一计算设备,其中,所述第一计算设备和所述至少一个第二计算设备存储不同分词的向量表示。
11.根据权利要求9所述的第一计算设备,其中,所述第一计算设备和各个所述第二计算设备分别存储K个分词的向量表示,所述K为正整数;
所述存储位置确定模块用于,利用所述分词的索引及所述K,确定所述分词的向量表示的存储位置。
12.根据权利要求9所述的第一计算设备,其中,所述获取模块用于:
调用第一函数向所述第二计算设备发送所述分词的索引;
调用第二函数从所述第二计算设备接收所述分词的向量表示;其中,所述分词的向量表示由所述第二计算设备利用所述分词的索引查询得到。
13.根据权利要求9所述的第一计算设备,其中,所述获取模块还用于,在所述存储位置为所述第一计算设备的情况下,利用所述分词的索引查询所述分词的向量表示;
所述前向训练模块还用于,采用查询到的分词的向量表示进行模型训练。
14.根据权利要求9所述的第一计算设备,还包括:
协同处理模块,用于调用第二函数从所述第二计算设备接收分词的索引,利用所述分词的索引进行查询,得到所述分词的向量表示,调用第一函数将所述分词的向量表示发送至所述第二计算设备。
15.根据权利要求9所述的第一计算设备,还包括:
反向训练模块,用于接收反向梯度数据;根据所述反向梯度数据对应的分词的索引,确定所述反向梯度数据对应的计算设备;在所述反向梯度数据对应的计算设备为所述第二计算设备的情况下,将所述反向梯度数据发送至所述第二计算设备。
16.根据权利要求9-15中任一所述的第一计算设备,其中,
所述第一计算设备或所述第二计算设备为图形处理单元GPU。
17.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-8中任一项所述的方法。
18.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210480209.7A CN114861651B (zh) | 2022-05-05 | 2022-05-05 | 一种模型训练优化方法、计算设备、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210480209.7A CN114861651B (zh) | 2022-05-05 | 2022-05-05 | 一种模型训练优化方法、计算设备、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114861651A CN114861651A (zh) | 2022-08-05 |
CN114861651B true CN114861651B (zh) | 2023-05-30 |
Family
ID=82636091
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210480209.7A Active CN114861651B (zh) | 2022-05-05 | 2022-05-05 | 一种模型训练优化方法、计算设备、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114861651B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113408299A (zh) * | 2021-06-30 | 2021-09-17 | 北京百度网讯科技有限公司 | 语义表示模型的训练方法、装置、设备和存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1211610A1 (en) * | 2000-11-29 | 2002-06-05 | Lafayette Software Inc. | Methods of organising data and processing queries in a database system |
CN107943791A (zh) * | 2017-11-24 | 2018-04-20 | 北京奇虎科技有限公司 | 一种垃圾短信的识别方法、装置和移动终端 |
CN111209740B (zh) * | 2019-12-31 | 2023-08-15 | 中移(杭州)信息技术有限公司 | 文本模型训练方法、文本纠错方法、电子设备及存储介质 |
CN112528650B (zh) * | 2020-12-18 | 2024-04-02 | 恩亿科(北京)数据科技有限公司 | 一种Bert模型预训练方法、系统及计算机设备 |
CN113191136B (zh) * | 2021-04-30 | 2024-03-01 | 北京百度网讯科技有限公司 | 数据处理方法及装置 |
CN113220836B (zh) * | 2021-05-08 | 2024-04-09 | 北京百度网讯科技有限公司 | 序列标注模型的训练方法、装置、电子设备和存储介质 |
CN114003712A (zh) * | 2021-10-29 | 2022-02-01 | 平安国际智慧城市科技股份有限公司 | 基于人工智能的文档搜索方法、装置、设备及存储介质 |
-
2022
- 2022-05-05 CN CN202210480209.7A patent/CN114861651B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113408299A (zh) * | 2021-06-30 | 2021-09-17 | 北京百度网讯科技有限公司 | 语义表示模型的训练方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114861651A (zh) | 2022-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112561078B (zh) | 分布式的模型训练方法及相关装置 | |
CN114549874B (zh) | 多目标图文匹配模型的训练方法、图文检索方法及装置 | |
CN113326420B (zh) | 问题检索方法、装置、电子设备和介质 | |
CN111382270A (zh) | 基于文本分类器的意图识别方法、装置、设备及存储介质 | |
CN112925900B (zh) | 搜索信息处理方法、装置、设备及存储介质 | |
JP2023541742A (ja) | ソートモデルのトレーニング方法及び装置、電子機器、コンピュータ可読記憶媒体、コンピュータプログラム | |
CN112528641A (zh) | 建立信息抽取模型的方法、装置、电子设备和可读存储介质 | |
CN116204672A (zh) | 图像识别、模型训练方法、装置、设备及存储介质 | |
CN112506359B (zh) | 输入法中候选长句的提供方法、装置及电子设备 | |
CN113033194B (zh) | 语义表示图模型的训练方法、装置、设备和存储介质 | |
CN114494747A (zh) | 模型的训练方法、图像处理方法、装置、电子设备及介质 | |
CN113157877A (zh) | 多语义识别方法、装置、设备和介质 | |
CN114861651B (zh) | 一种模型训练优化方法、计算设备、电子设备及存储介质 | |
CN115169489B (zh) | 数据检索方法、装置、设备以及存储介质 | |
CN114742035B (zh) | 基于注意力机制优化的文本处理方法、网络模型训练方法 | |
CN113220840B (zh) | 文本处理方法、装置、设备以及存储介质 | |
CN114490969B (zh) | 基于表格的问答方法、装置以及电子设备 | |
CN114238611B (zh) | 用于输出信息的方法、装置、设备以及存储介质 | |
CN113807397B (zh) | 语义表示模型的训练方法、装置、设备和存储介质 | |
CN113239054B (zh) | 信息生成方法及相关装置 | |
CN114662688A (zh) | 模型的训练方法、数据处理方法、装置、电子设备及介质 | |
CN111858917A (zh) | 文本分类方法和装置 | |
CN113033196B (zh) | 分词方法、装置、设备及存储介质 | |
CN113312521B (zh) | 内容检索方法、装置、电子设备和介质 | |
CN116127948B (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 |