语言: 英语
许可证: Apache-2.0
数据集:
ALBERT Large v1 模型
该模型是基于英语语料,采用掩码语言建模(MLM)目标预训练的模型。其相关论文见此处,首次发布于此代码库。与所有ALBERT模型一样,此模型不区分大小写:例如"english"和"English"被视为相同。
免责声明:发布ALBERT的团队未为此模型编写说明卡片,本文档由Hugging Face团队撰写。
模型描述
ALBERT是基于自监督方式在大规模英语文本上预训练的Transformer模型。这意味着它仅通过原始文本进行预训练,无需任何人工标注(因此可利用大量公开数据),并通过自动化过程从文本生成输入和标签。具体而言,其预训练目标包括:
- 掩码语言建模(MLM):随机遮蔽输入句子中15%的单词,然后通过模型预测被遮蔽的词。与传统RNN逐词处理或GPT类自回归模型(内部遮蔽未来词)不同,MLM使模型能学习句子的双向表征。
- 句子顺序预测(SOP):ALBERT通过预测连续文本段的顺序进行预训练。
通过这种方式,模型学习到英语语言的内部表征,可用于下游任务的特征提取。例如,对于标注句子的数据集,可以使用ALBERT生成的特征作为输入训练标准分类器。
ALBERT的特殊性在于其Transformer层间共享权重。因此,所有层具有相同参数。这种重复层结构减少了内存占用,但计算成本仍与具有相同隐藏层数的BERT架构相当,因为需要迭代相同数量的(重复)层。
此为Large模型的第一版。第二版因不同的丢弃率、额外训练数据和更长的训练时间而表现更优,在几乎所有下游任务中均有提升。
该模型配置如下:
- 24个重复层
- 128维词嵌入
- 1024维隐藏层
- 16个注意力头
- 1700万参数
用途与限制
原始模型可用于掩码语言建模或下一句预测,但主要适用于下游任务微调。可访问模型库查找相关任务的微调版本。
注意:此模型主要针对需要整句(可能含掩码)决策的任务(如序列分类、标记分类或问答)进行微调。文本生成类任务建议使用GPT2等模型。
使用方法
掩码填充示例:
>>> from transformers import pipeline
>>> unmasker = pipeline('fill-mask', model='albert-large-v1')
>>> unmasker("Hello I'm a [MASK] model.")
[
{"sequence":"[CLS] hello i'm a modeling model.[SEP]", "score":0.058, "token":12807, "token_str":"â–modeling"},
{"sequence":"[CLS] hello i'm a modelling model.[SEP]", "score":0.037, "token":23089, "token_str":"â–modelling"},
...
]
PyTorch特征提取:
from transformers import AlbertTokenizer, AlbertModel
tokenizer = AlbertTokenizer.from_pretrained('albert-large-v1')
model = AlbertModel.from_pretrained("albert-large-v1")
text = "任意替换文本"
encoded_input = tokenizer(text, return_tensors='pt')
output = model(**encoded_input)
TensorFlow特征提取:
from transformers import AlbertTokenizer, TFAlbertModel
tokenizer = AlbertTokenizer.from_pretrained('albert-large-v1')
model = TFAlbertModel.from_pretrained("albert-large-v1")
text = "任意替换文本"
encoded_input = tokenizer(text, return_tensors='tf')
output = model(encoded_input)
偏差问题
即使训练数据相对中立,模型预测仍可能存在偏差:
>>> unmasker("The man worked as a [MASK].")
>>> unmasker("The woman worked as a [MASK].")
此类偏差会影响所有基于该模型的微调版本。
训练数据
预训练数据包含:
训练流程
预处理
文本经小写处理和SentencePiece分词(词汇量30,000)。输入格式为:
[CLS] 句子A [SEP] 句子B [SEP]
训练细节
遵循BERT的掩码规则:
- 15%的词被遮蔽
- 80%概率替换为[MASK]
- 10%概率替换为随机词
- 10%概率保留原词
评估结果
下游任务微调后的表现对比:
模型版本 |
平均分 |
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 |
V1系列 |
|
|
|
|
|
|
ALBERT-large |
82.4 |
90.6/83.9 |
82.3/79.4 |
83.5 |
91.7 |
68.5 |
引用信息
@article{albert2019,
author = {Zhenzhong Lan et al.},
title = {ALBERT: A Lite BERT for Self-supervised Language Representation Learning},
journal = {arXiv preprint},
volume = {abs/1909.11942},
year = {2019},
url = {https://arxiv.org/abs/1909.11942}
}