文章目录
NLP 中流行的预训练模型
- BERT
- GPT
- GPT-2
- Transformer-XL
- XLNet
- XLM
- RoBERTa
- DistilBERT
- ALBERT
- T5
- XLM-RoBERTa
1 BERT 及其变体
模型名称 |
隐层数 |
张量维度 |
自注意力头数 |
参数量 |
训练语料 |
bert-base-uncased |
12 |
768 |
12 |
110M |
小写英文文本 |
bert-large-uncased |
24 |
1024 |
16 |
340M |
小写英文文本 |
bert-base-cased |
12 |
768 |
12 |
110M |
不区分大小写的英文文本 |
bert-large-cased |
24 |
1024 |
16 |
340M |
不区分大小写的英文文本 |
bert-base-multilingual-uncased |
12 |
768 |
12 |
110M |
小写的 102 种语言文本 |
bert-large-multilingual-uncased |
24 |
1024 |
16 |
340M |
小写的 102 种语言文本 |
bert-base-chinese |
12 |
768 |
12 |
110M |
简体和繁体中文文本 |
bert-base-uncased
: 编码器具有 12 个隐层,输出 768 维张量,12 个自注意力头,共 110M 参数量,在小写的英文文本上进行训练而得到.
bert-large-uncased
: 编码器具有 24 个隐层,输出 1024 维张量,16 个自注意力头,共 340M 参数量,在小写的英文文本上进行训练而得到.
bert-base-cased
: 编码器具有 12 个隐层,输出 768 维张量,12 个自注意力头,共 110M 参数量,在不区分大小写的英文文本上进行训练而得到.
bert-large-cased
: 编码器具有 24 个隐层,输出 1024 维张量,16 个自注意力头,共 340M 参数量,在不区分大小写的英文文本上进行训练而得到.
bert-base-multilingual-uncased
: 编码器具有 12 个隐层,输出 768 维张量,12 个自注意力头,共 110M 参数量,在小写的 102 种语言文本上进行训练而得到.
bert-large-multilingual-uncased
: 编码器具有 24 个隐层,输出 1024 维张量,16 个自注意力头,共 340M 参数量,在小写的 102 种语言文本上进行训练而得到.
bert-base-chinese
: 编码器具有 12 个隐层,输出 768 维张量,12 个自注意力头,共 110M 参数量,在简体和繁体中文文本上进行训练而得到.
2 GPT
模型名称 |
隐层数 |
张量维度 |
自注意力头数 |
参数量 |
训练语料 |
openai-gpt |
12 |
768 |
12 |
110M |
英文语料 |
openai-gpt
: 编码器具有 12 个隐层,输出 768 维张量,12 个自注意力头,共 110M 参数量,由 OpenAI 在英文语料上进行训练而得到.
3 GPT-2 及其变体
模型名称 |
隐层数 |
张量维度 |
自注意力头数 |
参数量 |
训练语料 |
gpt2 |
12 |
768 |
12 |
117M |
GPT-2 英文语料 |
gpt2-xl |
48 |
1600 |
25 |
1558M |
GPT-2 英文语料 |
gpt2
: 编码器具有 12 个隐层,输出 768 维张量,12 个自注意力头,共 117M 参数量,在 OpenAI GPT-2 英文语料上进行训练而得到.
gpt2-xl
: 编码器具有 48 个隐层,输出 1600 维张量,25 个自注意力头,共 1558M 参数量,在大型的 OpenAI GPT-2 英文语料上进行训练而得到.
4 Transformer-XL
模型名称 |
隐层数 |
张量维度 |
自注意力头数 |
参数量 |
训练语料 |
transfo-xl-wt103 |
18 |
1024 |
16 |
257M |
wikitext-103 英文语料 |
transfo-xl-wt103
: 编码器具有 18 个隐层,输出 1024 维张量,16 个自注意力头,共 257M 参数量,在 wikitext-103 英文语料进行训练而得到.
5 XLNet 及其变体
模型名称 |
隐层数 |
张量维度 |
自注意力头数 |
参数量 |
训练语料 |
xlnet-base-cased |
12 |
768 |
12 |
110M |
英文语料 |
xlnet-large-cased |
24 |
1024 |
16 |
240M |
英文语料 |
xlnet-base-cased
: 编码器具有 12 个隐层,输出 768 维张量,12 个自注意力头,共 110M 参数量,在英文语料上进行训练而得到.
xlnet-large-cased
: 编码器具有 24 个隐层,输出 1024 维张量,16 个自注意力头,共 240 参数量,在英文语料上进行训练而得到.
6 XLM
模型名称 |
隐层数 |
张量维度 |
自注意力头数 |
参数量 |
训练语料 |
xlm-mlm-en-2048 |
12 |
2048 |
16 |
/ |
英文语料 |
xlm-mlm-en-2048
: 编码器具有 12 个隐层,输出 2048 维张量,16 个自注意力头,在英文文本上进行训练而得到.
7 RoBERTa 及其变体
模型名称 |
隐层数 |
张量维度 |
自注意力头数 |
参数量 |
训练语料 |
roberta-base |
12 |
768 |
12 |
125M |
英文文本 |
roberta-large |
24 |
1024 |
16 |
355M |
英文文本 |
roberta-base
: 编码器具有 12 个隐层,输出 768 维张量,12 个自注意力头,共 125M 参数量,在英文文本上进行训练而得到.
roberta-large
: 编码器具有 24 个隐层,输出 1024 维张量,16 个自注意力头,共 355M 参数量,在英文文本上进行训练而得到.
8 DistilBERT 及其变体
模型名称 |
隐层数 |
张量维度 |
自注意力头数 |
参数量 |
训练语料 |
distilbert-base-uncased6 |
6 |
768 |
12 |
66M |
/ |
distilbert-base-multilingual-cased |
6 |
768 |
12 |
66M |
/ |
distilbert-base-uncased
: 基于 bert-base-uncased 的蒸馏 (压缩) 模型,编码器具有 6 个隐层,输出 768 维张量,12 个自注意力头,共 66M 参数量.
distilbert-base-multilingual-cased
: 基于 bert-base-multilingual-uncased 的蒸馏 (压缩) 模型,编码器具有 6 个隐层,输出 768 维张量,12 个自注意力头,共 66M 参数量.
9 ALBERT
模型名称 |
隐层数 |
张量维度 |
自注意力头数 |
参数量 |
训练语料 |
albert-base-v1 |
12 |
768 |
12 |
125M |
英文文本 |
albert-base-v2 |
12 |
768 |
12 |
125M |
英文文本 |
albert-base-v1
: 编码器具有 12 个隐层,输出 768 维张量,12 个自注意力头,共 125M 参数量,在英文文本上进行训练而得到.
albert-base-v2
: 编码器具有 12 个隐层,输出 768 维张量,12 个自注意力头,共 125M 参数量,在英文文本上进行训练而得到,相比 v1 使用了更多的数据量,花费更长的训练时间.
10 T5 及其变体
模型名称 |
隐层数 |
张量维度 |
自注意力头数 |
参数量 |
训练语料 |
t5-small |
6 |
512 |
8 |
60M |
C4 语料 |
t5-base |
12 |
768 |
12 |
220M |
C4 语料 |
t5-large |
24 |
1024 |
16 |
770M |
C4 语料 |
t5-small
: 编码器具有 6 个隐层,输出 512 维张量,8 个自注意力头,共 60M 参数量,在 C4 语料上进行训练而得到.
t5-base
: 编码器具有 12 个隐层,输出 768 维张量,12 个自注意力头,共 220M 参数量,在 C4 语料上进行训练而得到.
t5-large
: 编码器具有 24 个隐层,输出 1024 维张量,16 个自注意力头,共 770M 参数量,在 C4 语料上进行训练而得到.
11 XLM-RoBERTa 及其变体
模型名称 |
隐层数 |
张量维度 |
自注意力头数 |
参数量 |
训练语料 |
xlm-roberta-base |
12 |
768 |
8 |
125M |
2.5TB 的 100 种语言文本 |
xlm-roberta-large |
24 |
1027 |
16 |
355M |
2.5TB 的 100 种语言文本 |
xlm-roberta-base
: 编码器具有 12 个隐层,输出 768 维张量,8 个自注意力头,共 125M 参数量,在 2.5TB 的 100 种语言文本上进行训练而得到.
xlm-roberta-large
: 编码器具有 24 个隐层,输出 1027 维张量,16 个自注意力头,共 355M 参数量,在 2.5TB 的 100 种语言文本上进行训练而得到.
预训练模型说明:
- 所有上述预训练模型及其变体都是以 transformer 为基础,只是在模型结构如神经元连接方式,编码器隐层数,多头注意力的头数等发生改变,这些改变方式的大部分依据都是由在标准数据集上的表现而定,因此,对于我们使用者而言,不需要从理论上深度探究这些预训练模型的结构设计的优劣,只需要在自己处理的目标数据上,尽量遍历所有可用的模型对比得到最优效果即可.