ALBERT Large v2 项目介绍
模型简介
ALBERT Large v2 是一个专用于英语语言的预训练模型,采用了掩码语言模型(MLM)的目标进行训练。它是在一篇论文中被首次提出,并在一个特定的GitHub库中首次发布。ALBERT模型的一个显著特点是,它是无大小写区分的,即对“english”和“English”一视同仁。其训练方法是自监督的,这意味着模型在大量的英语数据上进行了训练,且这些数据没有经过人工标注。
模型的预训练包括两个主要目标:
- 掩码语言模型(MLM):模型会随机掩蔽输入句子中的15%的单词,然后要求模型预测出这些被掩蔽的单词。
- 句子顺序预测(SOP):通过预测两段连续文本片段的顺序进行预训练。
这种训练方式使模型能够学习到英文语句的内在表示,以此为基,可以进行特征提取,应用于下游任务。
ALBERT的特别之处在于,它在其Transformer中共享层结构,因此所有层的权重是相同的。虽然这种重复层的使用使得内存占用较小,但其计算成本与拥有同等隐藏层数目的BERT架构相当,因为它仍需遍历相同数量的重复层。
ALBERT Large v2是大模型的第二个版本,与第一版相比,第二版在掉队率、训练数据量及训练时长上有所不同,因此在几乎所有下游任务中表现更好。
模型配置如下:
- 24个重复层
- 128的嵌入维度
- 1024的隐藏维度
- 16个注意力头
- 1700万参数
预期用途与限制
该模型主要用于被微调以应用在下游任务中,比如序列分类、标记分类或问答任务。对于生成文本类的任务,建议使用类似GPT2的模型。
可以直接使用该模型进行掩码语言建模或下一个句子预测。使用时可以参考模型库中的微调版本。
使用方法
直接使用ALBERT Large v2进行掩码语言建模:
from transformers import pipeline
unmasker = pipeline('fill-mask', model='albert-large-v2')
unmasker("Hello I'm a [MASK] model.")
使用PyTorch获取文本特征:
from transformers import AlbertTokenizer, AlbertModel
tokenizer = AlbertTokenizer.from_pretrained('albert-large-v2')
model = AlbertModel.from_pretrained("albert-large-v2")
text = "Replace me by any text you'd like."
encoded_input = tokenizer(text, return_tensors='pt')
output = model(**encoded_input)
使用TensorFlow获取文本特征:
from transformers import AlbertTokenizer, TFAlbertModel
tokenizer = AlbertTokenizer.from_pretrained('albert-large-v2')
model = TFAlbertModel.from_pretrained("albert-large-v2")
text = "Replace me by any text you'd like."
encoded_input = tokenizer(text, return_tensors='tf')
output = model(encoded_input)
限制与偏见
尽管训练数据被认为是相对中立的,但模型可能仍会产生带有偏见的预测结果。这种偏见也会影响该模型的所有微调版本。
训练数据
ALBERT模型的预训练数据使用的是BookCorpus(包含11,038本未出版的书籍)和英文维基百科(不包括列表、表格和标题)。
训练过程
模型训练过程中使用了BERT的设置:
- 15%的标记会被掩蔽。
- 在80%的情况下,被掩蔽的标记将替换为
[MASK]
。 - 在10%的情况下,被掩蔽的标记将替换为随机的其他标记。
- 在剩下10%的情况下,被掩蔽的标记保持不变。
评估结果
ALBERT模型经过微调后,在以下任务中取得了出色的表现:
模型 | 平均分 | SQuAD1.1 | SQuAD2.0 | MNLI | SST-2 | RACE |
---|---|---|---|---|---|---|
V2 | ||||||
ALBERT-base | 82.3 | 90.2/83.2 | 82.1/79.3 | 84.6 | 92.9 | 66.8 |
ALBERT-large | 85.7 | 91.8/85.2 | 84.9/81.8 | 86.5 | 94.9 | 75.2 |
ALBERT-xlarge | 87.9 | 92.9/86.4 | 87.9/84.1 | 87.9 | 95.4 | 80.7 |
ALBERT-xxlarge | 90.9 | 94.6/89.1 | 89.8/86.9 | 90.6 | 96.8 | 86.8 |
通过这些信息,可以看到ALBERT Large v2在多个任务中表现出色,并且拥有高效的架构。