ALBERT XXLarge v1 项目介绍
项目背景
ALBERT XXLarge v1 是一个预训练的英语语言模型,主要采用掩码语言模型(Masked Language Modeling, MLM)进行目标训练。此模型最初在这篇论文中提出,并在这个代码库中首次发布。该模型的特殊之处在于它是无区分大小写的,即“english”和“English”在模型中被视为相同。
模型描述
ALBERT 是一种基于Transformer架构的模型,预训练数据来自大型英语语料库。这个模型以自监督的方式进行训练,意味着它仅利用原始文本,无需人工标注,借助自动化过程生成输入和标签。具体来说,它有两个主要的训练目标:
- 掩码语言模型(MLM):给定一句话,模型会随机掩盖输入中15%的单词,然后通过整个掩码的句子进行分析,并预测被掩盖的单词。这不同于传统的循环神经网络(RNNs),后者通常逐词分析,或像GPT这样的自回归模型。MLM能够使模型学习句子的双向表示。
- 句子排序预测(SOP):ALBERT还使用了基于预测两个相邻文本段排序的预训练损失。
通过这种方式,模型学会了英语语言的内部表示,可以用于提取有助于下游任务的特征。例如,若有一个标记句子的数据库,便可以利用ALBERT模型生成的特征来训练标准分类器。
ALBERT模型特别之处在于其共享Transformer的层——所有层都具有相同的权重。重用层结果是内存占用小,但计算成本与BERT之类的架构相似,因为需要重复多次迭代相同的层。
模型配置
ALBERT XXLarge v1的模型配置如下:
- 12个重复层
- 128的嵌入维度
- 4096的隐藏维度
- 64个注意力头
- 223百万个参数
预期用途与使用限制
用户可将此模型用于掩码语言模型或下一句预测,但主要目的是在下游任务中进行微调。用户可以访问模型中心寻找特定任务的微调版本。
需要注意的是,该模型主要用于需要整体句子(可能是带掩码)来做出决策的任务,如序列分类、标记分类或问答系统。而对于文本生成类的任务,则推荐使用像GPT2这样的模型。
如何使用
用户可以直接使用此模型来进行掩码语言模型的预测。例如:
from transformers import pipeline
unmasker = pipeline('fill-mask', model='albert-xxlarge-v1')
unmasker("Hello I'm a [MASK] model.")
对于获取给定文本的特征,可以使用 PyTorch 或 TensorFlow:
# PyTorch
from transformers import AlbertTokenizer, AlbertModel
tokenizer = AlbertTokenizer.from_pretrained('albert-xxlarge-v1')
model = AlbertModel.from_pretrained("albert-xxlarge-v1")
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-xxlarge-v1')
model = TFAlbertModel.from_pretrained("albert-xxlarge-v1")
text = "Replace me by any text you'd like."
encoded_input = tokenizer(text, return_tensors='tf')
output = model(encoded_input)
限制与偏见
即使此模型的训练数据相对中立,但也可能带有偏见。例如,模型在处理不同性别角色时可能会产生偏见,这种问题也会影响所有微调过的版本。
训练数据
ALBERT模型的预训练数据来自BookCorpus和English Wikipedia(不包括列表、表格和标题)。
训练过程
文本以小写形式输入并使用SentencePiece进行分词,词汇量为30,000。模型输入的标准格式如下:
[CLS] Sentence A [SEP] Sentence B [SEP]
在训练中,每个句子的掩码程序如下:
- 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 |
V1 | ||||||
ALBERT-base | 80.1 | 89.3/82.3 | 80.0/77.1 | 81.6 | 90.3 | 64.0 |
ALBERT-large | 82.4 | 90.6/83.9 | 82.3/79.4 | 83.5 | 91.7 | 68.5 |
ALBERT-xlarge | 85.5 | 92.5/86.1 | 86.1/83.1 | 86.4 | 92.4 | 74.8 |
ALBERT-xxlarge | 91.0 | 94.8/89.3 | 90.2/87.4 | 90.8 | 96.9 | 86.5 |
通过这种系统性的设计和优秀的训练方式,ALBERT XXLarge v1 为更丰富的自然语言处理任务提供了强大的技术支持。