织梦网站排版能调整吗,品牌推广活动策划案例,成都展厅设计企业,网上营销手段深度学习笔记之RoBERTa 引言回顾#xff1a;BERT的预训练策略RoBERTa训练过程分析静态掩码与动态掩码的比较模型输入模式与下一句预测使用大批量进行训练使用Byte-pair Encoding作为子词词元化算法更大的数据集和更多的训练步骤 RoBERTa配置 引言
本节将介绍一种基于 BERT \t… 深度学习笔记之RoBERTa 引言回顾BERT的预训练策略RoBERTa训练过程分析静态掩码与动态掩码的比较模型输入模式与下一句预测使用大批量进行训练使用Byte-pair Encoding作为子词词元化算法更大的数据集和更多的训练步骤 RoBERTa配置 引言
本节将介绍一种基于 BERT \text{BERT} BERT改进优化的预训练方法—— RoBERTa \text{RoBERTa} RoBERTa。
回顾BERT的预训练策略 BERT \text{BERT} BERT的预训练策略包含两个 掩码语言模型训练 ( Masked Language Model,MLM ) (\text{Masked Language Model,MLM}) (Masked Language Model,MLM)将句子中一部分词语进行掩码标记即使用 [ MASK ] [\text{MASK}] [MASK]对被掩码的词语进行替换。并将掩码部分的长度控制在总句子长度的 15 15 15%。对于一个已被预期处理的示例句子 [ [ CLS ] , P a r i s , i s , a , b e a u t i f u l , c i t y , [ SEP ] , I , l o v e , P a r i s ] [[\text{CLS}],Paris,is,a,beautiful,city,[\text{SEP}],I,love,Paris] [[CLS],Paris,is,a,beautiful,city,[SEP],I,love,Paris] 掩码标记后的结果示例为 [ [ CLS ] , P a r i s , i s , a , [ MASK ] , c i t y , [ SEP ] , I , l o v e , [ MASK ] ] [[\text{CLS}],Paris,is,a,[\text{MASK}],city,[\text{SEP}],I,love,[\text{MASK}]] [[CLS],Paris,is,a,[MASK],city,[SEP],I,love,[MASK]] 即便在 BERT \text{BERT} BERT中使用80-10-10规则对 BERT \text{BERT} BERT的预训练进行泛化但实际上它依然是静态掩码这些工作均是在数据预处理部分执行的在训练过程中每个 [ MASK ] [\text{MASK}] [MASK]部分在句子中的位置是固定的。 下句预测 ( Next Sentence Prediction,NSP ) (\text{Next Sentence Prediction,NSP}) (Next Sentence Prediction,NSP)样本集是由两个连接的文档片段 Segment-1,Segment-2 \text{Segment-1,Segment-2} Segment-1,Segment-2组成并以 50 50 50%的概率 在同一文档中连续采样不同的文档中采样 并对采样结果 Segment-1,Segment-2 \text{Segment-1,Segment-2} Segment-1,Segment-2对应的如下格式中 [ [ CLS ] , Segment-1 , [SEP] , Segment-2 , [SEP] ] [[\text{CLS}],\text{Segment-1},\text{[SEP]},\text{Segment-2},\text{[SEP]}] [[CLS],Segment-1,[SEP],Segment-2,[SEP]] [ CLS ] [\text{CLS}] [CLS]对应的 BERT \text{BERT} BERT输出 R [CLS] \mathcal R_{\text{[CLS]}} R[CLS]使用 Softmax \text{Softmax} Softmax进行二分类(有关联/无关联)任务。
RoBERTa训练过程分析
静态掩码与动态掩码的比较
对于 BERT \text{BERT} BERT这种现象 RoBERTa \text{RoBERTa} RoBERTa先采用复制数据的方法进行补救
将一个句子复制 10 10 10份并将 10 10 10个句子进行随机掩码标记 S 1 : [ [ CLS ] , P a r i s , i s , a , [ MASK ] , c i t y , [ SEP ] , I , l o v e , [ MASK ] ] S 2 : [ [ CLS ] , P a r i s , [ MASK ] , a , b e a u t i f u l , c i t y , [ SEP ] , I , l o v e , P a r i s ] ⋮ S 10 : [ [ CLS ] , [ MASK ] , i s , a , b e a u t i f u l , [ MASK ] , [ SEP ] , I , l o v e , P a r i s ] \begin{aligned} \mathcal S_1:[[\text{CLS}],Paris,is,a,[\text{MASK}],city,[\text{SEP}],I,love,[\text{MASK}]] \\ \mathcal S_2:[[\text{CLS}],Paris,[\text{MASK}],a,beautiful,city,[\text{SEP}],I,love,Paris] \\ \quad \vdots \\ \mathcal S_{10}:[[\text{CLS}],[\text{MASK}],is,a,beautiful,[\text{MASK}],[\text{SEP}],I,love,Paris] \end{aligned} S1:[[CLS],Paris,is,a,[MASK],city,[SEP],I,love,[MASK]]S2:[[CLS],Paris,[MASK],a,beautiful,city,[SEP],I,love,Paris]⋮S10:[[CLS],[MASK],is,a,beautiful,[MASK],[SEP],I,love,Paris]对模型进行 40 Epoch \text{40 Epoch} 40 Epoch的全数据遍历训练在每个 Epoch \text{Epoch} Epoch训练中句子被掩盖标记都不同 Epoch 1: S 1 Epoch 2: S 2 ⋮ Epoch 10: S 10 Epoch 11: S 1 Epoch 12: S 2 ⋮ Epoch 40: S 10 \begin{aligned} \text{Epoch 1:} \quad \mathcal S_1 \\ \text{Epoch 2:} \quad \mathcal S_2 \\ \quad \vdots \\ \text{Epoch 10:} \quad \mathcal S_{10} \\ \text{Epoch 11:} \quad \mathcal S_{1} \\ \text{Epoch 12:} \quad \mathcal S_{2} \\ \quad \vdots \\ \text{Epoch 40:} \quad \mathcal S_{10} \\ \end{aligned} Epoch 1:S1Epoch 2:S2⋮Epoch 10:S10Epoch 11:S1Epoch 12:S2⋮Epoch 40:S10 这相当于每一种 MASK \text{MASK} MASK模式被执行了 4 4 4次。虽然这种方法起到很好的泛化作用但其本质上依然是静态掩码。
而动态掩码并没有在预处理阶段对数据进行 MASK \text{MASK} MASK而是将数据导入模型过程中进行随机 MASK \text{MASK} MASK。这与上面复制数据的方法相比它的泛化性更强。因为尤其在训练的 Epoch \text{Epoch} Epoch较大时静态掩码由于会使同一份掩码结果训练多次导致在训练过程中机械地记住这个规律。
下面是原文中静态掩码与动态掩码在同一任务中的对比情况。在一些任务中动态掩码的效果略优于静态掩码。
模型输入模式与下一句预测 BERT \text{BERT} BERT中的 NSP \text{NSP} NSP任务旨在句子层面有更优秀的理解因此 RoBERTa \text{RoBERTa} RoBERTa针对 NSP \text{NSP} NSP任务设计了几种训练格式来验证 NSP \text{NSP} NSP策略是否有效 Segment-pair NSP: \text{Segment-pair NSP:} Segment-pair NSP: 原始 BERT \text{BERT} BERT使用的模式其中每个段落 ( Segment ) (\text{Segment}) (Segment)中可能包含多个句子 ( Sentence ) (\text{Sentence}) (Sentence)但 Token \text{Token} Token总长度小于 512 512 512。 Sentence-pair NSP: \text{Sentence-pair NSP:} Sentence-pair NSP: 将输入段落对改为句子对正负样本的采样方式分别是从文档中连续采样和文档中单独采样。由于输入句子对 Token \text{Token} Token长度明显小于 512 512 512因而通过增加 Batch size \text{Batch size} Batch size使 Token \text{Token} Token总量与 Segment-pair \text{Segment-pair} Segment-pair相似并保留了 NSP \text{NSP} NSP策略。 Full-sentence: \text{Full-sentence:} Full-sentence: 从一个/多个文档中采样出连续的完整句子 Token \text{Token} Token总长度不超过 512 512 512并且允许超出文档边界。超出文档边界是指当采样达到一个文档的末尾时可以从下一个文档中继续进行采样作为该输入的一部分但需要在文档之间加入一个额外分隔符并且该实验删除了 NSP \text{NSP} NSP策略。 Doc-sentence: \text{Doc-sentence:} Doc-sentence: 与 Full-sentence \text{Full-sentence} Full-sentence采样方式相似但是不允许超出文档边界。相比于 Full-sentence \text{Full-sentence} Full-sentence它的 Token \text{Token} Token长度有可能偏少因此同样通过增加 Batch size \text{Batch size} Batch size使 Token \text{Token} Token总量与 Full-sentence \text{Full-sentence} Full-sentence相似并同样删除了 NSP \text{NSP} NSP策略。
下面是原文对四种训练格式在若干任务中的效果
比较使用 NSP \text{NSP} NSP策略的 Segment-pair \text{Segment-pair} Segment-pair和 Sentence-pair \text{Sentence-pair} Sentence-pair格式发现使用 Segment \text{Segment} Segment效果明显由于 Sentence \text{Sentence} Sentence原因可能是模型很难从单句中学习到长依赖关系。对使用 NSP \text{NSP} NSP策略和未使用 NSP \text{NSP} NSP的角度进行比较发现删除 NSP \text{NSP} NSP策略能够略微提高下游任务的性能 Doc-sentence \text{Doc-sentence} Doc-sentence略优于 Full-sentence \text{Full-sentence} Full-sentence。但由于 Doc-sentence \text{Doc-sentence} Doc-sentence长度不固定导致 Batch size \text{Batch size} Batch size存在变化因而后续实验均使用 Full-sentence \text{Full-sentence} Full-sentence格式进行比较。
使用大批量进行训练
原始 BERT \text{BERT} BERT使用 Batch size256 \text{Batch size256} Batch size256进行训练训练步骤数量为 1M \text{1M} 1M。在保持总计算量基本不变的情况下将 Batch size \text{Batch size} Batch size由 256 256 256扩展至 2K,8K \text{2K,8K} 2K,8K对应训练步骤缩减至 125K,31K \text{125K,31K} 125K,31K并相应地调整学习率 ( lr ) (\text{lr}) (lr) 可以发现 Batch size \text{Batch size} Batch size为 2K \text{2K} 2K时表现效果最好。但考虑到并行更容易作者均选择 8K \text{8K} 8K作为后续实验的 Batch size \text{Batch size} Batch size。
使用Byte-pair Encoding作为子词词元化算法 RoBERTa \text{RoBERTa} RoBERTa并没有使用 Unicode \text{Unicode} Unicode作为子词次元 ( Subword Unit ) (\text{Subword Unit}) (Subword Unit)而是使用 Bytes \text{Bytes} Bytes进行替代。这种方式可以编码任何输入文本并且不会引入任何 Unknown \text{Unknown} Unknown标记这会使 Vocab size \text{Vocab size} Vocab size变得更大参数更多 ( 30 K ⇒ 50 K ) (30\text{K} \Rightarrow 50\text{K}) (30K⇒50K)。
以句子 It was a great day \text{It was a great day} It was a great day为例对应 RoBERTa \text{RoBERTa} RoBERTa模型的标记结果如下 [ it , G ˙ was , G ˙ a , G ˙ great , Gday ˙ ] [\text{it},\dot{\text{G}}\text{was},\dot{\text{G}}\text{a},\dot{\text{G}}\text{great},\dot{\text{G}\text{day}}] [it,G˙was,G˙a,G˙great,Gday˙] 其中 G ˙ \dot{\text{G}} G˙表示一个空格 RoBERTa \text{RoBERTa} RoBERTa词元分析其将所有空格替换为 G ˙ \dot{\text{G}} G˙字符。再以一个句子为例 I had a sudden epiphany \text{I had a sudden epiphany} I had a sudden epiphany(我灵光一闪) [ I , G ˙ had , G ˙ a , G ˙ sudden , G ˙ ep , iphany ] [\text{I},\dot{\text{G}}\text{had},\dot{\text{G}}\text{a},\dot{\text{G}}\text{sudden},\dot{\text{G}}\text{ep},\text{iphany}] [I,G˙had,G˙a,G˙sudden,G˙ep,iphany] 这种标注结果是因为未从词表中找到单词 epiphany \text{epiphany} epiphany从而将其拆解未 ep \text{ep} ep和 iphany \text{iphany} iphany两部分。
更大的数据集和更多的训练步骤 RoBERTa \text{RoBERTa} RoBERTa延用了 BERT-large \text{BERT-large} BERT-large结构 ( L24,A16,H1024 ) (\text{L24,A16,H1024}) (L24,A16,H1024)在 Batch size \text{Batch size} Batch size固定为 8K \text{8K} 8K的情况下作者进行一系列对比实验 有点降维打击的意思~数据量大意味着信息更丰富效果好也在情理之中~ 可以发现
即便没有增加数据 RoBERTa \text{RoBERTa} RoBERTa依旧比 BERT-large \text{BERT-large} BERT-large结果优秀。当然总计算量增加了很多 ( Batch size8K,steps:31K ⇒ 100 K ) (\text{Batch size8K,steps:31K} \Rightarrow 100\text{K}) (Batch size8K,steps:31K⇒100K)但这并没有带来过拟合的问题。在训练数据基础上加上 additional Data \text{additional Data} additional Data效果进一步提升训练过程很稳定即便 steps500K \text{steps500K} steps500K依然没有出现过拟合的现象。
RoBERTa配置
综合上面的比对结果作者给出 RoBERTa \text{RoBERTa} RoBERTa的基本配置
动态掩码策略 Full-sentence without NSP \text{Full-sentence without NSP} Full-sentence without NSP更大的 Batch size \text{Batch size} Batch size使用更大 Vocab size \text{Vocab size} Vocab size字节级别的 Byte-pair Encoding \text{Byte-pair Encoding} Byte-pair Encoding进行训练训练过程中使用更多的 steps \text{steps} steps和 additional Data \text{additional Data} additional Data
在 GLUE,SQuAD,RACE \text{GLUE,SQuAD,RACE} GLUE,SQuAD,RACE等任务中的表现结果如下 GLUE \text{GLUE} GLUE SQuAD \text{SQuAD} SQuAD RACE \text{RACE} RACE Reference \text{Reference} Reference 论文链接 《BERT基础教程——Transformer大规模实战》 文章转载自: http://www.morning.qhln.cn.gov.cn.qhln.cn http://www.morning.ltzkk.cn.gov.cn.ltzkk.cn http://www.morning.pnljy.cn.gov.cn.pnljy.cn http://www.morning.txqsm.cn.gov.cn.txqsm.cn http://www.morning.nkyc.cn.gov.cn.nkyc.cn http://www.morning.qbfkz.cn.gov.cn.qbfkz.cn http://www.morning.ypcd.cn.gov.cn.ypcd.cn http://www.morning.mnslh.cn.gov.cn.mnslh.cn http://www.morning.qxxj.cn.gov.cn.qxxj.cn http://www.morning.mjbjq.cn.gov.cn.mjbjq.cn http://www.morning.kongpie.com.gov.cn.kongpie.com http://www.morning.jyzxt.cn.gov.cn.jyzxt.cn http://www.morning.wsjnr.cn.gov.cn.wsjnr.cn http://www.morning.xrsqb.cn.gov.cn.xrsqb.cn http://www.morning.mxnhq.cn.gov.cn.mxnhq.cn http://www.morning.rwyw.cn.gov.cn.rwyw.cn http://www.morning.bpzw.cn.gov.cn.bpzw.cn http://www.morning.wdpt.cn.gov.cn.wdpt.cn http://www.morning.xqcgb.cn.gov.cn.xqcgb.cn http://www.morning.ykklw.cn.gov.cn.ykklw.cn http://www.morning.kwyq.cn.gov.cn.kwyq.cn http://www.morning.wxwall.com.gov.cn.wxwall.com http://www.morning.pmptm.cn.gov.cn.pmptm.cn http://www.morning.yqndr.cn.gov.cn.yqndr.cn http://www.morning.ntqqm.cn.gov.cn.ntqqm.cn http://www.morning.ypwlb.cn.gov.cn.ypwlb.cn http://www.morning.gfkb.cn.gov.cn.gfkb.cn http://www.morning.xlclj.cn.gov.cn.xlclj.cn http://www.morning.xmtzk.cn.gov.cn.xmtzk.cn http://www.morning.mlbdr.cn.gov.cn.mlbdr.cn http://www.morning.nrydm.cn.gov.cn.nrydm.cn http://www.morning.jhyfb.cn.gov.cn.jhyfb.cn http://www.morning.srky.cn.gov.cn.srky.cn http://www.morning.wrfk.cn.gov.cn.wrfk.cn http://www.morning.rnzwh.cn.gov.cn.rnzwh.cn http://www.morning.ghfrb.cn.gov.cn.ghfrb.cn http://www.morning.qstkk.cn.gov.cn.qstkk.cn http://www.morning.gdpai.com.cn.gov.cn.gdpai.com.cn http://www.morning.jfbbq.cn.gov.cn.jfbbq.cn http://www.morning.ffbl.cn.gov.cn.ffbl.cn http://www.morning.tfkqc.cn.gov.cn.tfkqc.cn http://www.morning.ykrg.cn.gov.cn.ykrg.cn http://www.morning.rmtmk.cn.gov.cn.rmtmk.cn http://www.morning.tfwsk.cn.gov.cn.tfwsk.cn http://www.morning.chzqy.cn.gov.cn.chzqy.cn http://www.morning.hbkkc.cn.gov.cn.hbkkc.cn http://www.morning.rlxnc.cn.gov.cn.rlxnc.cn http://www.morning.lqzhj.cn.gov.cn.lqzhj.cn http://www.morning.xbrxk.cn.gov.cn.xbrxk.cn http://www.morning.sdkaiyu.com.gov.cn.sdkaiyu.com http://www.morning.qmzhy.cn.gov.cn.qmzhy.cn http://www.morning.wdwfm.cn.gov.cn.wdwfm.cn http://www.morning.wmmjw.cn.gov.cn.wmmjw.cn http://www.morning.zympx.cn.gov.cn.zympx.cn http://www.morning.hclqy.cn.gov.cn.hclqy.cn http://www.morning.hxlch.cn.gov.cn.hxlch.cn http://www.morning.jfmjq.cn.gov.cn.jfmjq.cn http://www.morning.jpnfm.cn.gov.cn.jpnfm.cn http://www.morning.rgfx.cn.gov.cn.rgfx.cn http://www.morning.qlkzl.cn.gov.cn.qlkzl.cn http://www.morning.rbhcx.cn.gov.cn.rbhcx.cn http://www.morning.tnjz.cn.gov.cn.tnjz.cn http://www.morning.dcpbk.cn.gov.cn.dcpbk.cn http://www.morning.qzbwmf.cn.gov.cn.qzbwmf.cn http://www.morning.bwdnx.cn.gov.cn.bwdnx.cn http://www.morning.tgydf.cn.gov.cn.tgydf.cn http://www.morning.hhpkb.cn.gov.cn.hhpkb.cn http://www.morning.lekbiao.com.gov.cn.lekbiao.com http://www.morning.wgcng.cn.gov.cn.wgcng.cn http://www.morning.hwpcm.cn.gov.cn.hwpcm.cn http://www.morning.rwnx.cn.gov.cn.rwnx.cn http://www.morning.cbczs.cn.gov.cn.cbczs.cn http://www.morning.jzykq.cn.gov.cn.jzykq.cn http://www.morning.nzcys.cn.gov.cn.nzcys.cn http://www.morning.bangaw.cn.gov.cn.bangaw.cn http://www.morning.pndhh.cn.gov.cn.pndhh.cn http://www.morning.ykrg.cn.gov.cn.ykrg.cn http://www.morning.nrwr.cn.gov.cn.nrwr.cn http://www.morning.gynkr.cn.gov.cn.gynkr.cn http://www.morning.nlwrg.cn.gov.cn.nlwrg.cn