CN116756577B - 模型训练方法、装置、设备及存储介质 - Google Patents

模型训练方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN116756577B
CN116756577B CN202311048301.7A CN202311048301A CN116756577B CN 116756577 B CN116756577 B CN 116756577B CN 202311048301 A CN202311048301 A CN 202311048301A CN 116756577 B CN116756577 B CN 116756577B
Authority
CN
China
Prior art keywords
sample
training
data
negative
enhancement
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
Application number
CN202311048301.7A
Other languages
English (en)
Other versions
CN116756577A (zh
Inventor
请求不公布姓名
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Moore Threads Technology Co Ltd
Original Assignee
Moore Threads Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Moore Threads Technology Co Ltd filed Critical Moore Threads Technology Co Ltd
Priority to CN202311048301.7A priority Critical patent/CN116756577B/zh
Publication of CN116756577A publication Critical patent/CN116756577A/zh
Application granted granted Critical
Publication of CN116756577B publication Critical patent/CN116756577B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/0895Weakly supervised learning, e.g. semi-supervised or self-supervised learning
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computational Linguistics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Evolutionary Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Machine Translation (AREA)

Abstract

本申请实施例公开了一种模型训练方法、装置、设备及存储介质,方法包括:获取当前训练批次的训练样本集;利用预训练语言模型,对训练样本集中第一训练样本进行至少一次数据增强处理,得到第一增强数据,并利用第一增强数据和第一训练样本对应的第一样本数据构建得到正样本对;基于第一样本数据和负样本集合中多个负样本数据,构建多组负样本对;其中,负样本集合至少包括历史数据、除第一样本数据外的第二样本数据和/或第二增强数据;利用正样本对和多组负样本对预训练语言模型进行参数更新。这样提出了不改变批大小以扩大负样本的方法,使得负样本的数量不再受限于显存的大小,从而训练得到的模型能够达到更好的语言表征自监督学习效果。

Description

模型训练方法、装置、设备及存储介质
技术领域
本申请涉及但不限于自然语言处理技术领域,尤其涉及一种模型训练方法、装置、设备及存储介质。
背景技术
相关技术中无监督语义匹配训练方法主要是SimCSE模型(文本匹配模型),SimCSE模型是一种简单的对比句向量表征的框架,方案的核心是对比学习,对比学习是通过拉近相似数据的距离,拉远不相似数据的距离为目标,更好地学习数据的表征。使得其在文本匹配任务中产生更好的效果。
SimCSE主要是有两个缺点:1)正样本的构建只用了两次随机失活的方法,这个在有些数据集上效果一般;2)SimCSE中提到了批大小(batchsize)越大越好,SimCSE的负样本来自同一个批内,自己和同一个批的其他样本构成负样本,批大小越大,负样本会越多。但是批大小受限于图像处理器的显存,不能设置很大。
发明内容
有鉴于此,本申请实施例至少提供一种模型训练方法、装置、设备及存储介质。
本申请实施例的技术方案是这样实现的:
第一方面,本申请实施例提供一种模型训练方法,所述方法包括:
获取当前训练批次的训练样本集;利用预训练语言模型,对所述训练样本集中第一训练样本进行至少一次数据增强处理,得到第一增强数据,并利用所述第一增强数据和所述第一训练样本对应的第一样本数据构建得到正样本对;基于所述第一样本数据和负样本集合中多个负样本数据,构建多组负样本对;其中,所述负样本集合至少包括历史数据、除所述第一样本数据外的第二样本数据和/或第二增强数据,所述历史数据包括至少一个历史训练批次对应的训练数据;利用所述正样本对和所述多组负样本对所述预训练语言模型进行参数更新。
第二方面,本申请实施例提供一种模型训练装置,所述装置包括:
样本获取模块,用于获取当前训练批次的训练样本集;
数据增强模块,用于利用预训练语言模型,对所述训练样本集中第一训练样本进行至少一次数据增强处理,得到第一增强数据,并利用所述第一增强数据和所述第一训练样本对应的第一样本数据构建得到正样本对;
负样本扩大模块,用于基于所述第一样本数据和负样本集合中多个负样本数据,构建多组负样本对;其中,所述负样本集合至少包括历史数据 、除所述第一样本数据外的第二样本数据和/或第二增强数据,所述历史数据包括至少一个历史训练批次对应的训练数据;
优化训练模块,用于利用所述正样本对和所述多组负样本对所述预训练语言模型进行参数更新。
第三方面,本申请实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法中的部分或全部步骤。
第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法中的部分或全部步骤。
在本申请实施例中,首先获取当前训练批次的训练样本集;然后利用预训练语言模型,对所述训练样本集中第一训练样本进行至少一次数据增强处理,得到第一增强数据,并利用所述第一增强数据和所述第一训练样本对应的第一样本数据构建得到正样本对;再基于所述第一训练样本和动态变化的负样本集合中每一负样本,构建多组负样本对;最后利用所述正样本对和所述多组负样本对所述预训练语言模型进行参数更新;如此,通过至少一次数据增强的方式构建正样本对,可以适配更加多样的数据集;同时利用已训练完成的其它负样本扩充样本集合以构建多组负样本对,从而提出了不改变批大小以扩大负样本的方法,使得负样本的数量不再受限于显存的大小。这样训练得到的预训练语言模型能够达到更好的语言表征自监督学习效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开的技术方案。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本申请的实施例,并与说明书一起用于说明本申请的技术方案。
图1为本申请实施例提供的一种模型训练方法的流程示意图;
图2为本申请实施例提供的另一种模型训练方法的流程示意图;
图3为本申请实施例提供的再一种模型训练方法的流程示意图;
图4为本申请实施例提供的模型训练方法的逻辑流程图;
图5为本申请实施例提供的模型网络结构优化的示意图;
图6为本申请实施例提供的基于MoCo算法的自监督表征学习框架;
图7A为本申请实施例提供的基于相似度计算的向量矩阵的示意图;
图7B为本申请实施例提供的改进的向量矩阵的示意图;
图8为本申请实施例提供的标签矩阵的示意图;
图9为本申请实施例提供的一种模型训练装置的组成结构示意图;
图10为本申请实施例提供的一种计算机设备的硬件实体示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面结合附图和实施例对本申请的技术方案进一步详细阐述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
所涉及的术语“第一/第二/第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一/第二/第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请的目的,不是旨在限制本申请。
在对本申请实施例进行进一步详细说明之前,先对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
语言模型(Language model,LM)是描述词序列概率分布的数学模型,其广泛应用于语音识别(Automatic speech recognition,ASR)、机器翻译、分词、词性标注等自然语言处理任务中。
对比学习是一种自监督学习方法,不需要依赖人工标注的类别标签信息,直接利用数据本身作为监督信息。对比学习是一种为深度学习模型描述相似和不同事物的任务的方法。
BERT(Bidirectional Encoder Representations from Transformer)是一种预训练语言模型,其本质是通过在海量的语料的基础上进行自监督学习(自监督学习是指在没有人工标注的数据上运行的监督学习),为单词学习一个好的特征表示。在特定的自然语言处理(Natural Language Processing,NLP)任务中,可以直接使用BERT的特征表示作为该任务的词嵌入特征。所以BERT提供的是一个供其它任务迁移学习的模型,该模型可以根据任务微调或者固定之后作为特征提取器。
SimCSE模型是一种简单的对比句向量表征的框架,包含无监督和有监督两种方法。无监督学习:会采用随机失活(dropout)技术,对原始文本进行数据增强,构造出正样本,用于对比学习训练;监督学习:由于本身有正样本(相近样本),故无需使用随机失活技术,直接训练即可。SimCSE模型的核心是对比学习,对比学习是通过拉近相似数据的距离,拉远不相似数据的距离为目标,更好地学习数据的表征。使得其在文本匹配任务中产生更好的效果。
随机失活技术,指在前向传播的过程中,让某个神经元的激活值以一定的概率P停止工作,可以使模型更加泛化,不会太依赖某些神经元。因为每次都相当于在训练一个新的模型,所以可以有效避免模型发生过拟合。
由于对比学习是在正样本对和负样本对之间进行的,理论上更多的负例对可以导致更好的比较。但是SimCSE方案中正样本和负样本的构建分别存在以下不足:1)正样本的构建只用了两次随机失活的方法,这个在有些数据集上效果一般;2)SimCSE中提到了批大小越大越好,SimCSE的负样本来自同一个批内,自己和同一个批的其他样本构成负样本,批大小越大,负样本会越多。但是批大小受限于图像处理器(Graphics Processing Unit,GPU)的显存,不能设置很大。
本申请实施例提供一种模型训练方法,该方法可以由计算机设备的处理器执行。其中,计算机设备指的可以是服务器、笔记本电脑、平板电脑、台式计算机、智能电视、机顶盒、移动设备(例如移动电话、便携式视频播放器、个人数字助理、专用消息设备、便携式游戏设备)等具备模型训练能力的设备。图1为本申请实施例提供的一种模型训练方法的流程示意图,如图1所示,该方法包括如下步骤S110至步骤S140:
步骤S110,获取当前训练批次的训练样本集。
这里,所述训练样本集中可以包括多个样本语句,例如“一架飞机要起飞了”、“一个男人在吹一支大笛子”、“三个人在下棋”、“一个人在拉大提琴”、“有些人在战斗”、“那人在弹钢琴”等。
示例性地,训练样本集可以使用github上用于预训练语言模型训练的公开数据,也可以使用爬虫对百度百科或贴吧等网站进行爬取来获得。这个过程可以获得大量的公开的自然语言语料,以形成多个批次的训练样本集。
步骤S120,利用预训练语言模型,对所述训练样本集中第一训练样本进行至少一次数据增强处理,得到第一增强数据,并利用所述第一增强数据和所述第一训练样本对应的第一样本数据构建得到正样本对。
这里,所述第一训练样本为当前训练批次的训练样本集中的任意样本,在实施中可以从训练样本集中取多个第一训练样本,但是每个第一训练样本都进行同样的处理。
第一样本数据可以与第一增强数据的数据格式一致,例如同为编码向量数据,或者同为文本数据。第一样本数据可以为通过预训练语言模型对第一训练样本进行编码得到的数据,也可以为通过预训练语言模型对第一训练样本进行数据增强得到的数据。
在一些实施方式中,可以对第一训练样本的整个句子包含的符号做数据增强;其中符号(token)用于表示一个词语或一个字;在一些实施方式中,也可以设定一个比例,只对第一训练样本中部分符号做数据增强,例如第一训练样本中包括10个符号且设定比例为0.1的情况下,只对第一训练样本中任一符号进行数据增强即可。
需要说明的是,数据增强(Data Augmentation)是一种使用少量数据通过先验知识产生更多的相似生成数据来扩展训练数据集的方法。数据增强的方式包括但不限于顺序打乱、符号裁剪、特征裁剪、随机失活,通过不同增强方式构建正样本对能够使正样本更加丰富,可以适配更加多样的数据集。
步骤S130,基于所述第一样本数据和负样本集合中多个负样本数据,构建多组负样本对。
这里,所述负样本集合至少包括历史数据、除所述第一样本数据外的第二样本数据和/或第二增强数据,所述历史数据包括至少一个历史训练批次对应的训练数据。其中,第二增强数据为通过预训练模型对第二样本数据进行增强处理得到的数据,每一历史训练批次对应的训练数据包括正样本对和负样本对,在完成迭代训练过程之后进行存储,具体存储方式可以为数值、队列等形式,本申请实施例对此不作限定。
在实施中,每次训练时先获取上一次或某几次已训练完成的其它负样本数据,加入到负样本集合中,再将第一训练样本分别与负样本集合中每一负样本数据组合,形成每一组所述负样本对。
需要说明的是,SimCSE方案中提到了批大小(batchsize)越大越好,SimCSE的负样本是同一个批,自己和同一个批的其他样本构成负样本,批大小越大,负样本会越多。但是批大小受限于GPU的显存,不能设置很大。本申请实施例优化SimCSE方案的缺陷,获取已训练完成的其它负样本,并和同一批训练样本集中的负样本一起参与本轮训练,从而扩大了负样本,使得负样本的数量不再受限于显存的大小。
步骤S140,利用所述正样本对和所述多组负样本对所述预训练语言模型进行参数更新。
这里,所述预训练语言模型可以采用Bert、Roberta或tiny_bert其中之一。
在实施中,首先基于所述正样本对中每一正样本对应的编码向量和所述多组负样本对中每一负样本对应的编码向量,确定对比损失;然后利用所述对比损失,对所述预训练语言模型的参数进行调整,并基于参数调整后的预训练语言模型进行下一轮的训练,直到满足预设的收敛条件。其中,正样本对应的编码向量可以为第一样本数据,也可以为第一增强数据,负样本对应的编码向量可以为第二样本数据,也可以为第二增强数据,或历史训练数据中的第三样数据。
本申请实施例中,首先获取当前训练批次的训练样本集;然后利用预训练语言模型,对所述训练样本集中第一训练样本进行至少一次数据增强处理,得到第一增强数据,并利用所述第一增强数据和所述第一训练样本对应的第一样本数据构建得到正样本对;再基于所述第一样本数据和负样本集合中多个负样本数据,构建多组负样本对;最后利用所述正样本对和所述多组负样本对所述预训练语言模型进行参数更新;如此,通过至少一次数据增强的方式构建正样本对,可以适配更加多样的数据集;同时利用历史训练批次的训练样本扩充负样本集合以构建多组负样本对,从而提出了不改变批大小以扩大负样本的方法,使得负样本的数量不再受限于显存的大小。这样训练得到的预训练语言模型能够达到更好的语言表征自监督学习效果。
在一些实施例中,上述步骤S120“利用预训练语言模型,对所述训练样本集中第一训练样本进行至少一次数据增强处理,得到第一增强数据”可以包括如下步骤S121至步骤S122:
步骤S121,从预处理库中随机选取至少一种数据增强方案。
这里,所述预处理库中至少包括以下方案:顺序打乱、符号裁剪、特征裁剪、随机失活。
其中,所述顺序打乱(shuffle)表示更换语句中各个符号的位置标识(positionid)的顺序;所述符号裁剪(token cutoff)表示在某个符号(token)维度把嵌入向量(embedding)置为0;所述特征裁剪(feature cutoff)表示在嵌入矩阵中有768个维度,把某个维度的特征值(feature)置为0;所述随机失活(dropout),表示将同一个批次内的数据两次输入模型,模型对于同一句子的两次输出是不同的,两次输出互为正例,其他为负例,即同一语句的两次输出构成正样本对。
值得注意的是,本申请实施例预先设置包括所有数据增强方案方法的预处理库,然后在训练过程中随机选取一种数据增强方案对第一训练样本进行数据增强,使得模型对于兼容混合数据增强实现方案不敏感,从而能够在提升模型高效训练的同时,增强了模型对于部署前处理的鲁棒性。
步骤S122,在所述预训练语言模型中利用每一所述数据增强方案对所述第一训练样本中预设比例的符号进行至少一次处理,得到所述第一增强数据。
这里,所述预设比例为根据实际业务需要设定的,通常设置比较小的比例即可,例如可以为0.1,即只对第一训练样本中10%的符号做数据增强。
在上述实施例中,针对当前训练批次的训练样本集中的第一训练样本,通过随机采取至少一种数据增强方案进行增强处理,以得到第一增强数据。从而可以构建丰富多样的正样本,这样可以适配更加多样的数据集。
在一些实施例中,所述预训练语言模型包括数据增强网络,所述数据增强网络包括多层第一编码器,其中包括至少一个目标编码器;上述步骤S120中的“利用预训练语言模型,对所述训练样本集中第一训练样本进行至少一次数据增强处理,得到第一增强数据”,包括以下步骤S123至步骤S124:
步骤S123,利用所述目标编码器获取输入数据并对所述输入数据中的各个符号进行编码操作,得到第一数据。
这里,所述目标编码器同时具有编码和数据增强的功能,在目标编码器对输入数据依次进行编码和数据增强操作。
步骤S124,对所述第一数据进行数据增强操作,输出第二数据。
这里,所述输入数据为所述第一训练样本,或为所述目标编码器的前层编码器对应的输出数据,所述第二数据为所述目标编码器的后层编码器对应的输入数据,或为所述第一增强数据。
在一些实施方式中,目标编码器为首层的第一编码器的情况下,输入数据为第一训练样本,输出数据为该目标编码器的后层编码器对应的输入数据。
在一些实施方式中,目标编码器为非首层的第一编码器且非尾层的第一编码器的情况下,输入数据为前层编码器对应的输出数据,输出数据为该目标编码器的后层编码器对应的输入数据。
在一些实施方式中,目标编码器为尾层的第一编码器的情况下,输入数据为倒数第二层编码器对应的输出数据,输出数据为第一增强数据。
上述实施例中,利用预训练语言模型中的至少一个目标编码器对第一训练样本逐层进行编码和增强处理,从而通过最后一层目标编码器获得第一增强数据,以实现通过数据增强的方式构建正样本对。
在一些实施例中,所述方法还包括:将所述第一训练样本输入所述数据增强网络,得到所述第一样本数据。
这样,第一样本数据为对第一训练样本进行编码并增强处理得到的数据,第一样本数据为与第一增强数据具有相同数据格式的数据,可以与第一增强数据形成正样本对。
在一些实施例中,所述预训练语言模型包括编码网络,所述编码网络包括多层第二编码器;所述方法还包括:利用第三编码器获取第三数据进行编码操作,输出第四数据。
这里,所述第三编码器为任意一个所述第二编码器,所述第三数据为所述第一训练样本,或为所述第三编码器的前层编码器对应的输出数据,所述第四数据为所述第三编码器的后层编码器对应的输入数据,或为所述第一样本数据。
在一些实施方式中,第三编码器为首层的第二编码器的情况下,输入的第三数据为第一训练样本,输出的第四数据为第三编码器的后层编码器对应的输入数据。
在一些实施方式中,第三编码器为非首层的第二编码器且非尾层的第二编码器的情况下,输入的第三数据为第三编码器的前层编码器对应的输出数据,输出的第四数据为第三编码器的后层编码器对应的输入数据。
在一些实施方式中,第三编码器为尾层的第二编码器的情况下,输入的输入为倒数第二层的第二编码器对应的输出数据,输出的第四数据为第一样本数据。
上述实施例中,利用预训练语言模型中的多层第二编码器对第一训练样本逐层进行编码处理,从而通过最后一层第二编码器获得第一样本数据,以供后续和第一增强数据组建正样本对。
图2为本申请实施例提供的另一种模型训练方法的流程示意图,如图2所示,上述步骤S130“基于所述第一样本数据和负样本集合中多个负样本数据,构建多组负样本对”包括如下步骤S210至步骤S240:
步骤S210,从预设的缓存队列中选取预设数量的第三样本数据。
这里,所述缓存队列至少用于存储至少一个历史训练批次对应的所述训练数据。其中,缓存队列的队列容量限定,例如最大设置为65536,而批次的大小一般为128或256。每次训练之后存入本训练批次的训练数据,从而在下一批次训练时随机抽取若干第三样本数据作为负样本数据,这样扩大了负样本数据。
步骤S220,确定所述训练样本集中除所述第一训练样本之外的第二训练样本。
步骤S230,基于所述预设数量的第三样本数据、所述第二训练样本对应的所述第二样本数据和/或第二增强数据,生成所述负样本集合。
这里,由于预设数量的第三样本数据都是随机从缓存队列中获取的,不一定每次都取同样的数据,预设数量也可以根据需要设定,因此负样本集合中所包括负样本的数量和内容是动态变化的。
步骤S240,将所述第一样本数据分别与所述负样本集合中每一负样本数据组合,形成每一组所述负样本对。
这里,第一样本数据可以与负样本集合中所有负样本数据分别进行组合,得到多组负样本对。
在一些实施例中,所述方法还包括:在当前批次训练完成之后,利用所述多个负样本数据、所述第一样本数据和/或所述第一增强数据更新所述缓存队列。
这里,可以直接存入当前训练批次所使用的多个负样本数据、第一样本数据和/或第一增强数据负样本数据,也可以针对多个负样本数据、第一样本数据和/或第一增强数据和缓存队列中存储中的数据进行对比,只存储缓存队列中不存在的数据,或删除对比一致的数据后再存储。这样,存储当前训练批次的训练数据进入缓存队列,以确保在下一批次训练过程中,缓存队列中存储的数据包括至少一个历史训练批次对应的训练数据。
在一些实施例中,所述方法还包括:响应于所述缓存队列达到存储阈值,删除所述缓存队列中最早训练批次对应的训练数据。
这里,在缓存队列达到存储阈值的时候删除最早训练批次对应的训练数据,可以确保当前训练批次的数据顺利存入,同时维护缓存队列中存储的数据动态更新。
在一些实施例中,所述方法还包括以下步骤S250至步骤S280:
步骤S250,响应于一个训练周期结束,对所述当前训练批次的训练样本集和至少一个历史训练批次的训练样本集进行样本顺序打乱处理,得到至少两个训练批次的更新的训练样本集。
这里,所述训练周期(epoch)表征为在一个训练周期中所有训练样本集均分别完成一次训练。当所有训练批次的训练样本集即一个完整的数据集通过了预训练语言模型一次并且返回了一次,这个过程称为一个训练周期。也就是说,所有训练样本在预训练语言模型中都进行了一次正向传播和一次反向传播则完成了一个训练周期。
值得注意的是,如果每一训练批次的内容和顺序都是固定的,可能造成模型过渡拟合(overfit)这个顺序。因此,本申请实施例在每训练完一个训练周期后,重新对当前训练批次的训练样本集和至少一个历史训练批次的训练样本集进行顺序打乱,这样每个步骤处理的批数据都不一样,负样本数据会更加多样。
步骤S260,确定包括所述第一训练样本的一批所述更新的训练样本集为候选样本集。
这里,由于对多批训练样本集进行了数据打乱再重新分批,因此每一批更新的训练样本集中的数据内容和顺序都变换了,与第一训练样本同批的负样本会更新,本步骤先确定出第一训练样本所在批次的更新训练样本集为候选样本集。
步骤S270,确定所述候选样本集中除所述第一训练样本之外的第四训练样本。
步骤S280,基于所述第四训练样本对应的第四样本数据和/或第三增强数据,更新所述负样本集合。
这里,第四样本数据为通过预训练模型对第四训练样本进行编码得到的数据,第三增强数据为通过预训练模型对第四训练样本进行增强处理得到的数据。可以通过对比负样本集合,将第四样本数据和/或第三增强数据中不在负样本集合中的数据更新进负样本集合。
上述实施例中通过对多个批次的训练数据进行重新排序再分批,并更新负样本集合,使得负样本集合是动态更新的,后续可以利用第一训练样本和该负样本集合构建新的负样本对,丰富了负样本数据。
图3为本申请实施例提供的再一种模型训练方法的流程示意图,如图3所示,上述步骤S140“利用所述正样本对和所述多组负样本对所述预训练语言模型进行参数更新”包括如下步骤S310至步骤S320:
步骤S310,基于所述正样本对中每一正样本对应的编码向量和所述多组负样本对中每一负样本对应的编码向量,确定对比损失。
这里,对比损失的计算可以通过infoNCE损失函数计算。对比损失旨在在特征空间中衡量每个样本对之间的相似性,目标是让相似样本之间的特征拉的比较近,不相似样本之间的特征尽量拉远。
需要说明的是,对比学习中正样本和负样本都放在一起,理解成一个字典,每个样本就是一个条目(key),然后一开始选中作为锚点(anchor)的正样本看作查询样本(query),从而对比学习就转换成一个字典查询的问题,也就是说对比学习要训练一些编码器,然后进行字典的查找,查找的目的是让一个已经编码好的查询样本尽可能和它匹配的那个特征(正样本编码得到的编码向量)相似,并和其他的负样本编码得到的编码向量远离,这样整个自监督学习就变成了一个对比学习的框架,然后使用对比学习的损失函数即对比损失进行参数更新。
在一些实施方式中,针对所述正样本对和所述负样本对中每一样本,对所述每一样本的编码向量分别与其他样本的编码向量进行相似度计算,得到向量矩阵;基于所述向量矩阵和构建的标签矩阵,确定所述对比损失。
这里,所述标签矩阵用于表征任意两个样本之间的正负样本对关系,且用于表征正样本对关系的标签和用于表征负样本对关系的标签不同,例如所述正样本对之间的标签为1,且所述负样本对之间的标签为0。
相似度计算可以采用计算余弦相似度的方式,还可以是基于欧式距离的相似度计算、杰德卡相似度计算等,本申请实施例对此不作限定。标签矩阵中每一元素的值表示两个样本是否为正样本对,从而对向量矩阵和标签矩阵求交叉熵损失,即可得到对比损失。
步骤S320,利用所述对比损失,对所述预训练语言模型的参数进行反向传播更新。
这里,在每一迭代中,基于上一次训练过程计算的对比损失更新预训练语言模型中的编码器的参数,再利用更新后的编码器再次提取各样本的特征,直至达到收敛条件,停止训练过程。
本申请实施例中,将构建的正样本对和多组负样本对输入到预训练语言模型中,利用模型输出的编码向量计算对比损失,并通过反向传播最小化正样本对之间的距离,最大化负样本对之间的距离,进行参数更新。这样,可以训练得到具有相似文本匹配能力的预训练语言模型。
下面结合一个具体实施例对上述模型训练方法进行说明,然而值得注意的是,该具体实施例仅是为了更好地说明本申请,并不构成对本申请的不当限定。
图4为本申请实施例提供的模型训练方法的逻辑流程图,如图4所示,所述方法包括如下步骤S401至步骤S405:
步骤S401,按句子整理好无监督数据。
示例地,数据样例如下:“一架飞机要起飞了”、“一个男人在吹一支大笛子”、“一个人正把切碎的奶酪撒在比萨饼上”、“三个人在下棋”、“一个人在拉大提琴”、“有些人在战斗”、“一个男人在抽烟”、“那人在弹钢琴”。
步骤S402,构建正样本对。
这里,正样本可采用数据增强的方式去构建,将一句文本(相当于上述第一训练样本)做两次数据增强,两次可采用同样的方法,也可采用不同的方法,生成两个句子,这两个句子就构成了正样本对。
数据增强包括以下方式:顺序打乱,表示更换语句中各个符号的位置标识(position id)的顺序;符号裁剪,表示在某个符号维度把嵌入向量置为0;特征裁剪,表示在嵌入矩阵中有768个维度,把某个维度的特征值(feature)置为0;随机失活,即SimCSE无监督学习的方法。
示例地,选择一种或两种数据增强方案,设定一个比较小的比例(相当于所述预设比例,如设定0.1,则只对原始语句中10%的符号做数据增强),对原始语句做两次或者一次数据增强。(原始语句作为查询词(query),做一次数据增强为第一语句(query1),那么查询词和第一语句就是一对正样本。也可对原始语句分别做两次数据增强,分别得到第一语句(query1)和第二语句(query2),则第一语句和第二语句构成正样本对。
在一些实施方式中,假定第一语句是对原始语句用顺序打乱方案做数据增强得到的,示例如下表1:
表1 通过顺序打乱的增强方式构建正样本对
步骤S403,对预训练语言模型的网络结构进行优化。
这里,针对经过数据增强处理的第一语句(相当于上述第一正样本),将语义匹配模型的每层编码器的输出结果都进行数据增强,值得注意的是,数据增强方法及比例必须和步骤S402中采样的数据增强方法和比例一致。
图5为本申请实施例提供的模型网络结构优化的示意图,如图5所示,假定输入的原始语句501包括6个符号,通过对原始语句中第2个符号和第3个符号进行顺序打乱,得到第一语句502。将原始语句501和第一语句502分别输入为符号序列“CLS token1 token2token3 token4 token5 token6 SEP”和“CLS token1 token3 token2 token4 token5token6 SEP”,其中,在输入的每一个序列开头都插入特定的分类符号[CLS],该分类符号对应的最后一层编码器输出被用来起到聚集整个语句序列表征信息的作用。在语句序列符号中把分割符号[SEP]插入到每个句子后,以分开不同的句子。左侧为原始的预训练语言模型示意结构,该结构中第二层的输入数据503、第三层的输入数据504等均是一致的语句序列,右侧为优化的预训练语言模型示意结构,在该结构中对每层编码器的输出结果进行同样的顺序打乱处理,可以看出右侧第二层的输入数据505是对第一层的输出结果中第四个符号“token4”和第五个符号“token5”进行了顺序调换,右侧第三层的输入数据506是对右侧第二层的输出结果中第二个符号“token3”和第三个符号符号“token2”进行了顺序调换。也就是说,每层编码器的输入结果都不一样,因为每次顺序打乱是随机的,随机交换两个符号的位置。
步骤S404,构建负样本对。
在一些实施方式中,每训练完一个训练周期,重新对至少一个批次的训练样本集做顺序打乱,这样训练模型的每一步(step)的批数据都不一样,负样本会更加多样,实施代码如下:
“for epoch in range(EPOCHS):
train_dataloader =
DataLoader(TrainDataset(train_data), batch_size=BATCH_SIZE, shuffle=True)
train(model, train_dataloader, dev_dataloader, optimizer) ”
在一些实施方式中,采用MoCo v1的方法扩大负样本,模型结构如图6所示,增加了一个缓存队列(queue),来存储之前批次的负样本数据,然后从缓存队列里采用负样本,参与本轮训练,这样可以拿到更多的负样本。
在一些实施方式中,以上缓存队列的方式和MoCo v1的方法可同时使用,也可单独使用。同时使用效果更佳,模型收敛会更快。
图6为本申请实施例中提供的基于MoCo算法的自监督表征学习框架,如图6所示,从正样本对中随机选择一个正样本作为查询样本 输入到查询编码器601得到对应的编码特征/>,另一正样本连同一组负样本{/>}一起输入到运动编码器602进行特征提取,并动态维护一个特征队列603例如{k0, k1, k2,…},依次计算查询样本/>的编码特征/>与特征队列603中每一负样本之间的相似性,进而通过公式(1)计算对比损失604。
公式(1);
其中,为对比损失,/>为查询样本,/>为正样本,/>为温度系数,/>为任一负样本,K为负样本总数,/>为变量,S采用cos余弦函数。
需要说明的是,分子表示查询样本对正样本的点积,所谓点积就是描述查询样本和正样本两个特征向量之间的距离。分母中,求和是针对字典中的所有条目,包括一个正样本和所有负样本,也就是说,该损失函数是一个K+1(/>个负样本,1个正样本)的SoftMax分类器的对数损失,目的是将查询样本分类成/>这个类别。
可以看出,公式(1)中分子表示查询样本对正样本的点积,所谓点积就是描述查询样本和正样本两个特征向量之间的距离,相当于上述第一距离。公式(1)分母中,求和是针对字典中的所有条目,包括一个正样本和所有负样本,也就是说,该损失函数是一个K+1(K个负样本,1个正样本)的SoftMax分类器的对数损失,目的是将查询样本分类成这个类别。
需要说明的是,温度系数用来控制整体损失分布的形状,取值越大,分布越平滑,取值越小,分布越尖锐。因此对比学习中对温度参数的设置会比较讲究,温度参数过大,对比损失对所有负样本一视同仁,导致模型的学习没有轻重;温度参数过小,导致模型只关注特别困难的负样本,而这些负样本也有可能是潜在的正样本(比如和查询样本是同一类别的样本等),模型过多关注困难的负样本,会导致模型很难收敛,或者模型学习的特征泛化性能比较差。
步骤S405,利用正样本对和负样本对训练语义匹配模型。
这里,首先在一台带GPU的服务器上设定好批大小,选取一条样本例如第一训练样本,按照步骤S402的方式做数据增强,构成正样本对,同批的其他样本和从缓存队列中采集的样本作为负样本,通过计算对比损失反向传播学习。
在实施中,可以通过矩阵完成一个批次的批量样本计算,举例说明:假定缓存队列有e、f、g、h、i、j、k数据,某一批训练样本集中的训练数据有[a, b, c, d],对每一训练样本做数据增强得到[a, a1, b, b1, c, c1, d, d1],再从缓存队列里采样3个负样本数据e、f、g。需要说明的是,上述a、a1、b、b1、……e、f、g都是模型输出的编码向量,其中a、b、c、d、e、f、g都是通过原始的预训练语言模型算出的向量,a1、b1、c1、d1都是对预训练语言模型中每一层编码器的输出结果进行同样的数据增强处理后算出的向量,具体包括以下步骤S1至S11:
步骤S1,a与分别与a1、b、b1、c、c1、d、d1、e、f、g做余弦相似度,其值记录到向量矩阵当中。
步骤S2,a1与分别与a、b、b1、c、c1、d、d1、e、f、g做余弦相似度,其值记录到向量矩阵当中。
步骤S3,b与分别与a、a1、b1、c、c1、d、d1、e、f、g做余弦相似度,其值记录到向量矩阵当中。
步骤S4,b1与分别与a、a1、b、c、c1、d、d1、e、f、g做余弦相似度,其值记录到向量矩阵当中。
步骤S5,c与分别与a、a1、b、b1、c1、d、d1、e、f、g做余弦相似度,其值记录到向量矩阵当中。
步骤S6,c1与分别与a、a1、b、b1、c、d、d1、e、f、g做余弦相似度,其值记录到向量矩阵当中。
步骤S7,d与分别与a、a1、b、b1、c、c1、d1、e、f、g做余弦相似度,其值记录到向量矩阵当中。
步骤S8,d1与分别与a、a1、b、b1、c、c1、d、e、f、g做余弦相似度,其值记录到向量矩阵当中。
最终确定的向量矩阵图7A所示,其中,向量矩阵中样本与样本自身之间的相似度为1.0,例如(a, a)、(a1, a1)、(b, b)、(b1, b1)、(c, c)、(c1, c1)、(d, d)、(d1, d1),正样本对中互为正例的两个样本例如(a, a1)、(a1, a)、(b, b1)、(b1, b)、(c, c1)、(c1, c)(d, d1)、(d1, d)之间的相似度相对较高例如0.9或0.8,其它元素的值都是随机编的。
在实际操作中,由于样本自身跟自己做余弦相似度是无意义的,因此如图7B所示,将上述初步得到的向量矩阵的对角线的值缩小到很小的值(例如0.01),得到最终参与损失计算的向量矩阵。
步骤S9,构建标签矩阵,其中正样本对中的两个样本例如a和a1、b和b1、c和c1、d和d1之间的值为1,其余全是0,如图8所示。
步骤S10,将向量矩阵和标签矩阵做交叉熵损失函数,反向传播学习参数。
值得注意的是,上面步骤S1至步骤S10的过程其实就是infoNCE损失函数的计算过程。
步骤S11,每训完一个训练周期,对至少一批样本训练集进行重新打乱,重复上面步骤S1至步骤S10。
本申请实施例提供一种无监督语义匹配模型的训练优化方法,所构建的正样本对比SimCSE方案中的正样本更加丰富,可以适配更加多样的数据集;同时本申请实施例提出了扩大负样本的方法,不再受限于显存的大小。经实验论证,利用本申请实施例提供的模型训练方法训练得到的语义匹配模型在afqmc数据集上的准确率可由86.92提升到88.11。
基于前述的实施例,本申请实施例提供一种模型训练装置,该装置包括所包括的各模块、以及各模块所包括的各子模块及各单元,可以通过计算机设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(CentralProcessing Unit,CPU)、微处理器(Microprocessor Unit,MPU)、数字信号处理器(DigitalSignal Processor,DSP)或现场可编程门阵列(Field Programmable Gate Array,FPGA)等。
图9为本申请实施例提供的一种模型训练装置的组成结构示意图,如图9所示,模型训练装置900包括:样本获取模块910、数据增强模块920、负样本扩大模块930和优化训练模块940,其中:
样本获取模块910,用于获取当前训练批次的训练样本集;
数据增强模块920,用于利用预训练语言模型,对所述训练样本集中第一训练样本进行至少一次数据增强处理,得到第一增强数据,并利用所述第一增强数据和所述第一训练样本对应的第一样本数据构建得到正样本对;
负样本扩大模块930,用于基于所述第一样本数据和负样本集合中多个负样本数据,构建多组负样本对;其中,所述负样本集合至少包括历史数据、除所述第一样本数据外的第二样本数据和/或第二增强数据,所述历史数据包括至少一个历史训练批次对应的训练数据;
优化训练模块940,用于利用所述正样本对和所述多组负样本对所述预训练语言模型进行参数更新。
在一些可能的实施例中,所述数据增强模块910包括:方案选取子模块,用于从预处理库中随机选取至少一种数据增强方案;其中,所述预处理库中至少包括以下方案:顺序打乱、符号裁剪、特征裁剪、随机失活;增强处理子模块,用于在所述预训练语言模型中利用每一所述数据增强方案对所述第一训练样本中预设比例的符号进行至少一次处理,得到所述第一增强数据。
在一些可能的实施例中,所述负样本扩大模块920包括:样本获取子模块,用于从预设的缓存队列中选取预设数量的第三样本数据;其中,所述缓存队列至少用于存储至少一个历史训练批次对应的所述训练数据;第一确定子模块,用于确定所述训练样本集中除所述第一训练样本之外的第二训练样本;第一生成子模块,用于基于所述预设数量的第三样本数据、所述第二训练样本对应的所述第二样本数据和/或第二增强数据,生成所述负样本集合;样本对构建子模块,用于将所述第一样本数据分别与所述负样本集合中每一负样本数据组合,形成每一组所述负样本对。
在一些可能的实施例中,所述负样本扩大模块920还包括:顺序打乱子模块,用于响应于一个训练周期结束,对所述当前训练批次的训练样本集和至少一个历史训练批次的训练样本集进行样本顺序打乱处理,得到至少两个训练批次的更新的训练样本集;其中,所述训练周期结束表征为在一个训练周期中所有训练样本集均分别完成一次训练;第二确定子模块,用于确定包括所述第一训练样本的一批更新的训练样本集为候选样本集;第一更新子模块,用于基于所述第四训练样本对应的第四样本数据和/或第三增强数据,更新所述负样本集合。
在一些可能的实施例中,所述负样本扩大模块920还包括:第二更新子模块,用于在当前批次训练完成之后,利用所述多个负样本数据、所述第一样本数据和/或所述第一增强数据更新所述缓存队列。
在一些可能的实施例中,所述负样本扩大模块920还包括:删除子模块,用于响应于所述缓存队列达到存储阈值,删除所述缓存队列中最早训练批次对应的训练数据。
在一些可能的实施例中,所述优化训练模块940包括:损失确定子模块,用于基于所述正样本对中每一正样本对应的编码向量和所述多组负样本对中每一负样本对应的编码向量,确定对比损失;参数优化子模块,用于用所述对比损失,对所述预训练语言模型的参数进行反向传播更新。
在一些可能的实施例中,所述损失确定子模块包括:相似度计算单元,用于针对所述正样本对和所述负样本对中每一样本,对所述每一样本的编码向量分别与其他样本的编码向量进行相似度计算,得到向量矩阵;第六确定单元,用于基于所述向量矩阵和构建的标签矩阵,确定所述对比损失;其中,所述标签矩阵用于表征任意两个样本之间的正负样本对关系,且用于表征正样本对关系的标签和用于表征负样本对关系的标签不同。
在一些可能的实施例中,所述预训练语言模型包括数据增强网络,所述数据增强网络包括多层第一编码器,其中包括至少一个目标编码器;所述数据增强模块920包括:编码子模块,用于利用所述目标编码器获取输入数据并对所述输入数据中的各个符号进行编码操作,得到第一数据;增强子模块,用于对所述第一数据进行数据增强操作,输出第二数据;其中,所述输入数据为所述第一训练样本,或为所述目标编码器的前层编码器对应的输出数据,所述第二数据为所述目标编码器的后层编码器对应的输入数据,或为所述第一增强数据。
在一些可能的实施例中,所述数据增强模块920还用于将所述第一训练样本输入所述数据增强网络,得到所述第一样本数据。
在一些可能的实施例中,所述预训练语言模型包括编码网络,所述编码网络包括多层第二编码器;所述装置还包括编码模块,用于利用第三编码器获取第三数据进行编码操作,输出第四数据;其中,所述第三编码器为任意一个所述第二编码器,所述第三数据为所述第一训练样本,或为所述第三编码器的前层编码器对应的输出数据,所述第四数据为所述第三编码器的后层编码器对应的输入数据,或为所述第一样本数据。
以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上述方法实施例描述的方法,对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述的模型训练方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read OnlyMemory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件、软件或固件,或者硬件、软件、固件三者之间的任意结合。
本申请实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法中的部分或全部步骤。
本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法中的部分或全部步骤。所述计算机可读存储介质可以是瞬时性的,也可以是非瞬时性的。
本申请实施例提供一种计算机程序,包括计算机可读代码,在所述计算机可读代码在计算机设备中运行的情况下,所述计算机设备中的处理器执行用于实现上述方法中的部分或全部步骤。
本申请实施例提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序被计算机读取并执行时,实现上述方法中的部分或全部步骤。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一些实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一些实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
这里需要指出的是:上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考。以上设备、存储介质、计算机程序及计算机程序产品实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请设备、存储介质、计算机程序及计算机程序产品实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
需要说明的是,图10为本申请实施例中计算机设备的一种硬件实体示意图,如图10所示,该计算机设备1000的硬件实体包括:处理器1001、通信接口1002和存储器1003,其中:
处理器1001通常控制计算机设备1000的总体操作。
通信接口1002可以使计算机设备通过网络与其他终端或服务器通信。
存储器1003配置为存储由处理器1001可执行的指令和应用,还可以缓存待处理器1001以及计算机设备1000中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(FLASH)或随机访问存储器(RandomAccess Memory,RAM)实现。处理器1001、通信接口1002和存储器1003之间可以通过总线1004进行数据传输。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各步骤/过程的序号的大小并不意味着执行顺序的先后,各步骤/过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。

Claims (13)

1.一种模型训练方法,其特征在于,所述方法包括:
获取当前训练批次的训练样本集;所述训练样本集包括多个文本语句;
利用预训练语言模型,对所述训练样本集中第一训练样本进行至少一次数据增强处理,得到第一增强数据,并利用所述第一增强数据和所述第一训练样本对应的第一样本数据构建得到正样本对;
基于所述第一样本数据和所述当前训练批次的负样本集合中多个负样本数据,构建多组负样本对;其中,所述当前训练批次的负样本集合至少基于历史数据、除所述第一样本数据外的第二样本数据和/或第二增强数据生成,所述历史数据包括至少一个历史训练批次对应的训练数据;
利用所述正样本对和所述多组负样本对所述预训练语言模型进行参数更新;
所述方法还包括:
响应于一个训练周期结束,对所述当前训练批次的训练样本集和至少一个历史训练批次的训练样本集进行样本顺序打乱处理,得到至少两个训练批次的更新的训练样本集;其中,所述训练周期结束表征为在一个训练周期中所有训练样本集均分别完成一次训练;确定包括所述第一训练样本的一批所述更新的训练样本集为候选样本集;确定所述候选样本集中除所述第一训练样本之外的第四训练样本;通过对比负样本集合,将所述第四训练样本对应的第四样本数据和/或第三增强数据中不在负样本集合中的数据更新进负样本集合。
2.根据权利要求1所述的方法,其特征在于,所述利用预训练语言模型,对所述训练样本集中第一训练样本进行至少一次数据增强处理,得到第一增强数据,包括:
从预处理库中随机选取至少一种数据增强方案;其中,所述预处理库中至少包括以下方案:顺序打乱、符号裁剪、特征裁剪、随机失活;
在所述预训练语言模型中利用每一所述数据增强方案对所述第一训练样本中预设比例的符号进行至少一次处理,得到所述第一增强数据。
3.根据权利要求1所述的方法,其特征在于,所述基于所述第一样本数据和负样本集合中多个负样本数据,构建多组负样本对,包括:
从预设的缓存队列中选取预设数量的第三样本数据;其中,所述缓存队列至少用于存储至少一个历史训练批次对应的所述训练数据;
确定所述训练样本集中除所述第一训练样本之外的第二训练样本;
基于所述预设数量的第三样本数据、所述第二训练样本对应的所述第二样本数据和/或第二增强数据,生成所述负样本集合;
将所述第一样本数据分别与所述负样本集合中每一负样本数据组合,形成每一组所述负样本对。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在当前批次训练完成之后,利用所述多个负样本数据、所述第一样本数据和/或所述第一增强数据更新所述缓存队列。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
响应于所述缓存队列达到存储阈值,删除所述缓存队列中最早训练批次对应的训练数据。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述利用所述正样本对和所述多组负样本对所述预训练语言模型进行参数更新,包括:
基于所述正样本对中每一正样本对应的编码向量和所述多组负样本对中每一负样本对应的编码向量,确定对比损失;其中,所述正样本对应的编码向量为所述第一样本数据或所述第一增强数据;
利用所述对比损失,对所述预训练语言模型的参数进行反向传播更新。
7.根据权利要求6所述的方法,其特征在于,所述基于所述正样本对中每一正样本对应的编码向量和所述多组负样本对中每一负样本对应的编码向量,确定对比损失,包括:
针对所述正样本对和所述负样本对中每一样本,对所述每一样本的编码向量分别与其他样本的编码向量进行相似度计算,得到向量矩阵;
基于所述向量矩阵和构建的标签矩阵,确定所述对比损失;其中,所述标签矩阵用于表征任意两个样本之间的正负样本对关系,且用于表征正样本对关系的标签和用于表征负样本对关系的标签不同。
8.根据权利要求1至5任一项所述的方法,其特征在于,所述预训练语言模型包括数据增强网络,所述数据增强网络包括多层第一编码器,其中包括至少一个目标编码器;
所述利用预训练语言模型,对所述训练样本集中第一训练样本进行至少一次数据增强处理,得到第一增强数据,包括:
利用所述目标编码器获取输入数据并对所述输入数据中的各个符号进行编码操作,得到第一数据;
对所述第一数据进行数据增强操作,输出第二数据;
其中,所述输入数据为所述第一训练样本,或为所述目标编码器的前层编码器对应的输出数据,所述第二数据为所述目标编码器的后层编码器对应的输入数据,或为所述第一增强数据。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
将所述第一训练样本输入所述数据增强网络,得到所述第一样本数据。
10.根据权利要求8所述的方法,其特征在于,所述预训练语言模型包括编码网络,所述编码网络包括多层第二编码器;所述方法还包括:
利用第三编码器获取第三数据进行编码操作,输出第四数据;
其中,所述第三编码器为任意一个所述第二编码器,所述第三数据为所述第一训练样本,或为所述第三编码器的前层编码器对应的输出数据,所述第四数据为所述第三编码器的后层编码器对应的输入数据,或为所述第一样本数据。
11.一种模型训练装置,其特征在于,所述装置包括:
样本获取模块,用于获取当前训练批次的训练样本集;所述训练样本集包括多个文本语句;
数据增强模块,用于利用预训练语言模型,对所述训练样本集中第一训练样本进行至少一次数据增强处理,得到第一增强数据,并利用所述第一增强数据和所述第一训练样本对应的第一样本数据构建得到正样本对;
负样本扩大模块,用于基于所述第一样本数据和所述当前训练批次的负样本集合中多个负样本数据,构建多组负样本对;其中,所述当前训练批次的负样本集合至少基于历史数据、除所述第一样本数据外的第二样本数据和/或第二增强数据生成,所述历史数据包括至少一个历史训练批次对应的训练数据;
优化训练模块,用于利用所述正样本对和所述多组负样本对,对所述预训练语言模型进行参数更新;
所述负样本扩大模块:还用于响应于一个训练周期结束,对所述当前训练批次的训练样本集和至少一个历史训练批次的训练样本集进行样本顺序打乱处理,得到至少两个训练批次的更新的训练样本集;其中,所述训练周期结束表征为在一个训练周期中所有训练样本集均分别完成一次训练;确定包括所述第一训练样本的一批所述更新的训练样本集为候选样本集;确定所述候选样本集中除所述第一训练样本之外的第四训练样本;通过对比负样本集合,将所述第四训练样本对应的第四样本数据和/或第三增强数据中不在负样本集合中的数据更新进负样本集合。
12.一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至10任一项所述方法中的步骤。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至10任一项所述方法中的步骤。
CN202311048301.7A 2023-08-18 2023-08-18 模型训练方法、装置、设备及存储介质 Active CN116756577B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311048301.7A CN116756577B (zh) 2023-08-18 2023-08-18 模型训练方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311048301.7A CN116756577B (zh) 2023-08-18 2023-08-18 模型训练方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN116756577A CN116756577A (zh) 2023-09-15
CN116756577B true CN116756577B (zh) 2024-02-02

Family

ID=87950057

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311048301.7A Active CN116756577B (zh) 2023-08-18 2023-08-18 模型训练方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN116756577B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117312394B (zh) * 2023-11-08 2024-03-05 之江实验室 一种数据访问方法、装置、存储介质及电子设备
CN117708601B (zh) * 2024-02-06 2024-04-26 智慧眼科技股份有限公司 一种相似度计算模型训练方法、装置、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114897060A (zh) * 2022-04-25 2022-08-12 中国平安人寿保险股份有限公司 样本分类模型的训练方法和装置、样本分类方法和装置
CN115344672A (zh) * 2022-10-18 2022-11-15 北京澜舟科技有限公司 文档检索模型训练方法、检索方法及存储介质
CN116564401A (zh) * 2023-04-10 2023-08-08 深圳华大智造科技股份有限公司 一种模型训练、细胞分割系统、方法及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230169332A1 (en) * 2021-11-28 2023-06-01 Naver Corporation Method and system for machine learning from imbalanced data with noisy labels

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114897060A (zh) * 2022-04-25 2022-08-12 中国平安人寿保险股份有限公司 样本分类模型的训练方法和装置、样本分类方法和装置
CN115344672A (zh) * 2022-10-18 2022-11-15 北京澜舟科技有限公司 文档检索模型训练方法、检索方法及存储介质
CN116564401A (zh) * 2023-04-10 2023-08-08 深圳华大智造科技股份有限公司 一种模型训练、细胞分割系统、方法及存储介质

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"An Ant Colony Optimization Algorithm Based on Dynamic Evaporation Rate Fitting";Chen Hao 等;《Proceedings of 2011 IEEE 3rd International Conference on Communication Software and Networks(ICCSN 2011) VOL01》;全文 *
"基于深度学习的时间序列数据异常检测方法的研究";张宁;《中国优秀硕士学位论文全文数据库 基础科学辑》;全文 *
"基于集成深度学习的文本匹配研究";陈浩;《中国优秀硕士学位论文全文数据库 信息科技辑》;全文 *
"少量样本下基于孪生CNN的SAR目标识别";王博威 等;《雷达科学与技术》;第17卷(第6期);全文 *

Also Published As

Publication number Publication date
CN116756577A (zh) 2023-09-15

Similar Documents

Publication Publication Date Title
WO2020228376A1 (zh) 文本处理方法、模型训练方法和装置
CN116756577B (zh) 模型训练方法、装置、设备及存储介质
Fabius et al. Variational recurrent auto-encoders
CN110597961B (zh) 一种文本类目标注方法、装置、电子设备及存储介质
CN109815336B (zh) 一种文本聚合方法及系统
CN112528637B (zh) 文本处理模型训练方法、装置、计算机设备和存储介质
CN113158665A (zh) 一种基于文本摘要生成与双向语料改善对话文本生成的方法
CN114969316B (zh) 一种文本数据处理方法、装置、设备以及介质
WO2020073700A1 (zh) 图像描述模型的训练方法、装置及存储介质
CN110263147B (zh) 推送信息的生成方法及装置
CN112749274B (zh) 基于注意力机制和干扰词删除的中文文本分类方法
WO2020199595A1 (zh) 基于词袋模型的长文本分类方法、装置、计算机设备及存储介质
WO2023134083A1 (zh) 基于文本的情感分类方法和装置、计算机设备、存储介质
CN113705313A (zh) 文本识别方法、装置、设备及介质
CN111767697B (zh) 文本处理方法、装置、计算机设备以及存储介质
CN112101042A (zh) 文本情绪识别方法、装置、终端设备和存储介质
CN111046178A (zh) 一种文本序列生成方法及其系统
CN113934835B (zh) 结合关键词和语义理解表征的检索式回复对话方法及系统
CN113870863A (zh) 声纹识别方法及装置、存储介质及电子设备
CN113869005A (zh) 一种基于语句相似度的预训练模型方法和系统
Tan et al. Image captioning with sparse recurrent neural network
CN110941958A (zh) 一种文本类目标注方法、装置、电子设备及存储介质
CN115858736A (zh) 一种基于情感提示微调的情感文本生成方法
CN116821781A (zh) 分类模型的训练方法、文本分析方法及相关设备
CN114329005A (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