CN115640611A - 一种自然语言处理模型的更新方法及相关设备 - Google Patents
一种自然语言处理模型的更新方法及相关设备 Download PDFInfo
- Publication number
- CN115640611A CN115640611A CN202211488689.8A CN202211488689A CN115640611A CN 115640611 A CN115640611 A CN 115640611A CN 202211488689 A CN202211488689 A CN 202211488689A CN 115640611 A CN115640611 A CN 115640611A
- Authority
- CN
- China
- Prior art keywords
- noise
- units
- minimum
- model
- 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.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Image Processing (AREA)
Abstract
本申请提供了一种自然语言处理模型的更新方法及相关设备。根据该方法,NLP模型可以部分部署在端侧设备上,部分部署在云侧设备上。端侧设备可以对文本信息进行分词处理,得到若干token,再基于该部署在端侧设备上的NLP模型对该若干token进行特征抽取以及加噪处理,将加噪处理后的表示向量发送给云侧设备。云侧设备可以基于该加噪处理后的表示向量更新部分部署在云侧设备上的NLP模型。这种方式可以实现在使用NLP模型的情况下基于用户数据对NLP模型进行更新,还可以降低用户数据由端侧上传至云侧的隐私泄露风险。并且,云侧设备可以基于大量端侧设备发送的数据来对NLP模型进行更新,可以得到效果更好的NLP模型。
Description
技术领域
本申请涉及终端技术领域,尤其涉及一种自然语言处理模型的更新方法及相关设备。
背景技术
在如今这个信息时代,自然语言处理(Natural Language Processing,NLP)正在成为人们生活中不可或缺的一部分。NLP的工作原理大概包括:(1)接收自然语言;(2)转译自然语言;(3)分析自然语言并输出结果。NLP可以让计算机“理解”自然语言,从而在语言方面实现人与计算机的交互,进一步的,使得利用计算机的数据处理量大、计算速度快、逻辑性强等优点来辅助人们更方便地获取信息变成可能。
一般来说,NLP模型需要经过训练才能保证一定的效果。但是,训练后得到的NLP模型可能还是无法满足用户需求。这种情况下,NLP模型需要进行更新。若NLP模型全部部署在端侧,NLP模型只能基于有限的用户数据进行更新,并且,端侧的计算能力非常有限,难以在用户正常使用其他功能的情况下对NLP模型进行更新。若NLP模型部署在端侧和云侧,部署在端侧的部分NLP模型需要将数据上传至云侧,使得部署在云侧的部分NLP模型基于上传数据对NLP模型进行更新。但是,端侧上传至云侧的数据通常包含隐私信息。该上传过程存在用户隐私信息泄露的风险。
因此,如何对NLP模型进行更新是目前亟待解决的问题。
发明内容
本申请提供了一种自然语言处理模型的更新方法及相关设备。根据该方法,NLP模型可以部分部署在端侧设备上,部分部署在云侧设备上。端侧设备可以对文本信息进行分词处理,得到若干token,再基于该部署在端侧设备上的NLP模型对该若干token进行特征抽取以及加噪处理,将加噪处理后的表示向量发送给云侧设备。云侧设备可以基于该加噪处理后的表示向量更新部分部署在云侧设备上的NLP模型。这种方式可以实现在用户使用NLP模型的情况下基于用户数据对NLP模型进行更新,还可以降低用户数据由端侧上传至云侧的隐私泄露风险。并且,通过这种方式,云侧设备可以基于大量端侧设备发送的数据来对NLP模型进行更新,可以得到效果更好的NLP模型。
第一方面,本申请提供了一种自然语言处理模型的更新方法。根据该方法,第一NLP模型中的第一部分模型可以部署在第一设备中,第一NLP模型中的第二部分模型可以部署在第二设备中。第一设备为端侧设备,第二设备为云侧设备。根据该方法,第一设备可以对文本信息进行分词处理,得到O个最小切分单元,还可以通过第一部分模型确定该O个最小切分单元对应的隐私信息类别,然后基于该O个最小切分单元对应的隐私信息类别和不同隐私信息类别对应的加噪强度,通过第一部分模型对该O个最小切分单元进行加噪处理和特征提取,得到加噪之后O个最小切分单元对应的表示向量,并将加噪之后O个最小切分单元对应的表示向量发送给第二设备。其中,加噪之后O个最小切分单元对应的表示向量可以用于更新第二部分模型。O为正整数。
在本申请提供的方案中,第一NLP模型可以部分部署在端侧,部分部署在云侧。具体地,第一NLP模型可以部分部署在第一设备中,部分部署在第二设备中。第一设备可以基于分词处理后所得的O个最小切分单元对应的隐私信息类别和不同隐私信息类别对应的加噪强度,对该O个最小切分单元进行加噪处理和特征提取,从而得到加噪之后O个最小切分单元对应的表示向量,并将加噪之后O个最小切分单元对应的表示向量发送给第二设备。由于从端侧发送至云侧的用户数据是经过加噪处理后所得的表示向量,一旦隐私攻击者在云侧获取该表示向量也无法通过还原模型得到该表示向量,可以降低隐私泄露的风险。并且,第二设备可以基于第一设备发送的用户数据(例如,加噪处理后所得的表示向量)来更新第一NLP模型的第二部分模型,这样,在用户使用第一NLP模型的同时,可以实现利用云侧强大的计算能力来基于大量端侧设备的用户数据进行更新第一NLP模型。
在本申请的一些实施例中,第一NLP模型可以为NLP模型100。第一部分模型可以为处理单元101。第二部分模型可以为解码器_1。这一部分内容可以参见下文图7A-图7C的相关描述,在此不展开说明。
在本申请的一些实施例中,第一NLP模型可以为NLP模型200。第一部分模型可以为处理单元201。第二部分模型可以为解码器_2。这一部分内容可以参见下文图8A-图8C的相关描述,在此不展开说明。
基于上述内容,第一设备可以通过第一部分模型中的隐私信息分类模块确定O个最小切分单元对应的隐私信息类别,还可以通过第一部分模型中的加噪模块和编码器对O个最小切分单元进行加噪处理和特征提取。
可理解,第二部分模型可以基于加噪之后的O个最小切分单元对应的表示向量实现第一NLP模型的下游任务,从而得到预测结果。下游任务的相关描述可以参见下文,在此不展开说明。
可理解,最小切分单元指的是token。文本信息可以为R,这样,O个最小切分单元可以为R_token,O个最小切分单元对应的隐私信息类别可以为pri。在一种可能的实现方式中,加噪之后O个最小切分单元对应的表示向量可以为H1。在又一种可能的实现方式中,加噪之后O个最小切分单元对应的表示向量可以为H2。token、R_token、pri、H1和H2的相关描述可以参见下文,在此不展开说明。
在本申请的一些实施例中,第一设备可以对文本信息进行分词处理,得到O个最小切分单元之后,再将该O个最小切分单元输入至第一部分模型,并由第一部分模型进行后续处理,最终得到加噪之后O个最小切分单元对应的表示向量。
在本申请的一些实施例中,第一设备可以将文本信息输入至第一NLP模型中,并由第一NLP模型对该文本信息进行预处理,即分词处理,从而得到O个最小切分单元。第一NLP模型中的第一部分模型可以再对该O个最小切分单元进行后续处理,最终得到加噪之后O个最小切分单元对应的表示向量。
可理解,加噪处理和加噪强度的相关描述可以参见下文,在此不展开说明。
结合第一方面,在一种可能的实现方式中,第一设备基于O个最小切分单元对应的隐私信息类别和不同隐私信息类别对应的加噪强度,通过第一部分模型对O个最小切分单元进行加噪处理和特征提取,得到加噪之后O个最小切分单元对应的表示向量,具体可以包括:第一设备可以通过第一部分模型对O个最小切分单元进行特征提取,得到该O个最小切分单元对应的初始表示向量,还可以基于该O个最小切分单元对应的隐私信息类别和不同隐私信息类别对应的加噪强度,通过第一部分模型确定该O个最小切分单元中的待加噪切分单元,然后还可以通过第一部分模型对待加噪切分单元对应的初始表示向量进行加噪处理,得到加噪之后O个最小切分单元对应的表示向量。
在本申请提供的方案中,第一设备可以基于O个最小切分单元对应的隐私信息类别和不同隐私信息类别对应的加噪强度通过第一部分模型确定待加噪切分单元,再对该待加噪切分单元对应的初始表示向量进行加噪处理,从而得到加噪之后O个最小切分单元对应的表示向量。这样,第一设备可以针对性的对隐私信息进行加噪处理,可以降低后续将用户数据上传至云侧的隐私泄露风险。
可理解,待加噪切分单元指的是待加噪token。O个最小切分单元对应的初始表示向量可以为h。在这种情况下,加噪之后O个最小切分单元对应的表示向量为H1。
根据上文,第一NLP模型可以为NLP模型100。第一部分模型可以为处理单元101。第二部分模型可以为解码器_1。具体地,第一设备可以通过编码器对O个最小切分单元进行特征提取,得到该O个最小切分单元对应的初始表示向量,还可以基于该O个最小切分单元对应的隐私信息类别和不同隐私信息类别对应的加噪强度,通过加噪模块确定该O个最小切分单元中的待加噪切分单元,然后通过加噪模块对待加噪切分单元对应的初始表示向量进行加噪处理,得到加噪之后O个最小切分单元对应的表示向量。
结合第一方面,在一种可能的实现方式中,第一设备基于O个最小切分单元对应的隐私信息类别和不同隐私信息类别对应的加噪强度,通过第一部分模型对O个最小切分单元进行加噪处理和特征提取,得到加噪之后O个最小切分单元对应的表示向量,具体可以包括:第一设备可以基于O个最小切分单元对应的隐私信息类别和不同隐私信息类别对应的加噪强度,通过第一部分模型确定该O个最小切分单元中的待加噪切分单元,然后可以通过第一部分模型对待加噪切分单元进行加噪处理,得到加噪之后的O个最小切分单元,再通过第一部分模型对该加噪之后的O个最小切分单元进行特征提取,得到加噪之后O个最小切分单元对应的表示向量。
在本申请提供的方案中,第一设备可以基于O个最小切分单元对应的隐私信息类别和不同隐私信息类别对应的加噪强度通过第一部分模型确定待加噪切分单元,并对该待加噪切分单元进行加噪处理,再对加噪处理后的O个最小切分单元进行特征提取,从而得到加噪之后O个最小切分单元对应的表示向量。这样,第一设备可以针对性的对隐私信息进行加噪处理,可以降低后续将用户数据上传至云侧的隐私泄露风险。
可理解,待加噪切分单元指的是待加噪token。加噪之后的O个最小切分单元可以为R_TOKEN。在这种情况下,加噪之后O个最小切分单元对应的表示向量为H2。
根据上文,第一NLP模型可以为NLP模型200。第一部分模型可以为处理单元201。第二部分模型可以为解码器_2。具体地,第一设备可以基于O个最小切分单元对应的隐私信息类别和不同隐私信息类别对应的加噪强度,通过加噪模块确定该O个最小切分单元中的待加噪切分单元,然后可以通过加噪模块对待加噪切分单元进行加噪处理,得到加噪之后的O个最小切分单元,再通过编码器对该加噪之后的O个最小切分单元进行特征提取,得到加噪之后O个最小切分单元对应的表示向量。
结合第一方面,在一种可能的实现方式中,第一设备通过第一部分模型对待加噪切分单元对应的初始表示向量进行加噪处理,得到加噪之后O个最小切分单元对应的表示向量,具体可以包括:第一设备可以通过第一部分模型将待加噪切分单元对应的初始表示向量替换为第一向量,得到待加噪切分单元对应的已加噪表示向量,然后可以通过第一部分模型确定加噪之后O个最小切分单元对应的表示向量。其中,该加噪之后O个最小切分单元对应的表示向量可以包括未加噪切分单元对应的初始表示向量和该待加噪切分单元对应的已加噪表示向量。未加噪切分单元为O个最小切分单元中除待加噪切分单元之外的最小切分单元。
在本申请提供的方案中,第一设备可以通过将待加噪切分单元对应的初始表示向量替换为固定向量(即第一向量)来实现对O个最小切分单元对应的初始表示向量的加噪。可理解,替换成固定向量可以混淆真正的隐私信息,降低了后续将用户数据上传至云侧的隐私泄露风险。
可理解,第一向量可以为h_mask。在这种情况下,待加噪切分单元对应的已加噪表示向量也可以理解为h_mask。例如,“明”对应的初始表示向量为h_明,h_明加噪后所得的已加噪向量为H_明。而H_明=h_mask。h_mask的相关描述可以参见下文,在此不展开说明。
示例性的,O个最小切分单元可以为:“明”、“天”、“去”、“华”、“清”、“池”和“玩”。待加噪切分单元可以为:“明”、“华”、“池”和“玩”。而“天”、“去”和“清”则为未加噪切分单元。O个最小切分单元对应的初始表示向量可以为:h=[h_明,h_天,h_去,h_华,h_清,h_池,h_玩]。加噪之后O个最小切分单元对应的表示向量可以为:H1=[H_明,h_天,h_去,H_华,h_清,H_池,H_玩]。其中,H_明=H_华=H_池=H_玩=h_mask。
结合第一方面,在一种可能的实现方式中,第一设备通过第一部分模型对待加噪切分单元对应的初始表示向量进行加噪处理,得到加噪之后O个最小切分单元对应的表示向量,具体可以包括:第一设备可以通过第一部分模型将待加噪切分单元对应的初始表示向量中的U1个特征分别替换为U1个数值,得到待加噪切分单元对应的已加噪表示向量,然后可以通过第一部分模型确定加噪之后O个最小切分单元对应的表示向量。其中,该加噪之后O个最小切分单元对应的表示向量可以包括未加噪切分单元对应的初始表示向量和该待加噪切分单元对应的已加噪表示向量。未加噪切分单元为O个最小切分单元中除待加噪切分单元之外的最小切分单元。
在本申请提供的方案中,第一设备可以通过将待加噪切分单元对应的初始表示向量中的U1个特征替换为U1个数值来实现对O个最小切分单元对应的初始表示向量的加噪。可理解,替换待加噪切分单元对应的初始表示向量中的部分特征可以混淆真正的隐私信息,降低了后续将用户数据上传至云侧的隐私泄露风险。
可理解,U1为不大于任意一个待加噪切分单元对应的初始表示向量的维数的正整数。U1个数值可以根据实际需要进行设置,本申请对此不作限制。在本申请的一些实施例中,该U1个数值可以为固定向量中相应位置的特征。也就是说,第一设备可以将待加噪切分单元对应的初始表示向量中的U1个特征替换为固定向量(即第一向量)中相应位置的U1个数值。这一部分内容可以参见下文对固定数值的描述,在此不展开说明。
结合第一方面,在一种可能的实现方式中,第一设备通过第一部分模型对待加噪切分单元对应的初始表示向量进行加噪处理,得到加噪之后O个最小切分单元对应的表示向量,具体可以包括:第一设备可以通过第一部分模型确定第一词向量,还可以通过第一部分模型将待加噪切分单元对应的初始表示向量替换为第一词向量,从而得到待加噪切分单元对应的已加噪表示向量,然后可以通过第一部分模型确定加噪之后O个最小切分单元对应的表示向量。其中,第一词向量为与待加噪切分单元对应的词向量距离最近的词向量。该加噪之后O个最小切分单元对应的表示向量可以包括未加噪切分单元对应的初始表示向量和该待加噪切分单元对应的已加噪表示向量。未加噪切分单元为O个最小切分单元中除待加噪切分单元之外的最小切分单元。
在本申请提供的方案中,第一设备可以通过将待加噪切分单元对应的初始表示向量替换为第一词向量,来实现对O个最小切分单元对应的初始表示向量的加噪。可理解,将待加噪切分单元对应的初始表示向量替换为第一词向量可以混淆真正的隐私信息,降低了后续将用户数据上传至云侧的隐私泄露风险。
可理解,第一词向量指的是与待加噪切分单元对应的词向量距离最近的词向量。嵌入表中token对应的向量即为该token对应的词向量。词向量和词向量之间的距离的相关描述可以参见下文,在此不展开说明。
需要说明的是,第一词向量和第一向量的含义是不同的,二者不一定相同。
在本申请的一些实施例中,第一设备可以通过第一部分模型确定与待加噪切分单元对应的词向量距离最近的词向量,并将待加噪切分单元对应的初始表示向量中的U1个特征替换为该与待加噪切分单元对应的词向量距离最近的词向量中的相同位置的U1个特征,得到待加噪切分单元对应的已加噪表示向量。这一部分内容的具体实现方式可以参见下文,在此不展开说明。
在本申请的一些实施例中,第一设备可以确定对待加噪切分单元对应的词向量距离最近的K个词向量,并对该K个词向量进行加权处理,得到加权处理后的词向量,然后将待加噪切分单元对应的初始表示向量替换为该加权处理后的词向量。这一部分内容的具体实现方式可以参见下文,在此不展开说明。
在一种可能的实现方式中,第一设备可以将该待加噪切分单元对应的初始表示向量中的U1个特征替换为该加权处理后的词向量中的相同位置的U1个特征。这一部分内容的具体实现方式可以参见下文,在此不展开说明。
结合第一方面,在一种可能的实现方式中,第一设备通过第一部分模型对待加噪切分单元进行加噪处理,得到加噪之后的O个最小切分单元,具体可以包括:第一设备可以通过第一部分模型将待加噪切分单元替换为第一切分单元,得到加噪之后的O个最小切分单元。
在本申请提供的方案中,第一设备可以通过将待加噪切分单元替换为第一切分单元来实现对O个最小切分单元的加噪。可理解,替换成固定token可以混淆真正的隐私信息,降低了后续将用户数据上传至云侧的隐私泄露风险。
可理解,第一切分单元可以为MASK。这一部分内容可以参见下文对固定token的描述,在此不展开说明。
结合第一方面,在一种可能的实现方式中,第一设备基于O个最小切分单元对应的隐私信息类别和不同隐私信息类别对应的加噪强度,通过第一部分模型确定O个最小切分单元中的待加噪切分单元,具体可以包括:第一设备通过第一部分模型将第一数值乘以隐私信息类别Y对应的加噪强度,得到第一乘积,还可以通过第一部分模型在O个最小切分单元中的隐私信息类别Y对应的最小切分单元中随机选择隐私信息类别Y对应的待加噪切分单元,然后通过第一部分模型确定O个最小切分单元中的待加噪切分单元。其中,若第一乘积为整数,该随机选择的隐私信息类别Y对应的待加噪切分单元的数量等于第一乘积,若第一乘积不为整数,该随机选择的隐私信息类别Y对应的待加噪切分单元的数量等于第一乘积通过进一法取整后所得的整数。可理解,第一数值为O个最小切分单元中隐私信息类别Y对应的最小切分单元的数量。隐私信息类别Y为O个最小切分单元对应的隐私信息类别中的任意一种隐私信息类别。O个最小切分单元中的待加噪切分单元可以包括O个最小切分单元对应的所有隐私信息类别对应的待加噪切分单元。
在本申请提供的方案中,在第一乘积不为整数时,第一设备可以采用进一法对第一乘积取整,并将该取整后的整数作为隐私信息类别Y对应的待加噪切分单元的数量,并在O个最小切分单元中的隐私信息类别为隐私信息类别Y的若干最小切分单元中,随机选择该数量的最小切分单元作为隐私信息类别Y对应的待加噪切分单元。可理解,加入随机性可以减少对隐私信息识别能力的依赖。也就是说,第一设备并非是完全对隐私信息加噪,降低了加噪的规律性,使得隐私攻击者不容易找到规律来进行隐私攻击,从而降低了隐私泄露的风险。
可理解,隐私信息类别Y可以为pri中的任意一种隐私信息类别。第一数值可以为pri中的某一种隐私信息类别对应的加噪强度与pri中这一种隐私信息类别的数量的乘积。
结合第一方面,在一种可能的实现方式中,第二NLP模型可以部署在第一设备中。上述方法还可以包括:第一设备基于第二NLP模型对文本信息进行处理,得到第一预测结果,并显示第一界面。第一界面可以包括第一预测结果的相关信息。第一设备将加噪之后O个最小切分单元对应的表示向量发送给第二设备之后,该方法还可以包括:第一设备可以接收第二设备发送的第一参数,并基于第一参数更新第二NLP模型。其中,第一参数为第二设备基于加噪之后O个最小切分单元对应的表示向量对第二部分模型更新后的模型参数。
在本申请提供的方案中,第一设备中可以部署有第二NLP模型。第二NLP模型可以用于对文本信息进行处理并实现相应的NLP任务(例如,命名实体识别)。这样,第一设备可以在本设备上就实现相应的NLP任务,得到相应的预测结果,而不必通过其他设备实现该NLP任务,节省了时间,且提高了实现该NLP任务效率。再者,第一设备可以接收第二设备发送的更新后的模型参数(即第一参数),并基于该参数来更新第二NLP模型。这样,第一设备可以从云侧同步更新后的模型参数,从而改善该第二NLP模型实现NLP任务的效果,即提高预测结果的准确性。
可理解,第二NLP模型可以为NLP模型300。在本申请的一些实施例中,第一NLP模型和第一部分模型可以共用同一个编码器。这样,可以节省资源。
可理解,第一参数可以为第二设备中的更新后的解码器的参数。该参数具体可以为更新后的解码器_1的参数,还可以为更新后的解码器_2的参数。
可理解,第一预测结果可以为C3。
可理解,第一界面为显示有第一预测结果的相关信息的用户界面。在本申请的一些实施例中,第一界面可以为图3D所示的用户界面400。在本申请的又一些实施例中,第一界面可以为图3E所示的用户界面500。
结合第一方面,在一种可能的实现方式中,第一设备显示第一界面之后,上述方法还可以包括:响应于作用于第一界面的操作,第一设备可以显示第二界面,并基于第二界面确定监督信号,然后将监督信号发送给第二设备。其中,第二界面可以包括更改后的第一预测结果的相关信息。在这种情况下,第一参数为第二设备基于监督信号和第二预测结果对第二部分模型更新后的模型参数。第二预测结果为第二设备通过第二部分模型对加噪之后O个最小切分单元对应的表示向量进行处理后所得的预测结果。
在本申请提供的方案中,监督信号可以为基于用户对预测结果进行更改后所得的相关信息。这样,第二设备基于监督信号和第二部分模型的预测结果来对第二部分模型进行更新之后,可以得到更符合用户需求的NLP模型。这样,可以提高第二部分模型后续预测结果的准确性。
在本申请的一些实施例中,作用于第一界面的操作可以为作用于显示区域501上的用户操作。
可理解,监督信号可以为监督信号J1。
在本申请的一些实施例中,第二预测结果可以为C1。在这种情况下,第一NLP模型为NLP模型100。在本申请的又一些实施例中,第二预测结果可以为C2。在这种情况下,第一NLP模型为NLP模型200。
可理解,第二界面为显示有更改后的第一预测结果的相关信息的用户界面。在本申请的一些实施例中,第二界面可以为图3D所示的用户界面400,而第一界面可以为图3E所示的用户界面500。
结合第一方面,在一种可能的实现方式中,第一设备接收第二设备发送的第一参数之前,上述方法还可以包括:第一设备可以将加噪之后O个最小切分单元对应的表示向量发送给第三NLP模型。其中,第一参数为第二设备基于加噪之后O个最小切分单元对应的表示向量和第三预测结果对第二部分模型更新后的模型参数。第三预测结果为第三NLP模型基于加噪之后O个最小切分单元对应的表示向量所得的预测结果。
在本申请提供的方案中,第二设备可以采用半监督的方式来更新第二部分模型,进而更新第二NLP模型。具体地,第二设备可以将第三NLP模型输出的预测结果作为监督信号来更新第二部分模型。这样,可以提高第二部分模型后续预测结果的准确性。
可理解,第二设备还可以基于其他半监督方式来实现对第二部分模型的更新,具体可以参考相关技术文档,在此不展开说明。
在本申请的一些实施例中,第三预测结果可以为C4。在这种情况下,第一NLP模型为NLP模型100。在本申请的又一些实施例中,第三预测结果可以为C4_2。在这种情况下,第一NLP模型为NLP模型200。
结合第一方面,在一种可能的实现方式中,第一设备将加噪之后O个最小切分单元对应的表示向量发送给第二设备之后,上述方法还可以包括:第一设备可以接收第二设备发送的第二预测结果,并显示第三界面。其中,第二预测结果为第二设备通过第二部分模型对加噪之后O个最小切分单元对应的表示向量进行处理后所得的预测结果。第三界面包括第二预测结果的相关信息。
在本申请提供的方案中,第一设备可以基于第二设备发送的预测结果来显示第三界面,这种情况下,第一设备无需部署专门的NLP模型用于实现NLP任务,而是直接采用部署在第二设备上的第二部分模型来实现NLP任务即可,可以减少第一设备这一侧的计算压力。
在本申请的一些实施例中,第三界面可以为图3D所示的用户界面400,也可以为图3E所示的用户界面500。
第二方面,本申请提供了一种自然语言处理模型的更新方法。根据该方法,第一NLP模型中的第一部分模型可以部署在第一设备中,第一NLP模型中的第二部分模型可以部署在第二设备中。第一设备为端侧设备,第二设备为云侧设备。根据该方法,第二设备可以接收第一设备发送的通过第一部分模型对文本信息进行处理后所得的加噪之后O个最小切分单元对应的表示向量,还可以通过第二部分模型来对加噪之后O个最小切分单元对应的表示向量进行处理,得到第二预测结果,然后可以基于第二预测结果更新第二部分模型。其中,O为正整数。
在本申请提供的方案中,第二设备可以接收第一设备发送的加噪之后O个最小切分单元对应的表示向量。由于从端侧发送至云侧的用户数据是经过加噪处理后所得的表示向量,一旦隐私攻击者在云侧获取该表示向量也无法通过还原模型得到该表示向量,可以降低隐私泄露的风险。并且,第二设备可以基于第一设备发送的用户数据(例如,加噪处理后所得的表示向量)来更新第一NLP模型的第二部分模型,这样,在用户使用第一NLP模型的同时,可以实现利用云侧强大的计算能力来基于大量端侧设备的用户数据进行更新第一NLP模型。
结合第二方面,在一种可能的实现方式中,第二设备可以接收第一设备发送的监督信号,还可以基于监督信号和第二预测结果更新第二部分模型,得到第一参数,并将第一参数发送给第一设备。第一参数为更新后的第二部分模型的参数;
结合第二方面,在一种可能的实现方式中,第一NLP模型中的第三部分模型可以部署在第三设备中。第三设备为端侧设备。上述方法还可以包括:第二设备可以接收第三设备发送的通过第三部分模型所得的加噪之后P个最小切分单元对应的表示向量,还可以通过第二部分模型来对加噪之后P个最小切分单元对应的表示向量进行处理,得到第四预测结果,然后基于第四预测结果更新第二部分模型。P为正整数。
在本申请提供的方案中,第二设备可以接收多个端侧设备发送的加噪后的表示向量,从而基于大量的用户数据实现更新,使得更新后的第二部分模型得以更好的实现NLP任务。也就是说,通过这种方式更新后的NLP模型的预测结果会更为准确。
可理解,P个最小切分单元可以为R_1_token。
在本申请的一些实施例中,第三部分模型可以为处理单元102,第四预测结果可以为C1_2,加噪之后P个最小切分单元对应的表示向量可以为H1_1。在这种情况下,第一NLP模型为NLP模型100。在本申请的又一些实施例中,第三部分模型可以为处理单元202,第四预测结果可以为C2_2,加噪之后P个最小切分单元对应的表示向量可以为H2_1。在这种情况下,第一NLP模型为NLP模型200。
第三方面,本申请提供了一种电子设备,该电子设备包括:一个或多个处理器,以及一个或多个存储器;该一个或多个存储器与该一个或多个处理器耦合,该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令,该一个或多个处理器调用该计算机指令以使得该电子设备执行如第一方面或第一方面的任意一种实现方式所描述的方法。
第四方面,本申请提供了一种电子设备,该电子设备包括:一个或多个处理器,以及一个或多个存储器;该一个或多个存储器与该一个或多个处理器耦合,该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令,该一个或多个处理器调用该计算机指令以使得该电子设备执行如第二方面或第二方面的任意一种实现方式所描述的方法。
第五方面,本申请提供一种计算机存储介质,包括计算机指令,当该计算机指令在电子设备上运行时,使得该电子设备执行如第一方面或第一方面的任意一种实现方式所描述的方法。
第六方面,本申请提供一种计算机存储介质,包括计算机指令,当该计算机指令在电子设备上运行时,使得该电子设备执行如第二方面或第二方面的任意一种实现方式所描述的方法。
第七方面,本申请实施例提供一种芯片,该芯片可以应用于电子设备,该芯片包括一个或多个处理器,该处理器用于调用计算机指令以使得该电子设备执行如第一方面或第一方面的任意一种实现方式所描述的方法。
第八方面,本申请实施例提供一种芯片,该芯片可以应用于电子设备,该芯片包括一个或多个处理器,该处理器用于调用计算机指令以使得该电子设备执行如第二方面或第二方面的任意一种实现方式所描述的方法。
第九方面,本申请实施例提供一种包含指令的计算机程序产品,当该计算机程序产品在电子设备上运行时,使得该电子设备执行如第一方面或第一方面的任意一种实现方式所描述的方法。
第十方面,本申请实施例提供一种包含指令的计算机程序产品,当该计算机程序产品在电子设备上运行时,使得该电子设备执行如第二方面或第二方面的任意一种实现方式所描述的方法
可理解,上述第三方面提供的电子设备、第五方面提供的计算机存储介质、第七方面提供的芯片,以及第九方面提供的计算机程序产品均用于执行如第一方面或第一方面的任意一种实现方式所描述的方法。因此,其所能达到的有益效果可参考上述第一方面中任一种可能的实现方式的有益效果,此处不再赘述。上述第四方面提供的电子设备、第六方面提供的计算机存储介质、第八方面提供的芯片,以及第十方面提供的计算机程序产品均用于执行如第二方面或第二方面的任意一种实现方式所描述的方法。因此,其所能达到的有益效果可参考上述第二方面中任一种可能的实现方式的有益效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种隐私攻击的示意图;
图2为本申请实施例提供的一种训练还原模型获取隐私信息的示意图;
图3A-图3E为本申请实施例提供的一组用户界面示意图;
图4A-图4C为本申请实施例提供的一组NLP模型的结构示意图;
图5A-图5C为本申请实施例提供的又一组NLP模型的结构示意图;
图6A-图6B为本申请实施例提供的又一组NLP模型的结构示意图;
图7A为本申请实施例提供的一种NLP模型的部署示意图;
图7B为本申请实施例提供的又一种NLP模型的部署示意图;
图7C为本申请实施例提供的又一种NLP模型的部署示意图;
图7D为本申请实施例提供的一种NLP模型的更新示意图;
图7E为本申请实施例提供的又一种NLP模型的更新示意图;
图7F为本申请实施例提供的又一种NLP模型的更新示意图;
图8A为本申请实施例提供的又一种NLP模型的部署示意图;
图8B为本申请实施例提供的又一种NLP模型的部署示意图;
图8C为本申请实施例提供的又一种NLP模型的部署示意图;
图8D为本申请实施例提供的一种NLP模型的更新示意图;
图8E为本申请实施例提供的又一种NLP模型的更新示意图;
图8F为本申请实施例提供的又一种NLP模型的更新示意图;
图9为本申请实施例提供的一种NLP模型更新方法的流程图;
图10为本申请实施例提供的又一种NLP模型更新方法的流程图;
图11为本申请实施例提供的又一种NLP模型更新方法的流程图;
图12为本申请实施例提供的又一种NLP模型更新方法的流程图;
图13为本申请实施例提供的一种电子设备的硬件结构示意图;
图14为本申请实施例提供的一种电子设备的软件结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
应当理解,本申请的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本申请所描述的实施例可以与其它实施例相结合。
NLP涉及的内容纷繁复杂,而且不同的内容都需要结合相应场景和具体需求来讨论。这些NLP涉及的内容可以抽象成若干任务。比如,分词、词性标注、实体抽取(即命名实体识别)、关系抽取、事件抽取、文本分类、机器翻译、新词发现、拼写提示、自动摘要、阅读理解等等,都属于 NLP 任务。针对不同的NLP任务,可以采用不同的NLP模型来处理。
根据上文,在实际应用中,训练得到的NLP模型很可能还是无法高质量的完成相应的NLP任务。也就意味着,该NLP模型无法满足用户的需求。这种情况下,可以通过对NLP模型进行更新来提高其完成相应NLP任务的效果。但是,在NLP模型已经部署在端侧,或者端云两侧(即端侧和云侧)的情况下,对NLP模型进行更新不如前期训练时那么方便。若NLP模型全部部署在端侧,NLP模型只能基于有限的用户数据(即使用端侧设备的用户的相关数据)进行更新,并且,端侧的计算能力非常有限,难以在用户正常使用其他功能的情况下对NLP模型进行更新。若NLP模型部署在端云两侧,部署在端侧的部分NLP模型需要将用户数据上传至云侧,使得部署在云侧的部分NLP模型可以基于上传的用户数据对NLP模型进行更新。但是,端侧上传至云侧的数据通常包含隐私信息。该上传过程存在用户隐私信息泄露的风险。
如图1所示,文本信息“John lived in 3rd street”对应的“John”、“lived”、“in”、“3rd”和“street”输入到部署在端侧的NLP模型之后,可以得到5个表示向量。端侧可以将这5个表示向量上传至云侧。隐私攻击者获取这5个上传至云侧的表示向量之后,可以对该5个表示向量进行攻击,得到5个词——“John”、“lived”、“in”、“3rd”和“street”,进而得到文本信息——“John lived in 3rd street”。这样,隐私攻击者就获取了完整的用户隐私信息。
隐私攻击者可以通过黑盒攻击手段或白盒攻击手段来实现对隐私信息的获取。例如,隐私攻击者可以训练还原模型来将获取的上传云侧的用户数据还原成文本信息。例如,在已知词表示向量(即词向量)的情况下,隐私攻击者可以通过查找与上传云侧的用户数据相似的词表示向量来推测文本信息。再例如,在已知模型结构和参数的情况下,隐私攻击者可以采用梯度反向传播方式来推测文本信息。
示例性的,如图2所示,隐私攻击者可以利用“明天去五道口听讲座”、“五月10日还款到期,还欠100万”、“基于向量混淆的隐私保护系统”和“新街口要开面包店”等额外数据来训练得到V1、V2、V3、V4和V5等表示向量,从而得到还原模型。而用户数据为“明天需要还款100万”,该文本输入到部署在端侧(即用户终端,比如手机等)的部分NLP模型后,可以得到表示向量z。该表示向量z上传至云侧之后,被隐私攻击者获取。隐私攻击者将该表示向量z输入至其训练所得的还原模型之后,可以输出得到用户的隐私信息,即“明天需要还款100万”。
可理解,部分NLP模型中的表示模型经常使用双向长短时记忆(Bi-directionalLong Short-Term Memory,BiLSTM)和基于变换网络的双向编码表示(Bi-directionalEncoder Representation from Transformers,BERT)等结构。经过表示模型之后输出的表示向量的数量与分词后的文本输入长度(即分词数量)一致。也就意味着,隐私攻击者可以通过简单的反向策略构建还原模型,并得到字准率极高的攻击效果。可理解,字准率指的是字符识别准确率。即识别对的字符数占总识别出来字符数的比例。也就是说,隐私攻击者可以得到准确率极高的用户隐私信息。
可理解,BiLSTM是由前向长短时记忆(Long Short-Term Memory,LSTM)和后向LSTM组合而成。其中,LSTM是一种循环神经网络((Recurrent Neural Network,RNN)。LSTM非常适合用于对时序数据的建模,如文本数据。这是由于LSTM设计的特点,使其可以更好的捕捉到较长距离的依赖关系。通俗来说,LSTM通过训练过程可以学到记忆哪些信息和遗忘哪些信息。但是,LSTM无法编码从后到前的信息。由于BiLSTM是由前向LSTM和后向LSTM组成,所以BiLSTM可以更好的捕捉双向的语义依赖。因此,BiLSTM常被用来建模上下文信息。
可理解,BERT是一个预训练的语言表征模型。与以往采用传统的单向语言模型或者把两个单向语言模型进行浅层拼接的方法进行预训练的方式不同,BERT通过设置一个比语言模型(Language Model,LM)更简单的任务来做预训练,并且使用基于变换网络(Transformer)的编码器(Encoder)来进行预训练从而使得模型变深。该模型捕捉到的是真正意义上的双向上下文(bi-directional context)信息,该模型使用了遮蔽语言模型(Masked LM,MLM)和下一句预测(Next Sentence Prediction,NSP)这两种方法分别捕捉词语和句子级别的表示(representation),以致能生成深度的双向语言表征。可理解,相较于传统的预训练语言模型,BERT可以显著提高实现NLP任务的准确率。
基于上述内容,本申请提供了一种自然语言处理模型的更新方法及相关设备。根据该自然语言处理模块的更新方法,端侧设备可以对文本信息进行分词处理,得到若干token,再对该若干token进行特征抽取以及加噪处理,将加噪处理后的表示向量发送给云侧设备。端侧设备还可以将监督信号发送给云侧设备。云侧设备中的解码器可以基于该加噪处理后的表示向量确定预测结果,再基于该预测结果和监督信号对第二设备中的解码器进行更新,并将更新后的解码器的参数发送给端侧设备。端侧设备可以基于该更新后的解码器的参数对部署在第一设备中的NLP模型中的解码器进行更新。这种方式可以实现在用户使用NLP模型的情况下基于用户数据对NLP模型进行更新。并且,通过这种方式,云侧设备可以基于大量端侧设备发送的用户数据来对NLP模型进行更新,可以得到效果更好的NLP模型。
下面介绍本申请实施例提供的一种更新NLP模型的场景。
可理解,本申请的说明书和权利要求书及附图中的术语“界面”和“用户界面”,是应用程序或操作系统与用户之间进行交互和信息交换的介质接口,它实现信息的内部形式与用户可以接受形式之间的转换。用户界面常用的表现形式是图形用户界面(graphicuser interface,GUI),是指采用图形方式显示的与计算机操作相关的用户界面。它可以是在端侧设备的显示屏中显示的一个图标、窗口、控件等界面元素,其中控件可以包括图标、按钮、菜单、选项卡、文本框、对话框、状态栏、导航栏、Widget等可视的界面元素。
端侧设备可以检测到作用于文本上的用户操作。响应于该用户操作,端侧设备可以显示如图3A所示的用户界面100。用户界面可以包括复制控件101。端侧设备可以检测到作用于复制控件101的用户操作。响应于该用户操作,端侧设备可以将该文本复制到剪贴板。
可理解,本申请中所提及的用户操作可以包括但不限于触摸(例如,点击等)、声控、手势等操作,本申请对此不作限制。
端侧设备可以检测到用户输入到搜索栏中的“日历”,然后对该输入内容进行搜索,并且显示如图3B所示的用户界面200。用户界面200可以包括搜索栏201和日历快捷控件202。如图3B所示,搜索栏201中显示有用户输入的“日历”。日历快捷控件202用于启动日历应用程序。日历应用程序为包括日期、日程等相关信息的应用程序。
端侧设备可以检测到作用于日历快捷控件202上的用户操作。响应于该用户操作,端侧设备可以显示如图3C所示的用户界面300。用户界面300可以包括显示区域301。显示区域301用于提示用户是否需要根据复制内容创建日程。显示区域301可以显示复制内容,即“明天早上9点我们在五角场地铁站集合!”。显示区域301可以包括取消控件3011和确定控件3012。取消控件3011用于放弃根据复制内容创建日程。确定控件3012用于确定根据复制内容创建日程。
端侧设备可以检测到作用于确定控件3012上的用户操作。响应于该用户操作,端侧设备可以利用NLP模型获取复制内容中的时间和地点。可理解,端侧设备可以显示如图3D所示的用户界面400。用户界面400可以包括显示区域401和显示区域402。显示区域401用于显示复制内容中的地点。显示区域402用于显示复制内容中的时间。
需要说明的是,端侧设备在利用部署在端侧设备上的NLP模型获取复制内容中的时间和地点的过程中,还可以将相应表示向量加噪后发送给云侧设备。云侧设备可以基于部署在云侧设备上的NLP模型对该加噪后的表示向量进行处理,得到预测结果。可理解,NLP模型的相关描述可参考下文,在此不展开说明。
在本申请的一些实施例中,端侧设备利用NLP模型获取复制内容中的时间和地点之后,可以显示如图3E所示的用户界面500。用户界面500可以包括显示区域501。显示区域用于显示复制内容中的地点。可理解,如图3E所示,显示区域所显示的地点为“地铁站”,而不是复制内容中的“五角场地铁站”。在这种情况下,用户可以触摸显示区域501来更改地点。这样,电子设备可以显示如图3D所示的用户界面400。
需要说明的是,在用户手动更改地点之后,端侧设备可以基于图3E所示的用户界面获取相应的地点和时间信息,并将其发送给云侧设备。云侧设备接收该地点和时间信息之后,可以将其作为监督信号,再结合预测结果确定损失函数,再以最小化损失函数为目标更新NLP模型。云侧设备可以将更新后的NLP模型的参数发送给端侧设备,端侧设备再基于该更新后的NLP模型的参数来更新端侧设备中的NLP模型。
可理解,云侧设备可以接收来自多个端侧设备的表示向量和监督信号,从而基于大量数据以及云侧设备强大的计算能力来进行NLP模型的更新。
值得注意的是,除了上述日程信息抽取、日期时间识别、地址识别外,本申请还可以提供其他场景。例如,人名识别、兴趣点(Point of Interest,POI)识别、音乐专辑信息抽取、航班短信信息抽取、贷款还款提醒信息抽取等。
可理解,在地理信息系统中,一个POI可以是一栋房子、一个商铺、一个邮筒、一个公交站等。
还需要说明的是,上述用户界面仅为本申请提供的一些示例,不应视为对本申请的限制。
下面介绍本申请实施例提供的一种NLP模型。
1、NLP模型包含的模块
NLP模型可以包括编码器、隐私信息分类模块、加噪模块和解码器。其中:
编码器可以对输入到编码器的token进行特征抽取,并输出表示向量。可理解,token指的是对文本进行分词处理后的最小切分单元。token可以为词语、字、字母等。
在本申请的一些实施例中,编码器可以为BERT、变换网络(Transformer)、卷积神经网络(Convolutional Neural Network,CNN)、深度神经网络(Deep Neural Networks,DNN)和LSTM等。在本申请的又一些实施例中,编码器可以基于向量映射规则生成。例如,编码器可以为嵌入层(Embedding层)。可理解,BERT、Transformer、CNN、DNN、LSTM和嵌入层的具体含义和具体实现方式可以参考上文和相关技术文档,在此不展开说明。
隐私信息分类模块可以确定输入到隐私信息分类模块的token是否为隐私信息,以及判断该token对应的隐私信息类别。为了便于描述,本申请将隐私信息分类模块输出的隐私信息类别记为pri。
可理解,隐私信息分类模块可以为神经网络、条件随机场(Conditional RandomField,CRF)、贝叶斯分类器和决策树等。可理解,CRF是一种鉴别式机率模型,是随机场的一种,常用于标注或分析序列资料。贝叶斯分类器是一种基于统计的分类器,它根据给定样本属于某一个具体类的概率来对其进行分类。贝叶斯分类器的理论基础是贝叶斯理论。决策树(Decision Tree)又称为判定树,是数据挖掘技术中的一种重要的分类与回归方法,它是一种以树结构(包括二叉树和多叉树)形式来表达的预测分析模型。神经网络、CRF、贝叶斯分类器和决策树的具体含义和具体实现方式可以参考相关技术文档,在此不展开说明。
加噪模块可以根据隐私信息类别和不同隐私信息类别对应的加噪强度,对输入到加噪模块的内容进行加噪处理。
解码器可以基于输入到解码器的内容进行下游任务预测,并输出预测结果。即解码器可以基于输入到解码器的内容完成该下游任务。可理解,解码器可以为BERT、CRF、LSTM和Transformer等。
可理解,下游任务(downstream task)指的是目标任务,即NLP模型需要完成的NLP任务。下游任务可以为命名实体识别、关系预测、情感分析等NLP任务,本申请对此不作限制。
需要说明的是,在真正完成下游任务之前,NLP模型很可能通过一些其他任务来帮助完成下游任务。这些任务可以被称为前置任务(pretext task)。前置任务可以理解为是一种为了完成目标任务而设计的间接任务,也可以理解为是对目标任务的实现有帮助的辅助任务。比如,编码器对输入到编码器的token进行的特征提取就可以理解为是前置任务。通俗来讲,前置任务是NLP模型为了帮助完成下游任务而设计的任务,而下游任务才是NLP模型真正需要完成的NLP任务。
2、NLP模型的结构
下面为本申请示例性示出的NLP模型的具体结构。
请参阅图4A-图4C,图4A-图4C为本申请实施例提供的一组NLP模型的结构示意图。
如图4A所示,NLP模型100可以包括一个编码器、一个隐私信息分类模块、一个加噪模块和解码器_1。NLP模型100的输入可以为R。R输入到NLP模型100之后,NLP模型100可以首先对R进行分词处理,得到若干token。为了便于描述,本申请将对R进行分词处理后所得的token记为R_token。R_token可以输入到NLP模型100中的编码器和隐私信息分类模块。编码器和隐私信息分类模块可以分别对R_token进行处理。编码器对R_token进行处理后,可以输出表示向量h。隐私信息分类模块对R_token进行处理后,可以输出pri。h和pri可以输入到加噪模块。加噪模块基于pri对h进行加噪处理后,可以输出表示向量H1。H1为对h进行加噪处理后所得的表示向量。H1可以输入到解码器_1。解码器_1对H1进行处理后,可以输出C1。可理解,C1可以为下游任务的预测结果。
可理解,R可以为用户输入的内容,可以为用户复制的内容,还可以为接收到的其他设备发送的消息,本申请对R的具体内容和具体获取方式不作限制。示例性的,R可以为短信、聊天消息等文本信息。
在本申请的一些实施例中,NLP模型100的输入还可以为R_token。
在本申请的一些实施例中,编码器对R_token进行处理后,还可以输出表示向量h_mid。h_mid可以输入到隐私信息分类模块。隐私信息分类模块可以基于h_mid对R_token进行处理,并输出pri。
可理解,根据图4A所示的NLP模型100,编码器和隐私信息分类模块的输入可以为R对应的若干token。即R_token。
在本申请的一些实施例中,NLP模型100还可以包括多个解码器。该多个解码器可以用于实现多个下游任务。如图4B所示,NLP模型100除了包括如图4A所示的一个编码器、一个隐私信息分类模块、一个加噪模块和解码器_1之外,还可以包括至少一个解码器。该解码器和解码器_1可以用于实现不同的下游任务。该解码器的输入可以为加噪模块输出的H1。该解码器可以对H1进行处理,并输出C1_1。可理解,C1和C1_1可以不同的预测结果。
在本申请的一些实施例中,NLP模型100还可以包括多个编码器、多个隐私信息分类模块和多个加噪模块。该多个编码器的参数可以相同。该多个隐私信息分类模块的参数可以相同。该多个加噪模块的参数可以相同。
在一种可能的实现方式中,NLP模型100可以包括多个处理单元。每一个处理单元可以包括一个编码器、一个隐私信息分类模块和一个加噪模块。NLP模型100可以基于该多个处理单元对多个输入(例如,R和R_1)进行处理,再基于解码器_1实现下游任务。可理解,R和R_1可以相同,也可以不同。
如图4C所示,NLP模型100可以包括处理单元101、处理单元102和解码器_1,还可以包括更多的处理单元。其中,处理单元101可以包括一个编码器、一个隐私信息分类模块和一个加噪模块。处理单元102也可以包括一个编码器、一个隐私信息分类模块和一个加噪模块。处理单元101和处理单元102中的模块的参数可以相同。
为了便于描述,本申请将图4C所示的处理单元101和解码器_1实现的下游任务记为下游任务1,将图4C所示的处理单元102和解码器_1实现的下游任务记为下游任务2。下游任务1和下游任务2可以相同。
可理解,图4C所示的NLP模型100中的处理单元101和解码器_1实现的下游任务可以与图4A所示的NLP模型100实现的下游任务相同,并且图4C所示的各个模块的输入和输出分别与图4A所示的相应模块的输入和输出相同。而图4C所示的NLP模型100中的处理单元102和解码器_1可以对R_1进行处理,最终解码器_1可以输出C1_2。
可理解,处理单元102和解码器_1对R_1的处理过程与图4A所示的NLP模型100对R的处理过程类似。
具体地,R_1输入到NLP模型100之后,NLP模型100可以首先对R_1进行分词处理,得到若干token。为了便于描述,本申请将对R_1进行分词处理后所得的token记为R_1_token。R_1_token可以输入到处理单元102中的编码器和隐私信息分类模块。处理单元102中的编码器和隐私信息分类模块可以分别对R_1_token进行处理。处理单元102中的编码器对R_1_token进行处理后,可以输出表示向量h_1。处理单元102中的隐私信息分类模块对R_1_token进行处理后,可以输出pri_1。h _1和pri _1可以输入到处理单元102中的加噪模块。处理单元102中的加噪模块基于pri_1对h_1进行加噪处理后,可以输出表示向量H1_1。H1_1为对h_1进行加噪处理后所得的表示向量。H1_1可以输入到解码器_1。解码器_1对H1_1进行处理后,可以输出C1_2。可理解,C1_2可以为下游任务2的预测结果。而C1可以为下游任务1的预测结果。
在本申请的一些实施例中,NLP模型100的输入还可以为R_1_token。
在本申请的一些实施例中,处理单元102中的编码器对R_1_token进行处理后,还可以输出表示向量h_1_mid。h_1_mid可以输入到处理单元102中的隐私信息分类模块。处理单元102中的隐私信息分类模块可以基于h_1_mid对R_1_token进行处理,并输出pri_1。
需要说明的是,图4A-图4C所示的NLP模型的结构仅为本申请提供的示例,不应视为对本申请的限制。
请参阅图5A-图5C,图5A-图5C为本申请实施例提供的又一组NLP模型的结构示意图。
如图5A所示,NLP模型200可以包括一个编码器、一个隐私信息分类模块、一个加噪模块和解码器_2。R输入到NLP模型200之后,NLP模型200可以首先对R进行分词处理,得到若干token。即R_token。R_token可以输入到NLP模型200中的隐私信息分类模块和加噪模块。隐私信息分类模块和加噪模块可以分别对R_token进行处理。隐私信息分类模块对R_token进行处理后,可以输出pri。pri可以输入到加噪模块。加噪模块可以基于pri对R_token进行加噪处理,并输出加噪后的若干token。为了便于描述,本申请将对R_token进行加噪处理后所得的token记为R_TOKEN。R_TOKEN可以输入到编码器。编码器对R_TOKEN进行处理后,可以输出表示向量H2。H2可以输入到解码器_2。解码器_2对H2进行处理后,可以输出C2。
在本申请的一些实施例中,NLP模型200的输入还可以为R_token。
可理解,根据图5A所示的NLP模型200,隐私信息分类模块和加噪模块的输入可以为R对应的若干token。即R_token。
在本申请的一些实施例中,NLP模型200还可以包括多个解码器。该多个解码器可以用于实现多个下游任务。如图5B所示,NLP模型200除了包括如图5A所示的一个编码器、一个隐私信息分类模块、一个加噪模块和解码器_2之外,还可以包括至少一个解码器。该解码器和解码器_2可以用于实现不同的下游任务。该解码器的输入可以为编码器输出的H2。该解码器可以对H2进行处理,并输出C2_1。可理解,C2和C2_1可以为不同的预测结果。
在本申请的一些实施例中,NLP模型200还可以包括多个编码器、多个隐私信息分类模块和多个加噪模块。该多个编码器的参数可以相同。该多个隐私信息分类模块的参数也可以相同。该多个加噪模块的参数可以相同。
在一种可能的实现方式中,NLP模型200可以包括多个处理单元。每一个处理单元可以包括一个编码器、一个隐私信息分类模块和一个加噪模块。NLP模型200可以基于该多个处理单元对多个输入(例如,R和R_1)进行处理,再基于解码器_2实现下游任务。
如图5C所示,NLP模型200可以包括处理单元201、处理单元202和解码器_2,还可以包括更多的处理单元。其中,处理单元201可以包括一个编码器、一个隐私信息分类模块和一个加噪模块。处理单元202也可以包括一个编码器、一个隐私信息分类模块和一个加噪模块。处理单元201和处理单元202中的模块的参数可以相同。
为了便于描述,本申请将图5C所示的处理单元201和解码器_2实现的下游任务记为下游任务3,将图5C所示的处理单元202和解码器_2实现的下游任务记为下游任务4。下游任务3和下游任务4可以相同。
可理解,图5C所示的NLP模型200中的处理单元201和解码器_2实现的下游任务可以与图5A所示的NLP模型200实现的下游任务相同,并且图5C中的处理单元201和解码器_2的输入和输出分别与图5A所示的相应模块的输入和输出相同。而图5C所示的NLP模型200中的处理单元202和解码器_2可以对R_1进行处理,最终解码器_2可以输出C2_2。
可理解,处理单元202和解码器_2对R_1的处理过程与图5A所示的NLP模型200对R的处理过程类似。
具体地,R_1输入到NLP模型200之后,NLP模型200可以首先对R_1进行分词处理,得到若干token。即R_1_token。R_1_token可以输入到处理单元202中的隐私信息分类模块和加噪模块。处理单元202中的隐私信息分类模块和加噪模块可以分别对R_1_token进行处理。处理单元202中的隐私信息分类模块对R_1_token进行处理后,可以输出pri_1。pri_1可以输入到处理单元202中的加噪模块。处理单元202中的加噪模块可以基于pri_1对R_1_token进行加噪处理,并输出加噪后的若干token。为了便于描述,本申请将对R_1_token进行加噪处理后所得的token记为R_1_TOKEN。R_1_TOKEN可以输入到处理单元202中的编码器。处理单元202中的编码器对R_1_TOKEN进行处理后,可以输出表示向量H2_1。H2_1可以输入到解码器_2。解码器_2对H2_1进行处理后,可以输出C2_2。可理解,C2_2可以为下游任务4的预测结果。而C2_1可以为下游任务3的预测结果。
在本申请的一些实施例中,NLP模型200的输入还可以为R_1_token。
在本申请的一些实施例中,图5C所示的处理单元的结构还可以与图4C所示的处理单元的结构一致。
需要说明的是,图5A-图5C所示的NLP模型的结构仅为本申请提供的示例,不应视为对本申请的限制。
还需要说明的是,解码器_1和解码器_2可以为相同的解码器。解码器_1和解码器_2的作用和结构可以参考上文对解码器的描述,在此不再赘述。
下面介绍本申请实施例提供的又一种NLP模型。
请参阅图6A-图6B,图6A-图6B为本申请实施例提供的又一种NLP模型的结构示意图。
如图6A所示,NLP模型300可以包括一个编码器和解码器_3。该编码器和解码器_3的作用和结构可以参考上文对编码器和解码器的描述,在此不再赘述。R输入到NLP模型300之后,NLP模型300可以首先对R进行分词处理,得到若干token。即R_token。R_token可以输入到NLP模型300中的编码器。编码器可以对R_token进行处理,并输出表示向量h。h可以输入到解码器_3。解码器_3对h进行处理后,可以输出C3。
可理解,根据图6A所示的NLP模型300,编码器的输入可以为R对应的若干token。即R_token。
在本申请的一些实施例中,NLP模型300还可以包括多个解码器。该多个解码器可以用于实现多个下游任务。如图6B所示,NLP模型300除了包括如图6A所示的一个编码器和解码器_3之外,还可以包括至少一个解码器。该解码器和解码器_3可以用于实现不同的下游任务。该解码器的输入可以为编码器输出的h。该解码器可以对h进行处理,并输出C3_1。可理解,C3和C3_1可以不同。
在本申请的一些实施例中,NLP模型300还可以包括多个编码器。该多个编码器的参数可以相同。其具体实现可以参考上文,在此不再赘述。
需要说明的是,解码器_3和解码器_1可以为相同的解码器,解码器_3和解码器_2也可以为相同的解码器。
基于图4A-图4C和图6A-图6B所示的NLP模型,结合图7A-图7F介绍本申请实施例提供的一种NLP模型的部署方式及更新方法。
1、NLP模型部署方式(如图7A-图7C)
NLP模型100可以部分部署在端侧,部分部署在云侧,而NLP模型300可以完全部署在端侧。
示例性的,如图7A所示,NLP模型100中的编码器、隐私信息分类模块和加噪模块可以部署在端侧的第一设备上,NLP模型100中的解码器_1可以部署在云侧的第二设备上。NLP模型300可以完全部署在第一设备上。第一设备为端侧设备,而第二设备为云侧设备。第一设备和第二设备之间可以进行通信。也就是说,第一设备和第二设备之间可以互相收发消息。
在本申请的一些实施例中,NLP模型100中的编码器和NLP模型300中的编码器可以是同一个编码器(如图7A所示)。当然,NLP模型100中的编码器和NLP模型300中的编码器还可以是不同的编码器,本申请对此不作限制。
在本申请的一些实施例中,NLP模型100可以部分部署在端侧的多个设备上,部分部署在云侧的设备上。
示例性的,如图7B所示,NLP模型100中的处理单元101可以部署在第一设备上,处理单元102可以部署在第三设备上,解码器_1可以部署在第二设备上。第一设备还可以部署有NLP模型300,第三设备也还可以部署有NLP模型300。其中,第三设备为端侧设备。
示例性的,如图7C所示,NLP模型100中的处理单元101可以部署在第一设备上,处理单元102可以部署在第三设备上,解码器_1可以部署在第二设备上。第一设备和第三设备中不部署NLP模型300。
在本申请的一些实施例中,第三设备中可以部署有处理单元202。
可理解,在NLP模型100包括更多的处理单元的情况下,该更多的处理单元可以部署在其他端侧设备上。类似的,该其他端侧设备也可以部署有NLP模型300。
在本申请的一些实施例中,NLP模型100可以包括多个解码器。该多个解码器可以用于实现不同的下游任务。在这种情况下,NLP模型100中的多个解码器可以均部署在云侧。
可理解,端侧设备指的是终端设备,具体可以是手机、平板电脑、可穿戴设备、车载设备、增强现实(Augmented Reality,AR)/虚拟现实(Virtual Reality,VR)设备、笔记本电脑、超级移动个人计算机(Ultra-Mobile Personal Computer,UMPC)、上网本、个人数字助理(Personal Digital Assistant,PDA)或专门的照相机(例如,单反相机、卡片式相机)等设备,本申请实施例对端侧设备的具体类型不作任何限制。
可理解,云侧设备指的是部署在云环境上的一个或多个计算设备,或者边缘环境中的一个或多个计算设备。例如,云侧设备可以包括云服务器、中心服务器等。以云服务器为例进行说明,云服务器指的是用于提供计算、存储、通信资源的中心计算设备集群,云服务器是具有高度分布式、高度虚拟化等特点的一类服务器,其计算资源是从大量经过整合虚拟化的物理服务器中调度获取的,从节点规模看,这样的虚拟化规模可能是几台、数十台、数百台物理服务器,也可能是跨数据中心的成千上万台实体硬件构建起来的大型云端虚拟资源池。
2、NLP模型更新方法(如图7D-图7F)
下面基于图7A所示的NLP模型部署方式,结合图7D示例性介绍基于第二设备来更新第一设备中的NLP模型的方法。
请参阅图7D,图7D为本申请实施例提供的一种NLP模型的更新示意图。
如图7D所示,第一设备可以接收R,并对R进行分词处理,得到R对应的若干分词。即R_token。第一设备可以将R_token分别输入至NLP模型100和NLP模型300中。NLP模型100中的隐私信息分类模块可以确定R_token对应的隐私信息类别,即pri。pri可以输入到NLP模型100中的加噪模块。NLP模型100和NLP模型300中的编码器可以对R_token进行特征提取,得到表示向量h。一方面,h可以输入到解码器_3中,解码器_3可以基于h进行下游任务预测,并输出预测结果C3。另一方面,h可以输入到加噪模块中。加噪模块可以基于pri对h进行加噪处理,输出表示向量H1。第一设备可以将加噪模块输出的H1发送给第二设备。第二设备接收H1之后,第二设备中的解码器_1可以基于H1进行下游任务预测,并输出预测结果C1。
正如上文所述,在本申请的一些实施例中,编码器还可以对R_token进行处理并得到表示向量h_mid。h_mid可以输入到隐私信息分类模块。隐私信息分类模块可以基于h_mid对R_token进行处理,并输出pri。
在本申请的一些实施例中,如图7D所示,第一设备还可以获取监督信号J1,并将J1发送给第二设备。第二设备接收J1之后,可以将J1与C1进行对比,并计算损失函数,再以最小化该损失函数为目标,来更新解码器_1的参数。第二设备还可以将更新后的解码器_1的参数发送给解码器_3。解码器_3可以基于接收的更新后的解码器_1的参数来更新其自身的参数。
在本申请的一些实施例中,如图7D所示,云侧可以部署有另一解码器——解码器_4。第一设备可以将加噪模块输出的H1发送给解码器_4,解码器_4可以基于H1进行下游任务预测,并输出预测结果C4。解码器_4可以将C4发送给第二设备。第二设备接收C4之后,可以将C4与C1进行对比,并计算损失函数,再以最小化该损失函数为目标,来更新解码器_1的参数。第二设备还可以将更新后的解码器_1的参数发送给解码器_3。解码器_3可以基于接收的更新后的解码器_1的参数来更新其自身的参数。可理解,在一种可能的实现方式中,第二设备不仅可以基于C1和C4来更新解码器_1,还可以基于其他数据集(例如,模型训练时采用的测试集)来更新解码器_1。
可理解,解码器_4可以部署在第二设备中,也可以部署在云侧的其他设备中。解码器_4、解码器_3和解码器_1需要实现的下游任务是相同的。
在本申请的一些实施例中,在NLP模型100包括多个解码器(如图4B所示)的情况下,NLP模型100中的多个解码器均可以部署在云侧设备(例如,第二设备)上。在这种情况下,每一个解码器都可以进行更新,具体可以参考上述解码器_1的更新方法,在此不再赘述。
需要说明的是,通过部分部署在云侧的NLP模型还可以实现对多个端侧设备中的NLP模型的更新。
下面基于图7B所示的NLP模型部署方式,结合图7E示例性介绍一种基于第二设备来更新多个端侧设备中的NLP模型的方法。
如图7E所示,一方面,与图7D所示的NLP模型更新方法相同,第一设备可以接收R,并对R进行分词处理,得到R_token。第一设备可以将R_token分别输入至部署在第一设备中的NLP模型100中的处理单元101和NLP模型300。第一设备中的隐私信息分类模块可以确定pri。pri可以输入到第一设备中的加噪模块。第一设备中的编码器可以对R_token进行特征提取,得到表示向量h。h可以输入到第一设备中的加噪模块。第一设备中的加噪模块可以基于pri对h进行加噪处理,得到表示向量H1。第一设备可以将H1发送给第二设备。第二设备接收H1之后,第二设备中的解码器_1可以基于H1进行下游任务预测,并输出预测结果C1。可理解,h还可以输入到第一设备中的解码器_3中,第一设备中的解码器_3可以基于h进行下游任务预测,并输出预测结果C3。
可理解,第二设备可以基于C1和第一设备发送的J1更新解码器_1的参数,还可以基于C1,以及解码器_4基于H1输出的C4更新解码器_1的参数。该更新解码器_1的参数的具体实现方式可以参考上文,在此不再赘述。并且,根据上文,第二设备还可以将更新后的解码器_1的参数发送给第一设备和第三设备,第一设备和第三设备可以基于该更新后的解码器_1的参数来更新其包含的解码器_3的参数。
正如上文所述,在本申请的一些实施例中,第一设备中的隐私信息分类模块可以基于第一设备中的编码器输出的h_mid对R_token进行处理,并输出pri。
另一方面,与图7D所示的NLP模型更新方法类似,第三设备也可以参与NLP模型的更新。具体地,如图7E所示,第三设备可以接收R_1,并对R_1进行分词处理,得到R_1_token。第三设备可以将R_1_token分别输入至部署在第三设备中的NLP模型100中的处理单元102和NLP模型300。第三设备中的隐私信息分类模块可以确定R_1_token对应的隐私信息类别,即pri_1。pri_1可以输入到第三设备中的加噪模块。第三设备中的编码器可以对R_1_token进行特征提取,得到表示向量h_1。h_1可以输入到第三设备中的加噪模块。第三设备中的加噪模块可以基于pri_1对h_1进行加噪处理,得到表示向量H1_1。第三设备可以将H1_1发送给第二设备。第二设备接收H1_1之后,第二设备中的解码器_1可以基于H1_1进行下游任务预测,并输出预测结果C1_2。可理解,h_1还可以输入到第三设备中的解码器_3中,第三设备中的解码器_3可以基于h_1进行下游任务预测,并输出预测结果C3_2。
类似的,第二设备可以基于C1_2和第三设备发送的监督信号J2更新解码器_1的参数,还可以基于C1,以及解码器_4基于H1_1输出的C4_1更新解码器_1的参数。该更新解码器_1的参数的具体实现方式可以参考上文,在此不再赘述。并且,根据上文,第二设备还可以将更新后的解码器_1的参数发送给第一设备和第三设备,第一设备和第三设备可以基于该更新后的解码器_1的参数来更新其包含的解码器_3的参数。
正如上文所述,在本申请的一些实施例中,第三设备中的隐私信息分类模块可以基于第三设备中的编码器输出的h_1_mid对R_1_token进行处理,并输出pri_1。
在本申请的一些实施例中,第三设备中可以部署有处理单元202。这种情况下,第三设备中的NLP模型的更新方式可以参考下文,在此不展开说明。
下面基于图7C所示的NLP模型部署方式,结合图7F示例性介绍又一种基于第二设备来更新多个端侧设备中的NLP模型的方法。
可理解,图7F所示的NLP模型更新方法与图7E所示的NLP模型更新方法大致相同,其中,处理单元101和处理单元102的相关描述具体可以参考上文。
值得注意的是,图7F所示的NLP模型更新方法与图7E所示的NLP模型更新方法相区别的是,图7F所示的NLP模型更新方法中,解码器_1无需将更新后的解码器_1的参数发送给第一设备和第三设备,但是需要将C1发送给第一设备,并且将C1_2发送给第三设备。可理解,第一设备接收C1后,可以将其作为第一设备的预测结果。第三设备接收C1_2后,可以将其作为第三设备的预测结果。也就是说,图7E所示的NLP模型更新方法中,第一设备的预测结果为C3,第三设备的预测结果为C3_2,而图7F所示的NLP模型更新方法中,第一设备的预测结果为C1,第三设备的预测结果为C1_2。
基于图5A-图5C和图6A-图6B所示的NLP模型,结合图8A-图8F介绍本申请实施例提供的又一种NLP模型的部署方式及更新方法。
1、NLP模型部署方式(如图8A和图8B)
NLP模型100可以部分部署在端侧,部分部署在云侧,而NLP模型300可以完全部署在端侧。
示例性的,如图8A所示,NLP模型200中的编码器、隐私信息分类模块和加噪模块可以部署在端侧的第一设备上,NLP模型200中的解码器_2可以部署在云侧的第二设备上。NLP模型300可以完全部署在第一设备上。
在本申请的一些实施例中,NLP模型200中的编码器和NLP模型300中的编码器可以是同一个编码器(如图8A所示)。当然,NLP模型200中的编码器和NLP模型300中的编码器还可以是不同的编码器,本申请对此不作限制。
在本申请的一些实施例中,NLP模型200可以部分部署在端侧的多个设备上,部分部署在云侧的设备上。
示例性的,如图8B所示,NLP模型200中的处理单元201可以部署在第一设备上,处理单元202可以部署在第三设备上,解码器_2可以部署在第二设备上。第一设备还可以部署有NLP模型300,第三设备也还可以部署有NLP模型300。
示例性的,如图8C所示,NLP模型200中的处理单元201可以部署在第一设备上,处理单元202可以部署在第三设备上,解码器_2可以部署在第二设备上。第一设备和第三设备中不部署NLP模型300。
在本申请的一些实施例中,第三设备中可以部署有处理单元102。
可理解,在NLP模型200包括更多的处理单元的情况下,该更多的处理单元可以部署在其他端侧设备上。类似的,该其他端侧设备也可以部署有NLP模型300。
在本申请的一些实施例中,NLP模型200可以包括多个解码器。该多个解码器可以用于实现不同的下游任务。在这种情况下,NLP模型200中的多个解码器可以均部署在云侧。
2、NLP模型更新方法(如图8D-图8F)
下面基于图8A所示的NLP模型部署方式,结合图8D示例性介绍基于第二设备来更新第一设备中的NLP模型的方法。
请参阅图8D,图8D为本申请实施例提供的又一种NLP模型的更新示意图。
如图8D所示,第一设备可以接收R,并对R进行分词处理,得到R对应的若干分词。即R_token。第一设备可以将R_token分别输入至NLP模型200和NLP模型300中。NLP模型200中的隐私信息分类模块可以确定R_token对应的隐私信息类别,即pri。pri可以输入到NLP模型200中的加噪模块。加噪模块可以基于pri对R_token进行加噪处理,得到R_TOKEN。R_TOKEN可以输入到NLP模型200和NLP模型300中的编码器。一方面,编码器可以对R_TOKEN进行特征提取,输出表示向量H2。第一设备可以将编码器输出的H2发送给第二设备。第二设备接收H2之后,第二设备中的解码器_2可以基于H2进行下游任务预测,并输出预测结果C2。另一方面,编码器可以对R_token进行特征提取,得到表示向量h。h可以输入到解码器_3中,解码器_3可以基于h进行下游任务预测,并输出预测结果C3。
在本申请的一些实施例中,如图8D所示,第一设备还可以获取监督信号J1,并将J1发送给第二设备。第二设备接收J1之后,可以将J1与C2进行对比,并计算损失函数,再以最小化该损失函数为目标,来更新解码器_2的参数。第二设备还可以将更新后的解码器_2的参数发送给解码器_3。解码器_3可以基于接收的更新后的解码器_2的参数来更新其自身的参数。
在本申请的一些实施例中,如图8D所示,云侧可以部署有另一解码器——解码器_4。第一设备可以将编码器输出的H2发送给解码器_4,解码器_4可以基于H2进行下游任务预测,并输出预测结果C4_2。解码器_4可以将C4_2发送给第二设备。第二设备接收C4_2之后,可以将C4_2与C2进行对比,并计算损失函数,再以最小化该损失函数为目标,来更新解码器_2的参数。第二设备还可以将更新后的解码器_2的参数发送给解码器_3。解码器_3可以基于接收的更新后的解码器_2的参数来更新其自身的参数。可理解,在一种可能的实现方式中,第二设备不仅可以基于C2和C4_2来更新解码器_2,还可以基于其他数据集(例如,模型训练时采用的测试集)来更新解码器_2。
可理解,解码器_4可以部署在第二设备中,也可以部署在云侧的其他设备中。解码器_4、解码器_3和解码器_2需要实现的下游任务是相同的。
在本申请的一些实施例中,在NLP模型200包括多个解码器(如图5B所示)的情况下,NLP模型200中的多个解码器均可以部署在云侧设备(例如,第二设备)上。在这种情况下,每一个解码器都可以进行更新,具体可以参考上述解码器_2的更新方法,在此不再赘述。
需要说明的是,通过部分部署在云侧的NLP模型还可以实现对多个端侧设备中的NLP模型的更新。
下面基于图8B所示的NLP模型部署方式,结合图8E示例性介绍一种基于第二设备来更新多个端侧设备中的NLP模型的方法。
如图8E所示,一方面,与图8D所示的NLP模型更新方法相同,第一设备可以接收R,并对R进行分词处理,得到R_token。第一设备可以将R_token分别输入至部署在第一设备中的NLP模型200中的处理单元201和NLP模型300中。第一设备中的隐私信息分类模块可以确定pri。pri可以输入到第一设备中的加噪模块。第一设备中的加噪模块可以基于pri对R_token进行加噪处理,得到R_TOKEN。R_TOKEN可以输入到第一设备中的编码器。一方面,第一设备中的编码器可以对R_TOKEN进行特征提取,得到表示向量H2。第一设备可以将H2发送给第二设备。第二设备接收H2之后,第二设备中的解码器_2可以基于H2进行下游任务预测,并输出预测结果C2。另一方面,编码器可以对R_token进行特征提取,得到表示向量h。h可以输入到解码器_3中,第一设备中的解码器_3可以基于h进行下游任务预测,并输出预测结果C3。
可理解,第二设备可以基于C2和第一设备发送的J1更新解码器_2的参数,还可以基于C2,以及解码器_4基于H2输出的C4_2更新解码器_2的参数。该更新解码器_2的参数的具体实现方式可以参考上文,在此不再赘述。并且,根据上文,第二设备还可以将更新后的解码器_2的参数发送给第一设备和第三设备,第一设备和第三设备可以基于该更新后的解码器_2的参数来更新其包含的解码器_3的参数。
另一方面,与图8D所示的NLP模型更新方法类似,第三设备也可以参与NLP模型的更新。具体地,如图8E所示,第三设备可以接收R,并对R进行分词处理,得到R_1_token。第三设备可以将R_1_token分别输入至部署在第三设备中的NLP模型200中的处理单元202和NLP模型300中。第三设备中的隐私信息分类模块可以确定pri_1。pri_1可以输入到第三设备中的加噪模块。第三设备中的加噪模块可以基于pri_1对R_1_token进行加噪处理,得到R_1_TOKEN。R_1_TOKEN可以输入到第三设备中的编码器。一方面,第三设备中的编码器可以对R_1_TOKEN进行特征提取,得到表示向量H2_1。第三设备可以将H2_1发送给第二设备。第二设备接收H2_1之后,第二设备中的解码器_2可以基于H2_1进行下游任务预测,并输出预测结果C2_2。另一方面,编码器可以对R_1_token进行特征提取,得到表示向量h_1。h_1可以输入到第三设备中的解码器_3中,第三设备中的解码器_3可以基于h_1进行下游任务预测,并输出预测结果C3_2。
类似的,第二设备可以基于C2和第三设备发送的J2更新解码器_2的参数,还可以基于C2,以及解码器_4基于H2_1输出的C4_3更新解码器_2的参数。该更新解码器_2的参数的具体实现方式可以参考上文,在此不再赘述。并且,根据上文,第二设备还可以将更新后的解码器_2的参数发送给第一设备和第三设备,第一设备和第三设备可以基于该更新后的解码器_2的参数来更新其包含的解码器_3的参数。
在本申请的一些实施例中,第三设备中可以部署有处理单元102。这种情况下,第三设备中的NLP模型的更新方式可以参考上文,在此不展开说明。
下面基于图8C所示的NLP模型部署方式,结合图8F示例性介绍又一种基于第二设备来更新多个端侧设备中的NLP模型的方法。
可理解,图8F所示的NLP模型更新方法与图8E所示的NLP模型更新方法大致相同,其中,处理单元201和处理单元202的相关描述具体可以参考上文。
值得注意的是,图8F所示的NLP模型更新方法与图8E所示的NLP模型更新方法相区别的是,图8F所示的NLP模型更新方法中,解码器_2无需将更新后的解码器_2的参数发送给第一设备和第三设备,但是需要将C2发送给第一设备,并且将C2_2发送给第三设备。可理解,第一设备接收C2后,可以将其作为第一设备的预测结果。第三设备接收C2_2后,可以将其作为第三设备的预测结果。也就是说,图8E所示的NLP模型更新方法中,第一设备的预测结果为C3,第三设备的预测结果为C3_2,而图8F所示的NLP模型更新方法中,第一设备的预测结果为C2,第三设备的预测结果为C2_2。
下面结合图9-图12说明上述实施例的具体实现方式。
根据上文,通过部分部署在云侧的NLP模型可以实现对第一设备中的NLP模型的更新。下面分别结合图9和图10具体介绍这种NLP模型更新方法。
请参阅图9,图9为本申请实施例提供的一种NLP模型更新方法的流程图。该方法可以包括但不限于以下步骤:
S901:第一设备对R进行分词处理,得到R_token。R为文本信息。R_token为R对应的若干token。
在本申请的一些实施例中,用户可以触发第一设备可以对R进行分词处理。在本申请的又一些实施例中,第一设备获取R之后,可以自行对R进行分词处理。
示例性的,如图3C所示,端侧设备可以检测到作用于确定控件3012上的用户操作。响应于该用户操作,端侧设备可以首先对复制内容进行分词处理,再利用NLP模型获取复制内容中的时间和地点。
可理解,R可以包括单句文本,还可以包括多句文本。
在本申请的一些实施例中,单句文本可以指的是一个句子。这一个句子可以包含标点符号,也可以不包含标点符号。在本申请的又一些实施例中,单句文本指的是包含标点符号的一段文本。这一段文本中的内容往往相互关联。
在本申请的一些实施例中,多句文本可以由多个单句文本组成。该多个单句文本并不一定相关。
在R为单句文本的情况下,第一设备可以对R进行分词处理,得到R对应的若干token,即R_token。也就是说,经过分词处理后,R变成了若干token。而在R为多句文本的情况下,第一设备可以对R包括的每一个单句文本分别进行分词处理,得到R_token。这种情况下,R_token可以包括R中的每一个单句文本对应的若干token。
第一设备可以通过多种分词方式来对R进行分词处理,从而得到不同形式的token。可理解,第一设备可以通过分词工具来对文本进行分词处理。分词工具可以为分词器(tokenizer),tokenizer的相关描述可以参考相关技术文档,本申请不展开说明。
在本申请的一些实施例中,第一设备可以以字为单位来对R进行分词处理。这种情况下,第一设备得到的token为字。在本申请的一些实施例中,第一设备可以以词语为单位来对R进行分词处理。具体的,第一设备可以首先确定R中包含的词语,并将这些词语拆分出来。每一个词语为一个token,而R中剩下的未被拆分出来的若干部分各自作为一个token。
示例性的,R可以为“明天去华清池玩”。第一设备可以以字为单位对“明天去华清池玩”进行分词处理,得到7个token。这7个token为:“明”、“天”、“去”、“华”、“清”、“池”和“玩”。即R_token=[“明”,“天”,“去”,“华”,“清”,“池”,“玩”]。
示例性的,R可以为“明天去华清池玩”。第一设备可以以词语为单位对“明天去华清池玩”进行分词处理。首先,第一设备可以将“明天去华清池玩”中包含的词语划分出来,得到“明天”和“华清池”这2个token,然后再将剩下的两部分(即“去”和“玩”)各自作为1个token。第一设备最终可以得到4个token。这4个token为:“明天”、“去”、“华清池”和“玩”。即R_token=[“明天”,“去”,“华清池”,“玩”]。
在本申请的一些实施例中,第一设备还可以基于预定义词表来确定token。该预定义词表可以包含若干预先定义的token。例如,预定义词表中可以包含若干地名、街道名和学校名等。
示例性的,预定义词表中可以包括“大雁塔”、“小雁塔”和“大明宫”等。
需要说明的是,为了便于理解和表示,R_token中的token的顺序可以与R一致。也就是说,R_token中的token按顺序组合起来就是R。正如上述示例,R为“明天去华清池玩”,R_token=[“明”,“天”,“去”,“华”,“清”,“池”,“玩”]。这种情况下,R_token中的第1个token即为R的第1个字,R_token中的第2个token即为R的第2个字,以此类推,R_token中的第i个token即为R的第i个字。在该示例中,i为不大于7的正整数。正如上述示例,R为“明天去华清池玩”,R_token=[“明天”,“去”,“华清池”,“玩”]。在这种情况下,R_token中的token按顺序可以组成R,即“明天去华清池玩”。
在本申请的一些实施例中,在R包括多句文本的情况下,R中的每一个单句文本对应的token的数量可能并不完全相同。为了便于描述,本申请将R所包括的若干单句文本中对应的token数量最多的文本记为SEN1,并将SEN1对应的token的数量记为L1。在上述情况下,第一设备可以以SEN1对应的token数量为标准,将其他单句文本对应的token数量补齐。也就是说,对于R包括的除SEN1之外的每一个单句文本,第一设备可以在其对应的原有token的基础上,添加token,使得添加token之后其对应的token数量为L1。
可理解,第一设备可以通过多种方式补齐R中除SEN1之外的每一个单句文本对应的token数量。
在本申请的一些实施例中,第一设备可以通过特殊字符来表示一个token。例如,第一设备可以用一个占位符表示一个token。可理解,占位符可以为罗马数字、希腊字母等特殊字符,还可以为特殊词语,本申请对此不作限制。例如,占位符可以为padding。
在本申请的一些实施例中,对于R包括的除SEN1之外的每一个单句文本,第一设备可以直接在其对应的原有token的后面添加token,使得添加token之后的单句文本对应的token数量为L1。在本申请的一些实施例中,对于R包括的除SEN1之外的每一个单句文本,第一设备还可以直接在其对应的原有token的前面添加token,使得添加token之后的单句文本对应的token数量为L1。当然,对于R包括的除SEN1之外的每一个单句文本,第一设备还可以在其对应的原有token中的任意两个token之间添加一个或多个token,使得添加token之后的单句文本对应的token数量为L1。
以R中对应的token数量最少的单句文本为例,对上述补齐token的过程进行说明。为了便于描述,本申请将R中对应的token数量最少的单句文本记为SEN2,并将SEN2对应的token的数量记为L2。具体地,第一设备可以确定需要添加的token的数量为L2-L1,并在SEN2对应的原有token中的任意一个或多个token之后/前添加一个或多个token,并且添加的总的token的数量为L2-L1。
示例性的,R包括“明天去华清池玩”和“坐333路公交车,并在华清池站下车”。其中,SEN1为“坐公交333路,并在华清池站下车”,SEN2为“明天去华清池玩”。第一设备可以分别对SEN1和SEN2进行分词处理,并得到SEN1对应的8个token和SEN2对应的4个token。可理解,L1=8,L2=4。SEN1对应的8个token为:“坐”、“333路”、“公交车”、“,”、“并”、“在”、“华清池站”和“下车”。SEN2对应的4个token为:“明天”、“去”、“华清池”和“玩”。由于L1-L2=4,第一设备可以确定需要对SEN2添加的token数量为4。第一设备可以直接在SEN2对应的原有token的后面添加4个占位符。添加这4个占位符之后,SEN2对应的8个token为:“明天”、“去”、“华清池”、“玩”、“padding”、“padding”、“padding”和“padding”。
可理解,第一设备得到R_token之后,可以将R_token输入到编码器和隐私信息分类模块。
S902:第一设备中的编码器对R_token进行特征抽取,得到表示向量h。
可理解,第一设备对R进行分词处理,并得到R_token之后,第一设备中的编码器可以对R_token进行特征抽取,得到表示向量h。可理解,表示向量h可以包括R_token中每一个token对应的表示向量。即表示向量包括R对应的若干token所对应的表示向量。表示向量h为(B,L1,D)维向量。其中,B表示R包括的单句文本的数量。L1表示R包括的单句文本对应的token的数量。D表示每一个token对应的表示向量的维数。
可理解,分词方式不同,编码器最终得到的表示向量h所包括的token对应的表示向量的数量也不同。需要说明的是,token对应的表示向量的表现形式可以为数字、数组等,本申请对此不作限制。例如,365420、2589、[[1.2,-0.2],[0.9,-0.7]]等。可理解,token对应的表示向量的维数可以为3维,还可以为其他维数,本申请对token对应的表示向量的维数不作限制。
示例性的,R_token可以为:“明”、“天”、“去”、“华”、“清”、“池”和“玩”。编码器可以对上述每一个token进行特征提取,分别得到h_明、h_天、h_去、h_华、h_清、h_池和h_玩,从而得到表示向量h。h=[h_明,h_天,h_去,h_华,h_清,h_池,h_玩]。其中,h_明=[0.1,0.2,-0.1],h_天=[0.3,0.1,-0.2],h_去=[0.5,0.6,0.1],h_华=[0.1,0.3,-0.3],h_清=[0.3,0.2,0.3],h_池=[0.1,0.2,0.5],h_玩=[0.4,0.2,-0.1]。
示例性的,R_token可以为:“明天”、“去”、“华清池”和“玩”。编码器可以对上述每一个token进行特征提取,分别得到h_明天、h_去、h_华清池和h_玩,从而得到表示向量h。h=[h_明天,h_去,h_华清池,h_玩]。其中,h_明天=[0.4,0.3,-0.3],h_去=[0.5,0.6,0.1],h_华清池=[0.5,0.7,0.5],h_玩=[0.4,0.2,-0.1]。
可理解,编码器得到表示向量h之后,可以将表示向量h输入到加噪模块和第一设备中的解码器(例如,解码器_3)。
S903:第一设备中的隐私信息分类模块确定pri。pri包括R_token对应的隐私信息类别。
可理解,第一设备中的隐私信息分类模块的输入可以为R对应的若干token。即R_token。隐私信息分类模块可以对R_token进行分析,确定其中每一个token对应的信息类别。若token对应的信息类别属于隐私信息类别,则隐私信息分类模块可以确定该token表示的是隐私信息,该token对应的隐私信息类别即为该token对应的信息类别。若token对应的信息类别不属于隐私信息类别,则隐私信息分类模块可以确定该token表示的不是隐私信息,该token对应的隐私信息类别为非隐私信息。隐私信息分类模块确定R_token所对应的隐私信息类别之后,可以得到pri。pri可以理解为R_token中每一个token所对应的隐私信息类别的集合。
可理解,隐私信息分类模块还可以通过其他方式表示非隐私信息这一隐私信息类别。这里所提及的其他方式也可以理解为非隐私信息的标识。即对于未表示隐私信息的token而言,其对应的隐私信息类别还可以用其他表示该token为非隐私信息的标识来表示。该标识可以为数字、词语等,本申请对此不作限制。
例如,隐私信息分类模块可以通过FALSE表示非隐私信息这一隐私信息类别。也就是说,若某一token对应的信息类别不为隐私信息类别,则隐私信息分类模块可以确定该token对应的隐私信息类别为FALSE。再例如,隐私信息分类模块可以通过0表示非隐私信息这一隐私信息类别。也就是说,若某一token对应的信息类别不为隐私信息类别,则隐私信息分类模块可以确定该token对应的隐私信息类别为0。
需要说明的是,信息类别的范围比隐私信息类别的范围更大。信息类别和隐私信息类别可以根据实际需要进行设置,本申请对此不作限制。例如,信息类别可以包括人名、时间、地点、机构、货币、身份证号、电话号码和标点符号等。例如,隐私信息类别可以包括非隐私信息、人名、时间、地点、身份证号和电话号码等。
示例性的,R_token=[“明”,“天”,“去”,“华”,“清”,“池”,“玩”]。隐私信息分类模块可以确定上述每一个token对应的信息类别。“明”对应的信息类别为时间,“天”对应的信息类别为时间,“去”对应的信息类别为动作,“华”对应的信息类别为地点,“清”对应的信息类别为地点,“池”对应的信息类别为地点,“玩”对应的信息类别为动作。由于隐私信息类别包括时间和地点,所以“明”、“天”、“华”、“清”和“池”对应的隐私信息类别为这些token各自对应的信息类别。也就是说,隐私信息分类模块可以确定“明”和“天”对应的隐私信息类别均为时间,“华”、“清”和“池”对应的隐私信息类别均为地点。由于隐私信息类别不包括动作,所以“去”、“玩”对应的隐私信息类别为非隐私信息。可理解,隐私信息分类模块得到的pri为[时间,时间,非隐私信息,地点,地点,地点,非隐私信息]。
示例性的,R_token=[“坐”,“333路”,“公交车”,“,”,“并”,“在”,“华清池站”,“下车”]。隐私信息分类模块可以确定上述每一个token对应的信息类别。“坐”对应的信息类别为动作,“333路”对应的信息类别为公交名称,“公交车”对应的信息类别为交通工具,“,”对应的信息类别为标点符号,“并”对应的信息类别为连词,“在”对应的信息类别为介词,“华清池站”对应的信息类别为地点,“下车”对应的信息类别为动作。由于隐私信息类别包括公交名称和地点,所以“333路”和“华清池站”对应的隐私信息类别为这些token各自对应的信息类别。也就是说,隐私信息分类模块可以确定“333路”对应的隐私信息类别为公交名称,“华清池站”对应的隐私信息类别为地点。由于隐私信息类别不包括动作、交通工具、标点符号、连词和介词,所以“坐”、“公交车”、“,”、“并”、“在”和“下车”对应的隐私信息类别为非隐私信息。可理解,隐私信息分类模块得到的pri为[非隐私信息,公交名称,非隐私信息,非隐私信息,非隐私信息,非隐私信息,地点,非隐私信息]。
需要说明的是,为了便于理解和表示,pri中的隐私信息类别的顺序可以与R_token中的token的顺序一致,即pri中的第i个隐私信息类别是R_token中第i个token对应的隐私信息类别。i为正整数,i不大于R_token中的token总数。正如上述示例,R_token=[“明”,“天”,“去”,“华”,“清”,“池”,“玩”],pri=[时间,时间,非隐私信息,地点,地点,地点,非隐私信息],pri中的第i个隐私信息类别是R_token中的第i个token对应的隐私信息类别。其中,i为不大于7的正整数。
可理解,隐私信息分类模块确定pri之后,可以将pri输入到加噪模块。
S904:第一设备中的加噪模块基于pri和不同隐私信息类别对应的加噪强度,对表示向量h进行加噪处理,得到加噪处理后的表示向量H1。
第一设备中的加噪模块可以基于pri和不同隐私信息类别对应的加噪强度,确定R_token中的待加噪token,并对表示向量h所包括的待加噪token对应的表示向量进行加噪处理,并得到加噪处理后的表示向量H1。可理解,表示向量H1和表示向量h的维数相同。
可理解,pri可以包括R_token中每一个token对应的隐私信息类别。pri中的隐私信息类别与R_token之间存在对应关系。根据上文,pri中的第i个隐私信息类别是R_token中的第i个token对应的隐私信息类别。因此,pri中的隐私信息类别的总数与R_token中的token的总数相同。pri中的某一种隐私信息类别的数量与R_token中的这种隐私信息类别对应的token数量相同。
具体地,针对pri中的任意一种隐私信息类别,加噪模块可以确定该隐私信息类别对应的加噪强度与pri包括的该隐私信息类别的数量的乘积,并基于该乘积确定该隐私信息类别对应的待加噪token数量。类似的,加噪模块可以采用上述方式确定pri中每一种隐私信息类别对应的待加噪数量。针对R_token中的任意一种隐私信息类别对应的token,加噪模块可以在该任意一种隐私信息类别对应的token中选择相应待加噪token数量的token。可理解,该相应待加噪token数量指的是pri中的这一种隐私信息类别对应的待加噪token数量。该选择的token即为这一种隐私信息类别对应的待加噪token。类似的,加噪模块可以采用上述方式确定pri中每一种隐私信息类别对应的待加噪token。加噪模块可以对pri中所有隐私信息类别对应的待加噪token所对应的表示向量进行加噪处理,并得到加噪处理后的表示向量H1。
可理解,pri包括的任意一种隐私信息类别的数量即为R_token中的该隐私信息类别对应的token的数量。
可理解,每一种隐私信息类别对应的加噪强度的范围为(0,1)。每一种隐私信息类别对应的加噪强度可以根据实际需要进行设置,本申请对此不作限制。在本申请的一些实施例中,非隐私信息对应的加噪强度小于其他隐私信息类别对应的加噪强度。
在本申请的一些实施例中,若pri中的某一种隐私信息类别对应的加噪强度与pri中这一种隐私信息类别的数量的乘积为整数,则加噪模块可以确定该乘积为这一种隐私信息类别对应的待加噪token的数量。若pri中的某一种隐私信息类别对应的加噪强度与pri中这一种隐私信息类别的数量的乘积不为整数,则加噪模块基于进一法对该乘积取整,并确定该取整后所得的整数为这一种隐私信息类别对应的待加噪token的数量。
示例性的,pri可以为[时间,时间,非隐私信息,地点,地点,地点,非隐私信息]。其中,时间对应的加噪强度为0.5,地点对应的加噪强度为0.5,非隐私信息对应的加噪强度为0.2。在该pri中,时间这一种隐私信息类别的数量为2,地点这一种隐私信息类别的数量为3,非隐私信息这一种隐私信息类别的数量为2。由于0.5*2=1,则加噪模块可以确定时间这一种隐私信息类别对应的待加噪token的数量为1。由于0.5*3=1.5,则加噪模块可以基于进一法对1.5取整,得到2,并确定地点这一种隐私信息类别对应的待加噪token的数量为2。由于0.2*2=0.4,则加噪模块可以基于进一法对0.4取整,得到1,并确定非隐私信息这一种隐私信息类别对应的待加噪token的数量为1。
在本申请的一些实施例中,若pri中的某一种隐私信息类别对应的加噪强度与pri中这一种隐私信息类别的数量的乘积为整数,则加噪模块可以确定该乘积为这一种隐私信息类别对应的待加噪token的数量。对于pri中的除去非隐私信息后的其他隐私信息类别而言,若该其他隐私信息中的某一种隐私信息类别对应的加噪强度与pri中这一种隐私信息类别的数量的乘积不为整数,则加噪模块可以基于进一法对该乘积取整,并确定该取整后所得的整数为这一种隐私信息类别对应的待加噪token的数量。然而,对于pri中的非隐私信息而言,若非隐私信息对应的加噪强度与pri中这一种隐私信息类别的数量的乘积不为整数,则加噪模块可以基于去尾法对该乘积取整,并确定该取整后所得的整数为非隐私信息对应的待加噪token的数量。
示例性的,pri可以为[时间,时间,非隐私信息,地点,地点,地点,非隐私信息]。其中,时间对应的加噪强度为0.5,地点对应的加噪强度为0.5,非隐私信息对应的加噪强度为0.2。在该pri中,时间这一种隐私信息类别的数量为2,地点这一种隐私信息类别的数量为3,非隐私信息这一种隐私信息类别的数量为2。由于0.5*2=1,则加噪模块可以确定时间这一种隐私信息类别对应的待加噪token的数量为1。由于0.5*3=1.5,则加噪模块可以基于进一法对1.5取整,得到2,并确定地点这一种隐私信息类别对应的待加噪token的数量为2。由于0.2*2=0.4,则加噪模块可以基于去尾法对0.4取整,得到0,并确定非隐私信息这一种隐私信息类别对应的待加噪token的数量为0。
在本申请的一些实施例中,对于实现不同NLP任务的NLP模型而言,其采用的同一种隐私信息类别所对应的加噪强度可以相同,也可以不同。
可理解,NLP模型100采用的隐私信息类别对应的加噪强度可以根据NLP模型100的下游任务确定。例如,若NLP模型100的下游任务与某一隐私信息类别相关,则该隐私信息类别对应的加噪强度可以大于其他隐私信息类别对应的加噪强度。再例如,若NLP模型100的下游任务与某一隐私信息类别相关,则该隐私信息类别对应的加噪强度可以大于所有隐私信息类别对应的加噪强度的平均值。
示例性的,NLP模型100需要实现的下游任务可以为命名实体识别。而命名实体识别具体可以包括时间实体识别、地点实体识别,还可以包括日期实体识别等。第一设备获取的R可以为“11月11日晚上八点去超市”,分词处理后可得:R_token=[“11月11日”,“晚上八点”,“去”,“超市”]。R_token对应的隐私信息类别可以包括时间、地点、日期和非隐私信息。则隐私信息分类模块可以确定pri为[日期,时间,非隐私信息,地点]。在NLP模型100需要实现的下游任务为时间实体识别和地点实体识别的情况下,日期、时间、非隐私信息和地点这4种隐私信息类别对应的加噪强度可以分别为0.4、0.8、0.2和0.8。而在NLP模型100需要实现的下游任务为日期实体识别的情况下,日期、时间、非隐私信息和地点这4种隐私信息类别对应的加噪强度可以分别为0.6、0.3、0.2和0.3。
在本申请的一些实施例中,针对R_token中的任意一种隐私信息类别对应的token,加噪模块可以在该任意一种隐私信息类别对应的token中随机选择相应待加噪token数量的token。并且,该随机选择的待加噪token的数量与该隐私信息类别对应的待加噪token数量相同。
示例性的,R可以为“明天去华清池玩”,而R_token可以为:“明”、“天”、“去”、“华”、“清”、“池”和“玩”,pri可以为[时间,时间,非隐私信息,地点,地点,地点,非隐私信息]。时间对应的加噪强度为0.5,地点对应的加噪强度为0.5,非隐私信息对应的加噪强度为0.2。根据上述示例,可得时间、地点和非隐私信息这三种隐私信息类别对应的待加噪token的数量分别为1、2和1。可理解,时间这一种隐私信息类别对应的token可以包括“明”和“天”,地点这一种隐私信息类别对应的token可以包括“华”、“清”和“池”,非隐私信息这一种隐私信息类别对应的token可以包括“去”和“玩”。加噪模块可以在“明”和“天”中随机选择1个token,并将其作为时间这一种隐私信息类别对应的待加噪token。若加噪模块在“明”和“天”中随机选择的1个token为“明”,则“明”即为时间这一种隐私信息类别对应的待加噪token。类似的,加噪模块可以在“华”、“清”和“池”中随机选择2个token,并将其作为地点这一种隐私信息类别对应的待加噪token。若加噪模块在“华”、“清”和“池”中随机选择的2个token为“华”和“池”,则“华”和“池”即为地点这一种隐私信息类别对应的待加噪token。类似的,加噪模块可以在“去”和“玩”中随机选择1个token,并将其作为非隐私信息这一种隐私信息类别对应的待加噪token。若加噪模块在“去”和“玩”中随机选择的1个token为“玩”,则“玩”即为非隐私信息这一种隐私信息类别对应的待加噪token。则加噪模块可以确定待加噪token可以包括:“明”、“华”、“池”和“玩”。
为了便于描述,本申请将除去非隐私信息后的其他隐私信息类别中的任意一种隐私信息类别记为Q。
在本申请的一些实施例中,针对R_token中的Q对应的token,若Q在pri中的位置是完全不连续的,则加噪模块可以在Q对应的token中随机选择相应待加噪token数量的token。然而,若Q在pri中的位置不是完全不连续的,并且Q对应的待加噪token的数量大于1,则加噪模块可以在pri中连续的若干个Q对应的token中随机选择1个token作为Q对应的待加噪token之一,然后再在其他未选择的Q对应的token中随机选择剩下的待加噪token。类似的,加噪模块也可以采取这种方式确定非隐私信息对应的待加噪token。
在本申请的一些实施例中,加噪模块可以分别采取上述两种方式确定非隐私信息对应的待加噪token和Q对应的待加噪token。
示例性的,R可以为“明天去华清池玩,还是去大明宫玩”,而R_token可以为:“明”、“天”、“去”、“华”、“清”、“池”、“玩”、“,”、“还是”、“去”、“大”、“明”、“宫”和“玩”,pri可以为[时间,时间,非隐私信息,地点,地点,地点,非隐私信息,非隐私信息,非隐私信息,非隐私信息,地点,地点,地点,非隐私信息]。在pri中,时间这一种隐私信息类别的数量为2,地点这一种隐私信息类别的数量为6,非隐私信息这一种隐私信息类别的数量为6。时间对应的加噪强度为0.5,地点对应的加噪强度为0.5,非隐私信息对应的加噪强度为0.2。由于0.5*2=1,则加噪模块可以确定时间这一种隐私信息类别对应的待加噪token的数量为1。由于0.5*6=3,则加噪模块可以确定地点这一种隐私信息类别对应的待加噪token的数量为3。由于0.2*6=1.2,则加噪模块可以基于进一法对1.2取整,得到2,并确定非隐私信息这一种隐私信息类别对应的待加噪token的数量为2。可理解,时间这一种隐私信息类别对应的token可以包括“明”和“天”,地点这一种隐私信息类别对应的token可以包括“华”、“清”、“池”、“大”、“明”和“宫”,非隐私信息这一种隐私信息类别对应的token可以包括“去”、“玩”、“,”、“还是”、“去”和“玩”。加噪模块可以在“明”和“天”中随机选择1个token,并将其作为时间这一种隐私信息类别对应的待加噪token。若加噪模块在“明”和“天”中随机选择的1个token为“明”,则“明”即为时间这一种隐私信息类别对应的待加噪token。类似的,加噪模块可以在“华”、“清”、“池”、“大”、“明”和“宫”中选择3个token,并将其作为地点这一种隐私信息类别对应的待加噪token。由于pri中地点这一隐私信息类别不是完全不连续的,加噪模块可以在连续的“华”、“清”和“池”中随机选择1个token作为地点这一隐私信息类别对应的待加噪token之一,再在连续的“大”、“明”和“宫”中随机选择1个token作为地点这一隐私信息类别对应的待加噪token之一,最后在其中未被选择的token中再随机选择剩下的1个token。若加噪模块在“华”、“清”和“池”中随机选择的1个token为“华”,在“大”、“明”和“宫”中随机选择的1个token为“明”,而在“清”、“池”、“大”和“宫”中随机选择的1个token为“大”,则“华”、“大”和“明”即为地点这一隐私信息类别对应的待加噪token。类似的,加噪模块可以在“去”、“玩”、“,”、“还是”、“去”和“玩”中随机选择2个token,并将其作为非隐私信息这一种隐私信息类别对应的待加噪token。若加噪模块在“去”、“玩”、“,”、“还是”、“去”和“玩”中随机选择的2个token为第一个“去”和“还是”,则该“去”和“还是”即为非隐私信息这一种隐私信息类别对应的待加噪token。所以加噪模块可以确定待加噪token可以包括:“明”、“去”、“华”、“还是”、“大”和“明”。
在本申请的一些实施例中,加噪模块可以对待加噪token对应的表示向量进行加噪处理指的是:加噪模块可以将每一个待加噪token对应的表示向量替换为固定向量。为了便于描述,本申请将该固定向量记为h_mask。可理解,h_mask的维数与token对应的表示向量的维数相同,即h_mask的维数为D。h_mask可以根据实际需要进行设置,本申请对此不作限制。例如,若D=3,h_mask可以为[0.1,0.2,0.3]。
示例性的,R_token可以为:“明”、“天”、“去”、“华”、“清”、“池”和“玩”。编码器可以对这些token进行特征提取,并得到表示向量h。h=[h_明,h_天,h_去,h_华,h_清,h_池,h_玩]。其中,h_明=[0.1,0.2,-0.1],h_天=[0.3,0.1,-0.2],h_去=[0.5,0.6,0.1],h_华=[0.1,0.3,-0.3],h_清=[0.3,0.2,0.3],h_池=[0.1,0.2,0.5],h_玩=[0.4,0.2,-0.1]。基于上述示例,加噪模块可以确定待加噪token包括:“明”、“华”、“池”和“玩”。加噪模块可以将这些待加噪token对应的表示向量替换为h_mask,就可以得到加噪处理后的表示向量H1。H1=[h_mask,h_天,h_去,h_mask,h_清,h_mask,h_mask]。其中,h_mask可以为[0.1,0.2,0.3]。
在本申请的一些实施例中,加噪模块可以对待加噪token对应的表示向量的加噪处理指的是:加噪模块可以将每一个待加噪token对应的表示向量中的部分特征替换为固定向量中的部分特征。可理解,该部分特征的具体数量为小于D的正整数。也就是说,每一个待加噪token对应的表示向量中替换的特征的数量为小于D的正整数。该部分特征的具体数量可以根据实际需要进行设置,本申请对此不作限制。
可理解,向量可以理解为一行或一列的矩阵,向量的特征类似于矩阵的元素。向量的特征的个数可以理解为向量的维数。比如,(a1,a2,a3)这个向量有3个特征:a1,a2,a3。其中,ak是这个向量的第k个特征。这个向量的维数是3维。
在一种可能的实现方式中,加噪模块可以将每一个待加噪token对应的表示向量中的部分特征替换为固定向量中相同位置的部分特征。也就是说,加噪模块可以将每一个待加噪token对应的表示向量中的第k个特征替换为固定向量中的第k个特征。可理解,k为不大于一个待加噪token的维数的正整数。
示例性的,h=[h_明,h_天,h_去,h_华,h_清,h_池,h_玩]。其中,h_明=[0.1,0.2,-0.1],h_天=[0.3,0.1,-0.2],h_去=[0.5,0.6,0.1],h_华=[0.1,0.3,-0.3],h_清=[0.3,0.2,0.3],h_池=[0.1,0.2,0.5],h_玩=[0.4,0.2,-0.1]。基于上述示例,加噪模块可以确定待加噪token包括:“明”、“华”、“池”和“玩”。加噪模块可以将这些待加噪token对应的表示向量中的第1个特征和第2个特征分别替换为h_mask中的第1个特征和第2个特征,从而得到加噪处理后的表示向量H1。H1=[H_明,h_天,h_去,H_华,h_清,H_池,H_玩]。其中,h_mask可以为[1,2,3]。在这种情况下,H_明=[1,2,-0.1],H_华=[1,2,-0.3],H_池=[1,2,0.5],H_玩=[1,2,-0.1]。
在本申请的一些实施例中,加噪模块可以对待加噪token对应的表示向量进行加噪处理指的是:加噪模块可以将每一个待加噪token对应的表示向量中的部分特征替换为固定数值。
在一种可能的实现方式中,加噪模块可以随机选择每一个待加噪token对应的表示向量中的部分特征,并将其替换为固定数值。例如,在每一个待加噪token对应的表示向量均为3维向量的情况下,加噪模块可以随机选择每一个待加噪token对应的表示向量中的2个特征,并将随机选择的2个特征分别替换为1和2。
示例性的,h=[h_明,h_天,h_去,h_华,h_清,h_池,h_玩]。其中,h_明=[0.1,0.2,-0.1],h_天=[0.3,0.1,-0.2],h_去=[0.5,0.6,0.1],h_华=[0.1,0.3,-0.3],h_清=[0.3,0.2,0.3],h_池=[0.1,0.2,0.5],h_玩=[0.4,0.2,-0.1]。基于上述示例,加噪模块可以确定待加噪token包括:“明”、“华”、“池”和“玩”。加噪模块可以将h_明中的2个特征随机替换为1和2。比如,加噪模块可以将h_明中的0.1和0.2分别替换为1和2。类似的,加噪模块可以将h_华、h_池和h_玩中每个表示向量中的2个特征均随机替换为1和2。比如,加噪模块可以将h_华中的-0.3和0.3分别替换为1和2,可以将h_池中的0.1和0.5分别替换为1和2,还可以将h_玩中的-0.1和0.4分别替换为1和2。经过上述处理后,加噪模块可以得到H_明、H_华、H_池和H_玩。其中,H_明=[1,2,-0.1],H_华=[0.1,2,1],H_池=[1,0.2,2],H_玩=[2,0.2,1]。相应的,加噪模块可以得到加噪处理后的表示向量H1。H1=[H_明,h_天,h_去,H_华,h_清,H_池,H_玩]。
在一种可能的实现方式中,加噪模块可以在每一个待加噪token对应的表示向量中选择固定位置的部分特征,并将其替换为固定数值。例如,在每一个待加噪token对应的表示向量均为3维向量的情况下,加噪模块可以选择每一个待加噪token对应的表示向量中的第1个特征和第2个特征,并将其分别替换为1和4。
示例性的,h=[h_明,h_天,h_去,h_华,h_清,h_池,h_玩]。其中,h_明=[0.1,0.2,-0.1],h_天=[0.3,0.1,-0.2],h_去=[0.5,0.6,0.1],h_华=[0.1,0.3,-0.3],h_清=[0.3,0.2,0.3],h_池=[0.1,0.2,0.5],h_玩=[0.4,0.2,-0.1]。基于上述示例,加噪模块可以确定待加噪token包括:“明”、“华”、“池”和“玩”。加噪模块可以将h_明中的第1个特征和第2个特征替换为1和4。比如,加噪模块可以将h_明中的0.1和0.2分别替换为1和2。类似的,加噪模块可以将h_华、h_池和h_玩中每一个表示向量中的第1个特征和第2个特征均分别替换为1和4。比如,加噪模块可以将h_华中的0.1和0.3分别替换为1和4,可以将h_池中的0.1和0.2分别替换为1和4,还可以将h_玩中的0.4和0.2分别替换为1和4。经过上述处理后,加噪模块可以得到H_明、H_华、H_池和H_玩。其中,H_明=[1,4,-0.1],H_华=[1,4,-0.3],H_池=[1,4,0.5],H_玩=[1,4,-0.1]。相应的,加噪模块可以得到加噪处理后的表示向量H1。H1=[H_明,h_天,h_去,H_华,h_清,H_池,H_玩]。
在本申请的一些实施例中,加噪模块可以对待加噪token对应的表示向量进行加噪处理指的是:针对每一个待加噪token,加噪模块可以将其对应的表示向量替换为与其对应的词向量距离最近的词向量。
可理解,一个token对应的词向量指的是Embedding Table(嵌入表)中与该token对应的表示向量。Embedding Table可以包括若干token与其对应的词向量。即EmbeddingTable可以包括若干token和若干词向量之间的对应关系。也就是说,Embedding Table可以理解为token和词向量之间的映射表。Embedding Table中的若干token与其词向量的对应关系可以根据实际需要进行设置,本申请对此不作限制。
可理解,词向量之间的距离可以是欧式距离,可以是曼哈顿距离,可以是切比雪夫距离,还可以是马氏距离,本申请对此不作限制。上述不同距离的计算可以参考相关技术文档,本申请对此不展开说明。
需要说明的是,一个待加噪token对应的表示向量与其对应的词向量不一定相同。例如,“明”对应的表示向量为:h_明=[0.1,0.2,-0.1],而“明”对应的词向量为:c_明=[1,2,3]。
示例性的,h_明为“明”对应的表示向量。h_明=[0.1,0.2,-0.1]。在待加噪token包括“明”的情况下,加噪模块可以对h_明进行加噪处理。具体地,加噪模块可以确定h_明对应的token(即“明”)对应的词向量,然后在Embedding Table中查找与该词向量距离最近的词向量。若查找到的与“明”对应的词向量距离最近的词向量为“今”对应的词向量,且“今”对应的词向量为c_今=[2,3,4],则加噪模块可以将h_明替换为c_今=[2,3,4]。加噪模块最终得到的表示向量H1可以包括c_今。
在本申请的一些实施例中,加噪模块可以对待加噪token对应的表示向量进行加噪处理指的是:针对每一个待加噪token,加噪模块可以将其对应的表示向量中的部分特征替换为与其对应的词向量距离最近的词向量中的部分特征。
在一种可能的实现方式中,加噪模块可以将每一个待加噪token对应的表示向量中的部分特征替换为与其对应的词向量距离最近的词向量中相同位置的部分特征。
示例性的,h_明为“明”对应的表示向量。h_明=[0.1,0.2,-0.1]。在待加噪token包括“明”的情况下,加噪模块可以对h_明进行加噪处理。具体地,加噪模块可以确定h_明对应的token(即“明”)对应的词向量,然后在Embedding Table中查找与该词向量距离最近的词向量。若查找到的与“明”对应的词向量距离最近的词向量为“今”对应的词向量,且“今”对应的词向量为c_今=[2,3,4],则加噪模块可以将h_明中的第1个向量和第2个向量分别替换为c_今中的第1个向量和第2个向量,从而得到对h_明进行加噪处理后的表示向量H_明。H_明=[2,3,-0.1]。
在本申请的一些实施例中,加噪模块可以对待加噪token对应的表示向量进行加噪处理指的是:针对每一个待加噪token,加噪模块可以确定与该待加噪token对应的词向量距离最近的K个词向量,对并对该K个词向量进行加权处理,得到加权处理后的词向量,然后将该待加噪token对应的表示向量替换为该加权处理后的词向量。在一种可能的实现方式中,加噪模块可以将该待加噪token对应的表示向量中的部分特征替换为该加权处理后的词向量中的部分特征。
可理解,K可以为大于1的整数。K的具体数值可以根据实际需要进行设置,本申请对此不作限制。
可理解,加噪模块对该K个词向量进行加权处理时采用的权重可以根据实际需要进行设置,本申请对此不作限制。
示例性的,K=2,权重可以为0.4和0.6。h_明为“明”对应的表示向量。h_明=[0.1,0.2,-0.1]。在待加噪token包括“明”的情况下,加噪模块可以对h_明进行加噪处理。具体地,加噪模块可以确定h_明对应的token(即“明”)对应的词向量,然后在Embedding Table中查找与该词向量距离最近的2个词向量。若查找到的与“明”对应的词向量距离最近的2个词向量为“今”和“亮”对应的词向量,且“今”对应的词向量为c_今=[2,3,4],“亮”对应的词向量为c_亮=[1,4,3],则加噪模块可以分别对c_今和c_亮的第1个特征、第2个特征和第3个特征进行加权处理,从而得到H_明的第1个特征、第2个特征和第3个特征。H_明指的是对h_明进行加噪处理后所得的表示向量。H_明=[0.4*2+0.6*1,0.4*3+0.6*4,0.4*4+0.6*3]=[1.4,3.6,3.4]。
在本申请的一些实施例中,加噪模块可以对待加噪token对应的表示向量进行加噪处理指的是:针对每一个待加噪token,加噪模块可以确定与该待加噪token对应的词向量距离最近的K个词向量,对并对该待加噪token对应的词向量和该K个词向量进行加权处理,得到加权处理后的词向量,然后将该待加噪token对应的表示向量替换为该加权处理后的词向量。在一种可能的实现方式中,加噪模块可以将该待加噪token对应的表示向量中的部分特征替换为该加权处理后的词向量中的部分特征。
可理解,加噪模块对该待加噪token对应的词向量和该K个词向量进行加权处理时采用的权重可以根据实际需要进行设置,本申请对此不作限制。
示例性的,K=2,权重可以为1、0.4和0.6。h_明为“明”对应的表示向量。h_明=[0.1,0.2,-0.1]。在待加噪token包括“明”的情况下,加噪模块可以对h_明进行加噪处理。具体地,加噪模块可以确定h_明对应的token(即“明”)对应的词向量,然后在Embedding Table中查找与该词向量距离最近的2个词向量。若查找到的与“明”对应的词向量距离最近的2个词向量为“今”和“亮”对应的词向量,且“今”对应的词向量为c_今=[2,3,4],“亮”对应的词向量为c_亮=[1,4,3],则加噪模块可以分别对h_明、c_今和c_亮的第1个特征、第2个特征和第3个特征进行加权处理,从而得到H_明的第1个特征、第2个特征和第3个特征。H_明指的是对h_明进行加噪处理后所得的表示向量。H_明=[1*0.1+0.4*2+0.6*1,1*0.2+0.4*3+0.6*4,1*(-0.1)+0.4*4+0.6*3]= [1.5,3.8,3.3]。
当然,上述加噪方式仅为本申请提供的示例,不应视为对本申请的限制。
S905:第一设备将表示向量H1发送给第二设备。
可理解,第一设备通过NLP模型100中的加噪模块得到表示向量H1之后,可以将其发送给第二设备。
相应的,第二设备可以接收第一设备发送的表示向量H1。
S906:第二设备中的解码器基于表示向量H1进行下游任务预测,得到预测结果C1。
可理解,第二设备接收第一设备发送的表示向量H1之后,可以通过部署在第二设备中的解码器基于表示向量H1进行下游任务预测,并得到预测结果C1。
可理解,第二设备中的解码器可以为部分部署在第二设备中的NLP模型100中的解码器_1。
以第二设备中的解码器实现的下游任务为命名实体识别为例进行说明。
可理解,表示向量H1可以包括R_token所对应的加噪后的表示向量。第二设备中的解码器可以基于表示向量H1确定R_token对应的BIO类别。也就是说,第二设备中的解码器的输出可以为R_token的BIO类别。在这种情况下,第二设备中的解码器得到的C1为R_token的BIO类别。
可理解,BIO是实体的一种标注方式。根据BIO标注方式,一个token可以标注为:实体的开头/实体的中间/其他。其中,实体的开头可以用B表示,实体的中间可以用I表示,其他可以用O表示。若一个token标注为B,则表示该token为一个组块的开始。若一个token标注为I,则表示该token为一个组块的中间。若一个token标注为O,则表示该token不在任意一个组块内。
可理解,组块可以理解为实体。而一个实体可以包括多个token。例如,上文所提及的“明天”为时间实体,且这个时间实体可以包括2个token,即“明”和“天”。
在本申请的一些实施例中,NLP模型100还可以采用BIOES标注方式。根据BIOES标注方式,一个token可以标注为:实体的开头/实体的中间/实体的末端/实体本身/其他。其中,实体的开头、实体的中间和其他的相关描述可以参考上文。实体的末尾可以用E表示。实体本身可以用S表示。若一个token标注为E,则表示该token为一个组块的末端。若一个token标注为S,则表示该token就是一个组块,即该组块只有一个token。可理解,若NLP模型100采用BIOES标注方式,则第二设备中的解码器可以输出R_token的BIOES类别。在这种情况下,第二设备中的解码器得到的预测结果为R_token的BIOES类别。
需要说明的是,基于上述标注方式,NLP模型100往往还会结合实体类别来对实体进行标注。
可理解,文本中的实体可以包括三大类(实体类、时间类和数字类)和七小类(人物、机构、位置(即地点)、时间、日期、货币和百分比)。
示例性的,如下表1所示,表1为本申请提供的实体类别和示例。
表1
实体类别 | 示例 |
人物(PERSON) | John、Jane、Amy、小红、明明 |
位置(LOCATION) | 华清池、第一街道、第二街区 |
机构(ORGANIZATION) | 第一机构 |
日期(DATE) | October,3月,2022-3-3 |
时间(TIME) | 明天,22:30:03 |
货币(MONEY) | Thirtydollars,3元 |
百分比(PERCENT) | 10%,百分之二十 |
当然,实体还可以包括其他内容,本申请对此不作限制。NLP模型100还可以通过其他标注方式对实体进行标注,本申请对此不作限制。
基于上述标注方式和实体类别,NLP模型100可以确定R_token的BIO类别或BIOES类别。可理解,BIO类别和BIOES类别不仅可以表示token和实体的关系,还可以表示token对应的实体类别。这里所提及的token和实体的关系指的是该token是实体开头,还是实体中间,或是该token不属于实体等。
可理解,BIO类别可以包括但不限于:B-TIME、I-TIME、B-LOCATION、I- LOCATION和O。B-TIME表示的是时间实体的开头。I-TIME表示的是时间实体的中间。B-LOCATION表示的是位置实体(即地点实体)的开头,可以简写成B-LOC。I- LOCATION表示的是位置实体的中间,可以简写成I-LOC。O表示的是非实体的其他字符。
可理解,BIO类别还可以包括其他内容(例如,B-PERSON、I-PERSON、B-DATE和I-DATE等),本申请对此不作限制。
可理解,BIOES类别可以包括但不限于:B-PERSON、I-PERSON、E-PERSON、S-DATE、S-TIME和O。B-PERSON表示的是人物实体的开头,可以简写成B-PER。I-PERSON表示的是人物实体的中间,可以简写成I-PER。E-PERSON表示的是人物实体的末尾,可以简写成E-PER。S-DATE表示的是一个日期实体。S-TIME表示的是一个时间实体。O表示的是非实体的其他字符。
可理解,BIOES类别还可以包括其他内容(例如,B-LOCATION、I- LOCATION、E-LOCATION、S-PERSON等),本申请对此不作限制。
示例性的,第二设备中的解码器可以对H=[h_mask,h_天,h_去,h_mask,h_清,h_mask,h_mask]进行处理,得到R_token的BIOES类别,即[B-TIME,I-TIME,O,B-LOC,I-LOC,E-LOC,O]。其中,B-TIME是“明”对应的BIOES类别,I-TIME是“天”对应的BIOES类别,O是“去”对应的BIOES类别,B-LOC是“华”对应的BIOES类别,I-LOC是“清”对应的BIOES类别,E-LOC是“池”对应的BIOES类别,O是“玩”对应的BIOES类别。可理解,E-LOC是E- LOCATION的简写形式。
可理解,解码器可以通过基于规则和字典的方法、基于传统机器学习的方法、基于深度学习的方法、基于迁移学习的方法、基于注意力模型的方法、基于半监督学习的方法等方法来实现命名实体识别,具体可以参考相关技术文档,本申请对此不展开说明。
可理解,第二设备中的解码器实现的命名实体识别可以应用于多种场景,本申请对此不作限制。例如,日程信息识别、人名识别、音乐专辑识别、还款金额和还款时间识别,以及航班号和航班时间识别等。
可理解,第二设备可以包括更多的解码器。该更多的解码器还可以实现其他下游任务,并得到其他预测结果,本申请对此不作限制。例如,第二设备中的解码器还可以基于表示向量H1实现对R_token的分类,并输出分类结果。
S907:第一设备获取监督信号J1。
可理解,J1可以为第一设备基于用户界面得到的R_token的BIO类别或BIOES类别。在本申请的一些实施例中,第一设备可以通过NLP模型300中的解码器_3来进行下游任务预测,并输出预测界面C3。相应的,第一设备可以在显示屏上显示该预测结果。用户可以对该预测结果进行编辑。在这种情况下,第一设备可以基于渲染信息(例如,与文字相关的渲染信息)确定用户编辑后的内容,并将其作为监督信号J1。
示例性的,如图3E和图3D所示,图3E所示的显示区域501中的内容可以为第一设备通过NLP模型300获取的地点信息(即地点实体),而图3D所示的显示区域401中的内容为用户编辑更改后的地点信息。第一设备可以将显示区域401中的地点信息作为监督信号J1来辅助NLP模型的更新。当然,第一设备还可以获取图3D所示的用户界面400上的其他信息来作为监督信号。
S908:第一设备将监督信号J1发送给第二设备。
第一设备获取J1之后,可以将J1发送给第二设备。
相应的,第二设备可以接收第一设备发送的J1。
S909:第二设备基于监督信号J1和预测结果C1确定损失函数,并以最小化损失函数为目标,基于反向传播算法更新第二设备中的解码器的参数。
可理解,第二设备得到预测结果C1,以及接收第一设备发送的J1之后,可以基于J1和C1确定损失函数,并以最小化损失函数为目标,基于反向传播算法更新第二设备中的解码器的参数。可理解,损失函数和反向传播算法的相关描述可以参考相关技术文档,本申请对此不展开说明。
在本申请的一些实施例中,第二设备可以基于J1和C1确定NLP模型100的损失函数,并以最小化损失函数为目标,基于反向传播算法更新NLP模型100中的解码器_1的参数。
当然,第二设备还可以通过其他方式(例如,梯度下降法、牛顿下降法、高斯牛顿法、列文伯格-马夸尔特法等)来更新第二设备中的解码器的参数,本申请对此不作限制。
S910:第二设备将更新后的解码器的参数发送给第一设备。
第二设备更新第二设备中的解码器的参数之后,可以将更新后的解码器的参数发送给第一设备。
在本申请的一些实施例中,第二设备可以将更新后的NLP模型100中的解码器_1的参数发送给第一设备。
相应的,第一设备可以接收第二设备发送的更新后的解码器的参数。
S911:第一设备基于更新后的解码器的参数更新第一设备中的解码器的参数。
第一设备接收第二设备发送的更新后的解码器的参数之后,可以基于该更新后的解码器的参数来更新第一设备中的解码器的参数。
在本申请的一些实施例中,第一设备中的解码器可以为部署在第一设备中的NLP模型300中的解码器_3。第一设备可以将解码器_3的参数更新为更新后的解码器_1的参数。
可理解,在本申请的一些实施例中,第一设备中的解码器(例如,解码器_3)可以基于表示向量h进行下游任务预测,得到预测结果C3,并在显示屏上显示C3的相关信息。可理解,第一设备中的解码器实现的下游任务与第二设备中的解码器实现的下游任务相同。例如,第一设备中的解码器_3可以基于表示向量h实现时间实体识别和地点实体识别,从而得到R_token的BIO类别或BIOES类别。即C3可以为解码器_3输出的R_token的BIO类别或BIOES类别。第一设备可以基于C3确定标注为时间实体的token和标注为地点实体的token,再将这些token显示在显示屏上的相应区域。
示例性的,如图3D所示,第一设备可以确定标注为时间实体的token是“9”,以及标注为地点实体的token是“五角场地铁站”,并将其显示在显示屏上。
可选的,在第一设备执行步骤S901-步骤S905,以及第二设备执行步骤S906的情况下,第一设备还可以将H1发送给解码器_4。解码器_4可以基于表示向量H1进行下游任务预测,得到预测结果C4,再基于C4和C1确定损失函数,以最小化损失函数为目标,基于反向传播算法更新第二设备中的解码器(例如,解码器_1)的参数,并将更新后的解码器的参数发送给第一设备。然后,第一设备可以基于该更新后的解码器的参数更新第一设备中的解码器的参数。这一部分内容可以具体参考步骤S906、步骤S909-步骤S911,在此不再赘述。
可选的,第二设备可以不执行步骤S910,并且第一设备可以不执行步骤S911。在这种情况下,第二设备可以将预测结果C1发送给第一设备。第一设备接收C1之后,还可以显示C1的相关信息(如图3D和图3E所示)。
请参阅图10,图10为本申请实施例提供的又一种NLP模型更新方法的流程图。该方法可以包括但不限于以下步骤:
S1001:第一设备对R进行分词处理,得到R_token。
可理解,步骤S1001的相关描述可以参考步骤S901,在此不再赘述。
S1002:第一设备中的隐私信息分类模块确定pri。
可理解,步骤S1002的相关描述可以参考步骤S903,在此不再赘述。
S1003:第一设备中的加噪模块基于pri和不同隐私信息类别对应的加噪强度,对R_token进行加噪处理,得到R_TOKEN。
第一设备中的加噪模块可以基于pri和不同隐私信息类别对应的加噪强度,确定R_token中的待加噪token,并对待加噪token进行加噪处理,并得到加噪处理后的若干token,即R_TOKEN。
可理解,确定R_token中的待加噪token的具体方式可以参考步骤S904,在此不再赘述。
在本申请的一些实施例中,加噪模块对待加噪token进行加噪处理指的是:加噪模块可以将每一个待加噪token替换为固定token。为了便于描述,本申请将该固定token记为MASK。可理解,MASK可以为单词,还可以为数字,特殊字符等,本申请对MASK的具体内容不作限制。
示例性的,R_token可以为:“明”、“天”、“去”、“华”、“清”、“池”和“玩”。基于上述示例,加噪模块可以确定待加噪token包括:“明”、“华”、“池”和“玩”。加噪模块可以将这些待加噪token替换为MASK,就可以得到加噪处理后的R_TOKEN。R_TOKEN=[“MASK”,“天”,“去”,“MASK”,“清”,“MASK”,“MASK”]。
在本申请的一些实施例中,加噪模块对待加噪token进行加噪处理指的是:加噪模块可以将每一个待加噪token替换为该待加噪token对应的近义词。可理解,本申请对该待加噪token的近义词的具体设置方式不作限制。
示例性的,在待加噪token包括“天”的情况下,加噪模块可以对“天”进行加噪处理。具体地,加噪模块可以确定“天”对应的近义词为“日”,然后将“天”替换为“日”。加噪模块最终得到的R_TOKEN可以包括“日”。
在本申请的一些实施例中,加噪模块对待加噪token进行加噪处理指的是:针对每一个待加噪token,加噪模块可以确定与该待加噪token对应的词向量距离最近的词向量,并将该待加噪token替换为该距离最近的词向量所对应的token。
示例性的,在待加噪token包括“明”的情况下,加噪模块可以对“明”进行加噪处理。具体地,加噪模块可以确定“明”对应的词向量,然后在Embedding Table中查找与该词向量距离最近的词向量。若查找到的与“明”对应的词向量距离最近的词向量为“今”对应的词向量,则加噪模块可以将“明”替换为“今”。加噪模块最终得到的R_TOKEN可以包括“今”。
当然,上述加噪方式仅为本申请提供的示例,不应视为对本申请的限制。
S1004:第一设备中的编码器对R_TOKEN进行特征抽取,得到表示向量H2。
可理解,步骤S1004的相关描述可以参考步骤S902,在此不再赘述。
S1005:第一设备将表示向量H2发送给第二设备。
S1006:第二设备中的解码器基于表示向量H2进行下游任务预测,得到预测结果C2。
可理解,第二设备中的解码器可以为部分部署在第二设备中的NLP模型200中的解码器_2。
S1007:第一设备获取监督信号J1。
S1008:第一设备发送监督信号J1。
S1009:第二设备基于监督信号J1和预测结果C2确定损失函数,并以最小化损失函数为目标,基于反向传播算法更新第二设备中的解码器的参数。
在本申请的一些实施例中,第二设备可以基于监督信号J1和预测结果C2确定NLP模型200的损失函数,并以最小化损失函数为目标,基于反向传播算法更新NLP模型200中的解码器_2的参数。
S1010:第二设备将更新后的解码器的参数发送给第一设备。
S1011:第一设备基于更新后的解码器的参数更新第一设备中的解码器的参数。
可理解,步骤S1005-步骤S1011的相关描述可以参考步骤S905-步骤S911。
可选的,在第一设备执行步骤S1001-步骤S1005,以及第二设备执行步骤S1006的情况下,第一设备还可以将H2发送给解码器_4。解码器_4可以基于表示向量H2进行下游任务预测,得到预测结果C4_2,再基于C4_2和C2确定损失函数,以最小化损失函数为目标,基于反向传播算法更新第二设备中的解码器(例如,解码器_2)的参数,并将更新后的解码器的参数发送给第一设备。然后,第一设备可以基于该更新后的解码器的参数更新第一设备中的解码器(例如,解码器_3)的参数。这一部分内容可以具体参考步骤S906、步骤S909-步骤S911,在此不再赘述。
可选的,第二设备可以不执行步骤S1010,并且第一设备可以不执行步骤S1011。在这种情况下,第二设备可以将预测结果C2发送给第一设备。第一设备接收C2之后,还可以显示C2的相关信息(如图3D和图3E所示)。
根据上文,通过部分部署在云侧的NLP模型还可以实现对多个端侧设备中的NLP模型的更新。在图9或图10所示的NLP模型方法的基础上,再结合图11或图12具体介绍该对多个端侧设备中的NLP模型进行更新的方法。
请参阅图11,图11为本申请实施例提供的又一种NLP模型更新方法的流程图。该方法可以包括但不限于以下步骤:
S1101:第三设备对R_1进行分词处理,得到R_1_token。R_1为文本信息。R_1_token为R_1对应的若干token。
S1102:第三设备中的编码器对R_1_token进行特征抽取,得到表示向量h_1。
S1103:第三设备中的隐私信息分类模块确定pri_1。pri_1包括R_1_token对应的隐私信息类别。
S1104:第三设备中的加噪模块基于pri_1和不同隐私信息类别对应的加噪强度,对表示向量h_1进行加噪处理,得到加噪处理后的表示向量H1_1。
S1105:发送表示向量H1_1。
S1106:第二设备中的解码器基于表示向量H1_1进行下游任务预测,得到预测结果C1_2。
可理解,第二设备中的解码器可以为部分部署在第二设备中的NLP模型100中的解码器_1。
S1107:第三设备获取监督信号J2。
S1108:第三设备将监督信号J2发送给第二设备。
S1109:第二设备基于监督信号J2和预测结果C1_2确定损失函数,并以最小化损失函数为目标,基于反向传播算法更新第二设备中的解码器的参数。
S1110:第二设备将更新后的解码器的参数发送给第三设备。
S1111:第三设备基于更新后的解码器的参数更新第三设备中的解码器的参数。
可理解,第三设备中的解码器可以为部署在第三设备中的NLP模型300中的解码器_3。
可理解,步骤S1101-步骤S1111可以具体参考步骤S901-步骤S911的相关描述,在此不再赘述。
可理解,在本申请的一些实施例中,第三设备中的解码器(例如,解码器_3)可以基于表示向量h_1进行下游任务预测,得到预测结果C3_2,并基于C3_2确定显示屏上显示的内容。这一部分内容具体可以参考上文,在此不再赘述。
可选的,在第三设备执行步骤S1101-步骤S1105,以及第二设备执行步骤S1106的情况下,第三设备还可以将H1_1发送给解码器_4。解码器_4可以基于表示向量H1_1进行下游任务预测,得到预测结果C4_1,再基于C4_1和C1_2确定损失函数,以最小化损失函数为目标,基于反向传播算法更新第二设备中的解码器(例如,解码器_1)的参数,并将更新后的解码器的参数发送给第三设备。然后,第三设备可以基于该更新后的解码器的参数更新第三设备中的解码器(例如,解码器_3)的参数。这一部分内容可以具体参考步骤S1106、步骤S1109-步骤S1111,本申请在此不再赘述。
可选的,第二设备可以不执行步骤S1110,并且第一设备可以不执行步骤S1111。在这种情况下,第二设备可以将预测结果C1_2发送给第一设备。第一设备接收C1_2之后,还可以显示C1_2的相关信息(如图3D和图3E所示)。
请参阅图12,图12为本申请实施例提供的又一种NLP模型更新方法的流程图。该方法可以包括但不限于以下步骤:
S1201:第三设备对R_1进行分词处理,得到R_1_token。
S1202:第三设备中的隐私信息分类模块确定pri_1。
S1203:第三设备中的加噪模块基于pri_1和不同隐私信息类别对应的加噪强度,对R_1_token进行加噪处理,得到R_1_TOKEN。
S1204:第三设备中的编码器对R_1_TOKEN进行特征抽取,得到表示向量H2_1。
S1205:发送表示向量H2_1。
S1206:第二设备中的解码器基于表示向量H2_1进行下游任务预测,得到预测结果C2_2。
可理解,第二设备中的解码器可以为解码器_2,也可以为解码器_1。
S1207:第三设备获取监督信号J2。
S1208:第三设备将监督信号J2发送给第二设备。
S1209:第二设备基于监督信号J2和预测结果C2_2确定损失函数,并以最小化损失函数为目标,基于反向传播算法更新第二设备中的解码器的参数。
S1210:第二设备将更新后的解码器的参数发送给第三设备。
S1211:第三设备基于更新后的解码器的参数更新第三设备中的解码器的参数。
可理解,步骤S1201-步骤S1211可以具体参考步骤S901-步骤S911的相关描述,在此不再赘述。
可选的,在第三设备执行步骤S1201-步骤S1205,以及第二设备执行步骤S1206的情况下,第三设备还可以将H2_1发送给解码器_4。解码器_4可以基于表示向量H2_1进行下游任务预测,得到预测结果C4_3,再基于C4_3和C2_2确定损失函数,以最小化损失函数为目标,基于反向传播算法更新第二设备中的解码器(例如,解码器_2)的参数,并将更新后的解码器的参数发送给第三设备。然后,第三设备可以基于该更新后的解码器的参数更新第三设备中的解码器(例如,解码器_3)的参数。这一部分内容可以具体参考步骤S1206、步骤S1209-步骤S1211,本申请在此不再赘述。
可选的,第二设备可以不执行步骤S1210,并且第一设备可以不执行步骤S1211。在这种情况下,第二设备可以将预测结果C2_2发送给第一设备。第一设备接收C2_2之后,还可以显示C2_2的相关信息(如图3D和图3E所示)。
可理解,第二设备中的解码器_1和解码器_2可以为同一个解码器。
可理解,对其他端侧设备的NLP模型的更新过程可以参考上述对第一设备和第三设备中的NLP模型的更新过程,在此不再赘述。
可理解,在NLP模型部署之前,可以对初始NLP模型进行训练,从而得到能够较好的实现相应NLP任务的NLP模型。
以图4A所示的NLP模型的训练过程为例进行说明。
电子设备100中可以设置有初始NLP模型。电子设备100可以将样本数据输入到该初始NLP模型中。电子设备100中的初始NLP模型可以对样本数据进行分词处理,得到样本数据对应的若干token,还可以对样本数据对应的若干token进行特征抽取,得到若干表示向量。初始NLP模型还可以确定样本数据对应的pri。初始NLP模型还可以基于样本数据对应的pri和不同隐私信息类别对应的加噪强度,对该若干表示向量进行加噪处理,得到加噪处理后的表示向量。初始NLP模型可以基于该加噪处理后的表示向量进行下游任务预测,并得到预测结果。
在本申请的一些实施例中,电子设备100可以基于真实结果和预测结果确定初始NLP模型的损失函数。电子设备100可以以最小化该损失函数为目标,更新初始NLP模型的参数。
在本申请的又一些实施例中,电子设备100可以基于初始NLP模型确定的样本数据对应的pri和样本数据对应的真实的pri确定初始NLP模型的损失函数(即初始NLP模型中的隐私信息分类模块的损失函数)。电子设备100可以以最小化该损失函数为目标,更新初始NLP模型的参数。
可理解,电子设备100可以继续对更新参数后的NLP模型进行上述处理,不断迭代,直到损失函数收敛。
可理解,初始NLP模型包含的模块可以与图4A所示的NLP模型所包含的模块一致。初始NLP模型的结构可以参考上文所提及的相应模块的结构,本申请对其具体结构不作限制。例如,初始NLP模型可以为BERT。再例如,初始NLP模型可以为神经网络模型。
在本申请的一些实施例中,电子设备100经过上述步骤实现损失函数的最小化之后,可以得到完成训练的NLP模型。在这种情况下,电子设备100可以将测试集中的数据输入到该完成训练的NLP模型中。若输出的预测结果与真实结果的差值在预设范围内,则该完成训练的NLP模型可以正式使用,若输出的预测结果与真实结果的差值不在预设范围内,则电子设备可以基于其他样本数据对该完成训练的NLP模型再次进行训练。训练过程可以参考上文,在此不再赘述。可理解,预设范围可以根据实际需要进行设备,本申请对此不作限制。
可理解,电子设备100可以为端侧设备,也可以为云侧设备。
可理解,对其他NLP模型的训练过程可以参考上文,在此不再赘述。
下面介绍本申请实施例涉及的装置。
图13为本申请实施例提供的一种电子设备的硬件结构示意图。
电子设备可以包括处理器110,外部存储器接口120,内部存储器121,音频模块130,扬声器130A,受话器130B,麦克风130C,耳机接口130D,显示屏140,摄像头150,触摸传感器160。
本申请实施例示意的结构并不构成对电子设备的具体限定。在本申请另一些实施例中,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备的结构限定。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。处理器110中还可以设置存储器,用于存储指令和数据。
在本申请提供的实施例中,电子设备可以通过处理器110执行所述NLP模型更新方法。
电子设备通过GPU,显示屏140,以及应用处理器等实现显示功能。
GPU为图像处理的微处理器,连接显示屏140和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。显示屏140用于显示图像,视频等。在一些实施例中,电子设备可以包括1个或N个显示屏140,N为大于1的正整数。
在本申请提供的实施例中,电子设备显示摄像头采集的原始图像、经过追焦确定的主角的特写图像,以及图3A-图3E所示的用户界面的能力,依赖于上述GPU,显示屏140,以及应用处理器提供的显示功能。
电子设备可以通过ISP,摄像头150,视频编解码器,GPU,显示屏140以及应用处理器等实现拍摄功能。
摄像头150用于捕获静态图像或视频。ISP用于处理摄像头150反馈的数据。光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。电子设备可以包括1个或N个摄像头150,N为大于1的正整数。视频编解码器用于对数字视频压缩或解压缩。电子设备可以支持一种或多种视频编解码器。这样,电子设备可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
内部存储器121可以包括一个或多个随机存取存储器(random access memory,RAM)和一个或多个非易失性存储器(non-volatile memory,NVM)。随机存取存储器可以由处理器110直接进行读写,可以用于存储操作系统或其他正在运行中的程序的可执行程序(例如机器指令),还可以用于存储用户及应用程序的数据等。非易失性存储器也可以存储可执行程序和存储用户及应用程序的数据等,可以提前加载到随机存取存储器中,用于处理器110直接进行读写。
在本申请实施例中,实现本申请实施例所述的NLP模型更新方法的代码可存储在非易失性存储器上。在运行相机应用时,电子设备可将非易失性存储器中存储的可执行代码加载到随机存取存储器。
外部存储器接口120可以用于连接外部的非易失性存储器,实现扩展电子设备的存储能力。
电子设备可以通过音频模块130,扬声器130A,受话器130B,麦克风130C,耳机接口130D,以及应用处理器等实现音频功能。
音频模块130用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。扬声器130A,也称“喇叭”,用于将音频电信号转换为声音信号。受话器130B,也称“听筒”,用于将音频电信号转换成声音信号。麦克风130C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。耳机接口130D用于连接有线耳机。
在本申请实施例中,电子设备在启用摄像头采集图像的过程中,可以同时启用麦克风130C采集声音信号,并将声音信号转换为电信号存储下来。这样,用户可以得到有声视频。
触摸传感器160,也称“触控器件”。触摸传感器160可以设置于显示屏140,由触摸传感器160与显示屏140组成触摸屏,也称“触控屏”。触摸传感器160用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏140提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器160也可以设置于电子设备的表面,与显示屏140所处的位置不同。
在本申请提供的实施例中,电子设备可利用触摸传感器160检测用户作用于显示屏140上的点击、滑动等操作,以触发显示图3A-图3E所示的界面。
电子设备的软件结构可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。
图14为本申请实施例提供的一种电子设备的软件结构示意图。
如图14所示,本申请涉及的电子设备的软件框架可以包括应用程序层,应用程序框架层(framework,FWK)、系统库、安卓运行时、硬件抽象层和内核层(kernel)。
其中,应用程序层可以包括一系列应用程序包,例如相机,图库,日历,通话,WLAN,音乐,视频等应用程序(也可以称为应用)。其中,相机用于获取图像和视频。关于应用程序层的其他应用,可以参考常规技术中的介绍和说明,本申请不展开说明。
可理解,应用程序层可以包括功能接口。电子设备可以通过该功能接口调用上述NLP模型,或者通过该功能接口实现上述NLP模型更新方法。
应用程序框架层为应用程序层的应用程序提供应用编程接口(ApplicationProgramming Interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图14所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。电话管理器用于提供电子设备的通信功能。例如通话状态的管理(包括接通,挂断等)。资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话界面形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,振动,指示灯闪烁等。
运行时(Runtime)包括核心库和虚拟机。Runtime负责系统的调度和管理。
核心库包含两部分:一部分是编程语言(例如,java语言)需要调用的功能函数,另一部分是系统的核心库。应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的编程文件(例如,java文件)执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(Surface Manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),二维图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了二维(2-Dimensional,2D)和三维(3-Dimensional,3D)图层的融合。媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。三维图形处理库用于实现3D图形绘图,图像渲染,合成,和图层处理等。2D图形引擎是2D绘图的绘图引擎。
硬件抽象层(HAL)是位于操作系统内核与上层软件之间的接口层,其目的在于将硬件抽象化。硬件抽象层是设备内核驱动的抽象接口,用于实现向更高级别的Java API框架提供访问底层设备的应用编程接口。HAL包含多个库模块,例如相机、显示屏、蓝牙、音频等。其中每个库模块都为特定类型的硬件组件实现一个接口。当系统框架层API要求访问便携设备的硬件时,Android操作系统将为该硬件组件加载库模块。
内核层是Android操作系统的基础,Android操作系统最终的功能都是通过内核层完成。内核层可以包含显示驱动,摄像头驱动,音频驱动,传感器驱动,虚拟卡驱动。
需要说明的是,本申请提供的图14所示的电子设备的软件结构示意图仅作为一种示例,并不限定Android操作系统不同分层中的具体模块划分,具体可以参考常规技术中对Android操作系统软件结构的介绍。另外,本申请提供的NLP模型更新方法还可以基于其他操作系统实现,本申请不再一一举例。
可理解,图13和图14所示的电子设备的软硬件结构可以为电子设备100的软硬件结构,还可以为端侧设备(例如,第一设备、第三设备等)的软硬件结构,还可以为云侧设备(例如,第二设备等)的软硬件结构。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (19)
1.一种自然语言处理模型的更新方法,其特征在于,第一NLP模型中的第一部分模型部署在第一设备中,所述第一NLP模型中的第二部分模型部署在第二设备中;所述第一设备为端侧设备,所述第二设备为云侧设备;所述方法包括:
所述第一设备对文本信息进行分词处理,得到O个最小切分单元;所述O为正整数;
所述第一设备通过所述第一部分模型确定所述O个最小切分单元对应的隐私信息类别;
所述第一设备基于所述O个最小切分单元对应的隐私信息类别和不同隐私信息类别对应的加噪强度,通过所述第一部分模型对所述O个最小切分单元进行加噪处理和特征提取,得到加噪之后所述O个最小切分单元对应的表示向量;
所述第一设备将所述加噪之后所述O个最小切分单元对应的表示向量发送给所述第二设备;
其中,所述加噪之后所述O个最小切分单元对应的表示向量用于更新所述第二部分模型。
2.如权利要求1所述的方法,其特征在于,所述第一设备基于所述O个最小切分单元对应的隐私信息类别和不同隐私信息类别对应的加噪强度,通过所述第一部分模型对所述O个最小切分单元进行加噪处理和特征提取,得到加噪之后所述O个最小切分单元对应的表示向量,具体包括:
所述第一设备通过所述第一部分模型对所述O个最小切分单元进行所述特征提取,得到所述O个最小切分单元对应的初始表示向量;
所述第一设备基于所述O个最小切分单元对应的隐私信息类别和所述不同隐私信息类别对应的加噪强度,通过所述第一部分模型确定所述O个最小切分单元中的待加噪切分单元;
所述第一设备通过所述第一部分模型对所述待加噪切分单元对应的初始表示向量进行所述加噪处理,得到所述加噪之后所述O个最小切分单元对应的表示向量。
3.如权利要求1所述的方法,其特征在于,所述第一设备基于所述O个最小切分单元对应的隐私信息类别和不同隐私信息类别对应的加噪强度,通过所述第一部分模型对所述O个最小切分单元进行加噪处理和特征提取,得到加噪之后所述O个最小切分单元对应的表示向量,具体包括:
所述第一设备基于所述O个最小切分单元对应的隐私信息类别和所述不同隐私信息类别对应的加噪强度,通过所述第一部分模型确定所述O个最小切分单元中的待加噪切分单元;
所述第一设备通过所述第一部分模型对所述待加噪切分单元进行所述加噪处理,得到加噪之后的所述O个最小切分单元;
所述第一设备通过所述第一部分模型对所述加噪之后的所述O个最小切分单元进行所述特征提取,得到所述加噪之后所述O个最小切分单元对应的表示向量。
4.如权利要求2所述的方法,其特征在于,所述第一设备通过所述第一部分模型对所述待加噪切分单元对应的初始表示向量进行所述加噪处理,得到所述加噪之后所述O个最小切分单元对应的表示向量,具体包括:
所述第一设备通过所述第一部分模型将所述待加噪切分单元对应的初始表示向量替换为第一向量,得到所述待加噪切分单元对应的已加噪表示向量;
所述第一设备通过所述第一部分模型确定所述加噪之后所述O个最小切分单元对应的表示向量;
其中,所述加噪之后所述O个最小切分单元对应的表示向量包括未加噪切分单元对应的初始表示向量和所述待加噪切分单元对应的已加噪表示向量;所述未加噪切分单元为所述O个最小切分单元中除所述待加噪切分单元之外的最小切分单元。
5.如权利要求2所述的方法,其特征在于,所述第一设备通过所述第一部分模型对所述待加噪切分单元对应的初始表示向量进行所述加噪处理,得到所述加噪之后所述O个最小切分单元对应的表示向量,具体包括:
所述第一设备通过所述第一部分模型将所述待加噪切分单元对应的初始表示向量中的U1个特征分别替换为所述U1个数值,得到所述待加噪切分单元对应的已加噪表示向量;
所述第一设备通过所述第一部分模型确定所述加噪之后所述O个最小切分单元对应的表示向量;
其中,所述加噪之后所述O个最小切分单元对应的表示向量包括未加噪切分单元对应的初始表示向量和所述待加噪切分单元对应的已加噪表示向量;所述未加噪切分单元为所述O个最小切分单元中除所述待加噪切分单元之外的最小切分单元。
6.如权利要求2所述的方法,其特征在于,所述第一设备通过所述第一部分模型对所述待加噪切分单元对应的初始表示向量进行所述加噪处理,得到所述加噪之后所述O个最小切分单元对应的表示向量,具体包括:
所述第一设备通过所述第一部分模型确定第一词向量;所述第一词向量为与所述待加噪切分单元对应的词向量距离最近的词向量;
所述第一设备通过所述第一部分模型将所述待加噪切分单元对应的初始表示向量替换为所述第一词向量,得到所述待加噪切分单元对应的已加噪表示向量;
所述第一设备通过所述第一部分模型确定所述加噪之后所述O个最小切分单元对应的表示向量;
其中,所述加噪之后所述O个最小切分单元对应的表示向量包括未加噪切分单元对应的初始表示向量和所述待加噪切分单元对应的已加噪表示向量;所述未加噪切分单元为所述O个最小切分单元中除所述待加噪切分单元之外的最小切分单元。
7.如权利要求3所述的方法,其特征在于,所述第一设备通过所述第一部分模型对所述待加噪切分单元进行所述加噪处理,得到加噪之后的所述O个最小切分单元,具体包括:
所述第一设备通过所述第一部分模型将所述待加噪切分单元替换为第一切分单元,得到所述加噪之后的所述O个最小切分单元。
8.如权利要求2或3所述的方法,其特征在于,所述第一设备基于所述O个最小切分单元对应的隐私信息类别和所述不同隐私信息类别对应的加噪强度,通过所述第一部分模型确定所述O个最小切分单元中的待加噪切分单元,具体包括:
所述第一设备通过所述第一部分模型将第一数值乘以隐私信息类别Y对应的加噪强度,得到第一乘积;所述第一数值为所述O个最小切分单元中所述隐私信息类别Y对应的最小切分单元的数量;所述隐私信息类别Y为所述O个最小切分单元对应的隐私信息类别中的任意一种隐私信息类别;
所述第一设备通过所述第一部分模型在所述O个最小切分单元中的所述隐私信息类别Y对应的最小切分单元中随机选择所述隐私信息类别Y对应的待加噪切分单元;
所述第一设备通过所述第一部分模型确定所述O个最小切分单元中的待加噪切分单元;
其中,若所述第一乘积为整数,所述随机选择的所述隐私信息类别Y对应的待加噪切分单元的数量等于所述第一乘积;若所述第一乘积不为整数,所述随机选择的所述隐私信息类别Y对应的待加噪切分单元的数量等于所述第一乘积通过进一法取整后所得的整数;所述O个最小切分单元中的待加噪切分单元包括所述O个最小切分单元对应的所有隐私信息类别对应的待加噪切分单元。
9.如权利要求1-7任一项所述的方法,其特征在于,第二NLP模型部署在所述第一设备中;所述方法还包括:
所述第一设备基于所述第二NLP模型对所述文本信息进行处理,得到第一预测结果;
所述第一设备显示第一界面;所述第一界面包括所述第一预测结果的相关信息;
所述第一设备将所述加噪之后所述O个最小切分单元对应的表示向量发送给所述第二设备之后,所述方法还包括:
所述第一设备接收所述第二设备发送的第一参数;所述第一参数为所述第二设备基于所述加噪之后所述O个最小切分单元对应的表示向量对所述第二部分模型更新后的模型参数;
所述第一设备基于所述第一参数更新所述第二NLP模型。
10.如权利要求9所述的方法,其特征在于,所述第一设备显示第一界面之后,所述方法还包括:
响应于作用于所述第一界面的操作,所述第一设备显示第二界面;所述第二界面包括更改后的所述第一预测结果的相关信息;
所述第一设备基于所述第二界面确定监督信号,并将所述监督信号发送给所述第二设备;
其中,所述第一参数为所述第二设备基于所述监督信号和第二预测结果对所述第二部分模型更新后的模型参数;所述第二预测结果为所述第二设备通过所述第二部分模型对所述加噪之后所述O个最小切分单元对应的表示向量进行处理后所得的预测结果。
11.如权利要求9所述的方法,其特征在于,所述第一设备接收所述第二设备发送的第一参数之前,所述方法还包括:
所述第一设备将所述加噪之后所述O个最小切分单元对应的表示向量发送给第三NLP模型;
其中,所述第一参数为所述第二设备基于所述加噪之后所述O个最小切分单元对应的表示向量和第三预测结果对所述第二部分模型更新后的模型参数;所述第三预测结果为所述第三NLP模型基于所述加噪之后所述O个最小切分单元对应的表示向量所得的预测结果。
12.如权利要求1-7任一项所述的方法,其特征在于,所述第一设备将所述加噪之后所述O个最小切分单元对应的表示向量发送给所述第二设备之后,所述方法还包括:
所述第一设备接收所述第二设备发送的第二预测结果;所述第二预测结果为所述第二设备通过所述第二部分模型对所述加噪之后所述O个最小切分单元对应的表示向量进行处理后所得的预测结果;
所述第一设备显示第三界面;所述第三界面包括所述第二预测结果的相关信息。
13.一种自然语言处理模型的更新方法,其特征在于,第一NLP模型中的第一部分模型部署在第一设备中,所述第一NLP模型中的第二部分模型部署在第二设备中;所述第一设备为端侧设备,所述第二设备为云侧设备;所述方法包括:
所述第二设备接收所述第一设备发送的通过所述第一部分模型对文本信息进行处理后所得的加噪之后O个最小切分单元对应的表示向量;所述O为正整数;
所述第二设备通过所述第二部分模型来对所述加噪之后O个最小切分单元对应的表示向量进行处理,得到第二预测结果;
所述第二设备基于所述第二预测结果更新所述第二部分模型。
14.如权利要求13所述的方法,其特征在于,所述方法还包括:
所述第二设备接收所述第一设备发送的监督信号;
所述第二设备基于所述监督信号和所述第二预测结果更新所述第二部分模型,得到第一参数;所述第一参数为更新后的所述第二部分模型的参数;
所述第二设备将所述第一参数发送给所述第一设备。
15.如权利要求13或14所述的方法,其特征在于,所述第一NLP模型中的第三部分模型部署在第三设备中,所述第三设备为所述端侧设备,所述方法还包括:
所述第二设备接收所述第三设备发送的通过所述第三部分模型所得的加噪之后P个最小切分单元对应的表示向量;所述P为正整数;
所述第二设备通过所述第二部分模型来对所述加噪之后P个最小切分单元对应的表示向量进行处理,得到第四预测结果;
所述第二设备基于所述第四预测结果更新所述第二部分模型。
16.一种电子设备,包括一个或多个存储器、一个或多个处理器,其特征在于,所述存储器用于存储计算机程序;所述处理器用于调用所述计算机程序,使得所述电子设备执行权利要求1-12中任一项所述的方法。
17.一种电子设备,包括一个或多个存储器、一个或多个处理器,其特征在于,所述存储器用于存储计算机程序;所述处理器用于调用所述计算机程序,使得所述电子设备执行权利要求13-15中任一项所述的方法。
18.一种计算机存储介质,其特征在于,包括:计算机指令;当所述计算机指令在电子设备上运行时,使得所述电子设备执行权利要求1-12中任一项所述的方法。
19.一种计算机存储介质,其特征在于,包括:计算机指令;当所述计算机指令在电子设备上运行时,使得所述电子设备执行权利要求13-15中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211488689.8A CN115640611B (zh) | 2022-11-25 | 2022-11-25 | 一种自然语言处理模型的更新方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211488689.8A CN115640611B (zh) | 2022-11-25 | 2022-11-25 | 一种自然语言处理模型的更新方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115640611A true CN115640611A (zh) | 2023-01-24 |
CN115640611B CN115640611B (zh) | 2023-05-23 |
Family
ID=84948837
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211488689.8A Active CN115640611B (zh) | 2022-11-25 | 2022-11-25 | 一种自然语言处理模型的更新方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115640611B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116541705A (zh) * | 2023-05-06 | 2023-08-04 | 石家庄铁道大学 | 文本分类模型的训练方法及文本分类方法 |
CN116541705B (zh) * | 2023-05-06 | 2024-06-11 | 石家庄铁道大学 | 文本分类模型的训练方法及文本分类方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111611790A (zh) * | 2020-04-13 | 2020-09-01 | 华为技术有限公司 | 数据处理的方法与装置 |
CN111859951A (zh) * | 2020-06-19 | 2020-10-30 | 北京百度网讯科技有限公司 | 语言模型的训练方法、装置、电子设备及可读存储介质 |
WO2022007823A1 (zh) * | 2020-07-10 | 2022-01-13 | 华为技术有限公司 | 一种文本数据处理方法及装置 |
CN113961967A (zh) * | 2021-12-13 | 2022-01-21 | 支付宝(杭州)信息技术有限公司 | 基于隐私保护联合训练自然语言处理模型的方法及装置 |
CN114331540A (zh) * | 2021-12-29 | 2022-04-12 | 北京百度网讯科技有限公司 | 训练模型的方法、确定资产估值的方法和装置 |
CN114841142A (zh) * | 2022-04-22 | 2022-08-02 | 北京字跳网络技术有限公司 | 文本生成方法、装置、电子设备和存储介质 |
-
2022
- 2022-11-25 CN CN202211488689.8A patent/CN115640611B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111611790A (zh) * | 2020-04-13 | 2020-09-01 | 华为技术有限公司 | 数据处理的方法与装置 |
CN111859951A (zh) * | 2020-06-19 | 2020-10-30 | 北京百度网讯科技有限公司 | 语言模型的训练方法、装置、电子设备及可读存储介质 |
WO2022007823A1 (zh) * | 2020-07-10 | 2022-01-13 | 华为技术有限公司 | 一种文本数据处理方法及装置 |
CN113961967A (zh) * | 2021-12-13 | 2022-01-21 | 支付宝(杭州)信息技术有限公司 | 基于隐私保护联合训练自然语言处理模型的方法及装置 |
CN114331540A (zh) * | 2021-12-29 | 2022-04-12 | 北京百度网讯科技有限公司 | 训练模型的方法、确定资产估值的方法和装置 |
CN114841142A (zh) * | 2022-04-22 | 2022-08-02 | 北京字跳网络技术有限公司 | 文本生成方法、装置、电子设备和存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116541705A (zh) * | 2023-05-06 | 2023-08-04 | 石家庄铁道大学 | 文本分类模型的训练方法及文本分类方法 |
CN116541705B (zh) * | 2023-05-06 | 2024-06-11 | 石家庄铁道大学 | 文本分类模型的训练方法及文本分类方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115640611B (zh) | 2023-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3850624B1 (en) | Transforming audio content into images | |
US20230048218A1 (en) | On-Device Projection Neural Networks for Natural Language Understanding | |
US20170351663A1 (en) | Iterative alternating neural attention for machine reading | |
CN113994384A (zh) | 使用机器学习的图像着色 | |
CN112069309B (zh) | 信息获取方法、装置、计算机设备及存储介质 | |
CN112771530A (zh) | 交互式web文档的自动导航 | |
US20220358727A1 (en) | Systems and Methods for Providing User Experiences in AR/VR Environments by Assistant Systems | |
CN114390217A (zh) | 视频合成方法、装置、计算机设备和存储介质 | |
CN116721334B (zh) | 图像生成模型的训练方法、装置、设备及存储介质 | |
WO2023207541A1 (zh) | 一种语音处理方法及相关设备 | |
CN114021582A (zh) | 结合语音信息的口语理解方法、装置、设备及存储介质 | |
CN117173497B (zh) | 一种图像生成方法、装置、电子设备及存储介质 | |
CN111414737B (zh) | 故事生成模型训练方法、装置、设备及存储介质 | |
CN117131272A (zh) | 人工智能内容生成方法、模型及系统 | |
CN115640611B (zh) | 一种自然语言处理模型的更新方法及相关设备 | |
CN116977992A (zh) | 文本信息识别方法、装置、计算机设备和存储介质 | |
KR102446305B1 (ko) | 하이라이팅 기능이 포함된 감정 분석 서비스를 위한 방법 및 장치 | |
CN114694633A (zh) | 语音合成方法、装置、设备及存储介质 | |
CN114170997A (zh) | 发音技巧检测方法、装置、存储介质及电子设备 | |
CN114360490A (zh) | 语音合成方法、装置、计算机设备和存储介质 | |
CN115862794A (zh) | 病历文本生成方法、装置、计算机设备及存储介质 | |
US20240045704A1 (en) | Dynamically Morphing Virtual Assistant Avatars for Assistant Systems | |
Ananthabhotla et al. | Cognitive audio interfaces: Mediating sonic information with an understanding of how we hear | |
US20240119932A1 (en) | Systems and Methods for Implementing Smart Assistant Systems | |
EP4343493A1 (en) | Presenting attention states associated with voice commands for assistant systems |
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 |