You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于BERT预训练中MLM与NSP同时执行的实现疑问

BERT预训练中MLM与NSP联合训练的实现细节

1. MLM与NSP同时训练的核心机制

BERT预训练时,MLM和NSP是在同一份输入样本上并行执行的,模型会同时输出两个任务的预测结果,最终预训练总损失是MLM损失与NSP损失的直接相加。

  • 输入格式固定为 [CLS] Sentence 1 [SEP] Sentence 2 [SEP](单句样本为[CLS] Sentence [SEP])
  • 模型输出分为两部分:
    • 对每个输入token,输出其在词汇表上的概率分布,用于MLM任务
    • 对[CLS]位置的输出做二分类处理(0/1),用于判断Sentence 1和Sentence 2是否为连续句子(NSP任务)

2. 非连续句子样本的MLM掩码规则

不管Sentence 1和Sentence 2是否为连续句子,MLM的掩码逻辑完全不受影响:

  • 随机挑选输入序列中15%的token(排除[CLS]和[SEP])进行掩码操作
  • 掩码替换规则:80%概率替换成[MASK],10%概率替换成随机词汇,10%概率保留原token
  • 也就是说,Sentence 1和Sentence 2中的token都有被掩码的可能,和两句是否连续无关

3. MLM损失的计算与真值定义

MLM损失仅针对被掩码的token计算交叉熵:

  • 先定位所有被掩码处理的token位置(包括替换成[MASK]、随机词或保留原词的那15%token)
  • 对每个这些位置,用模型输出的词汇概率分布,和该位置的原始token ID计算交叉熵损失
  • 将所有掩码位置的损失求和或取平均,得到最终的MLM损失
    这里的MLM真值就是被掩码位置的原始token本身,和NSP的真值没有任何关联。

4. NSP真值为False时的MLM真值

哪怕NSP的真值是False(即Sentence 1和Sentence 2并非连续句子),MLM的真值依然只由被掩码位置的原始token决定,和两句是否连续完全无关。比如Sentence 1里的某个token被掩码了,它的MLM真值就是这个token原本的内容,不会因为NSP是False而改变。

内容的提问来源于stack exchange,提问作者raveitin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 01:51:04