预训练模型架构中的不同。BERT使用双向Transformer。OpenAI GPT使用left-to-right的Transformer。ELMo使用训练好的left-to-right和right-to-left的LSTM的拼接为下游任务形成特征。在这3方面中,只有BERT表示在所有层中同时受坐上下文和右上下文约束。
层数L,隐藏层大小H,自注意力头(self-attention heads)A,设置feed-forward/filter的大小为4H:
模型大小:
BERT(base): L=12,H=768,A=12, Total Parameters=110M
BERT(large): L=12,H=1024,A=16,Total Parameters=340M
BERT(base)的模型大小和OpenAI GPT大小差不多,但是BERT Transformer使用双向自注意力机制,GPT Transformer使用受限自注意力(每个token仅处理它左侧上下文),在文献中双向Transformer通常被视作Transformer encoder,但是只有左侧上下文版本被视作Transformer decoder,因为通常可以用作文本生成。
输入表示:
能够在一个token序列中明确表示出单个文本句子或文本对(例如[问题,答案]),输入表示是由累加token、segment、位置嵌入三者构成。
- 使用WordPiece嵌入和3w个token的词汇表。用##表示分词。
- 使用学到懂得位置嵌入,支持序列长度到512个字符。
- 每个序列的第一个token为了明确是否是分类嵌入的特殊嵌入(用[CLS]表示)。最终隐藏状态(Transformer的输出)被用作分类任务的聚合序列表示。非分类任务,这个向量忽略。
- 句子对被一起打包成一个单序列。我