模型预训练时使用的MLM和NSP

使用nsp任务和mlm任务有助于学习单词级别、句子级别的语义信息

如果选择使用NSP任务,我们需要使用带有[CLS] token的输入并设置对应的标签(连续性)。模型在进行预测时根据学习到的[CLS] token的表示来判断输入句子的连续性。
具体步细节如下:
1.构建训练数据对,将两个句子按照需求的格式进行组合,例如[CLS] 句子 A [SEP] 句子 B [SEP]。[CLS] token表示句子级别的语义信息,[SEP] token用于分隔不同句子。
2.标记训练样本的连续性:对于每一对句子,通过判断它们在原文本中是否连续来设置标签。如果是连续的,标签为1;如果不连续,标签为0。(就是标记[cls]解码之后应该为什么标签)
3.把输入序列例如[CLS] 句子 A [SEP] 句子 B [SEP],转换为适合预训练模型训练的向量表示,然后输入模型
4.模型训练,在这个过程中模型将学习到句子级别的语义信息,即对[cls]的编码表示包含了句子级别的语义信息。模型在进行预测时可以根据[CLS] token的表示来判断输入句子的连续性。通过语义关系就能判断出这两个句子是否是连续的。


如果选择使用MLM任务,则它要求在输入序列中随机遮盖一些单词,模型通过训练学习来预测这些被遮盖的单词。
具体细节如下:
1.掩码生成:将句子A中的一部分词随机选择并遮盖(通常是15%的词),用特殊的掩码符号"[MASK]"替代。同时,一部分被遮盖的词将被替换为随机的其他词(通常是80%的替换概率),另一部分维持原样。
2.输入构建:将生成的句子A作为输入传入BERT模型中。模型会对句子A中的每个词进行处理,并尝试预测被遮盖的词。
3.损失计算:对于每个被遮盖的词,与原始句子中相应的位置进行比较,计算预测词与原始词之间的交叉熵损失。注意,只有被遮盖的词的预测结果会被用来计算损失,其他位置的预测结果会被忽略。
4.反向传播和优化:根据计算得到的损失,使用反向传播算法更新BERT模型中的参数。

在预训练中,使用MLM任务通常可以提升效果。原因如下:
语义表达丰富度:MLM任务要求模型从上下文中预测被遮盖的单词,这使得模型不仅需要理解单词的含义,还需要考虑上下文的语义信息。这有助于模型更好地学习到单词和句子之间的关系,提高了模型的语义表达能力。(可以这么理解,原本为了理解整个文章,可以阅读整个文章的内容来理解,但是为了加深理解,我们可以选择性去掉一些句子,这样可以更加深入理解整个文章学习整个文章要传达什么,因为你都可以推测出空出来的部分应该写些什么内容,那就肯定是理解到了作者写这个文章的意图,以及作者是如何写好这篇文章的。类推,模型学习一句话里每个词的表示,本来可以根据一个完整的话学习的,但是如果学习的过程中还要推测空出来的单词填什么,如果都能正确预测填什么了,那肯定是对整句话的语义了如指掌了)
数据增强:通过在训练中随机遮盖一些单词,并要求模型预测这些遮盖的单词,MLM任务提供了一种数据增强的方式,可以扩充训练数据。这有助于减少过拟合,并提高模型的泛化能力。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值