🚀 FrALBERT Base Cased
FrALBERT Base Cased是一个基于法语的预训练模型,采用掩码语言建模(MLM)目标进行训练。该模型与其他ALBERT模型不同,它区分大小写,能够区分“french”和“French”。更多关于该模型的详细信息请参考此处。
🚀 快速开始
FrALBERT是一个以自监督方式在16GB法语维基百科数据上进行预训练的Transformer模型。这意味着它仅在原始文本上进行预训练,没有人工进行任何标注(这也是它可以使用大量公开可用数据的原因),并通过自动流程从这些文本中生成输入和标签。具体来说,它通过两个目标进行预训练:
- 掩码语言建模(MLM):对于一个句子,模型会随机掩码输入中15%的单词,然后将整个掩码后的句子输入模型,并预测被掩码的单词。这与传统的循环神经网络(RNN)不同,RNN通常是逐个处理单词,也与像GPT这样的自回归模型不同,GPT会在内部掩码未来的标记。这种方式使模型能够学习句子的双向表示。
- 句子顺序预测(SOP):FrALBERT使用基于预测两个连续文本片段顺序的预训练损失。
通过这种方式,模型学习到法语的内部表示,可用于提取对下游任务有用的特征。例如,如果您有一个带标签的句子数据集,可以使用FrALBERT模型生成的特征作为输入,训练一个标准分类器。
✨ 主要特性
FrALBERT的特别之处在于它在Transformer中共享层,因此所有层具有相同的权重。使用重复层可以减少内存占用,但计算成本与具有相同隐藏层数的BERT架构相似,因为它需要遍历相同数量的(重复)层。
这是基础模型的第二个版本,该模型具有以下配置:
属性 |
详情 |
重复层数 |
12 |
嵌入维度 |
128 |
隐藏维度 |
768 |
注意力头数 |
12 |
参数数量 |
11M |
💻 使用示例
基础用法
您可以直接使用该模型进行掩码语言建模:
>>> from transformers import pipeline
>>> unmasker = pipeline('fill-mask', model='cservan/french-albert-base-cased')
>>> unmasker("Paris est la capitale de la [MASK] .")
[
{
"sequence": "paris est la capitale de la france.",
"score": 0.6231236457824707,
"token": 3043,
"token_str": "france"
},
{
"sequence": "paris est la capitale de la region.",
"score": 0.2993471622467041,
"token": 10531,
"token_str": "region"
},
{
"sequence": "paris est la capitale de la societe.",
"score": 0.02028230018913746,
"token": 24622,
"token_str": "societe"
},
{
"sequence": "paris est la capitale de la bretagne.",
"score": 0.012089950032532215,
"token": 24987,
"token_str": "bretagne"
},
{
"sequence": "paris est la capitale de la chine.",
"score": 0.010002839379012585,
"token": 14860,
"token_str": "chine"
}
]
高级用法
以下是如何在PyTorch中使用该模型获取给定文本的特征:
from transformers import AlbertTokenizer, AlbertModel
tokenizer = AlbertTokenizer.from_pretrained('cservan/french-albert-base-cased')
model = AlbertModel.from_pretrained("cservan/french-albert-base-cased")
text = "Remplacez-moi par le texte en français que vous souhaitez."
encoded_input = tokenizer(text, return_tensors='pt')
output = model(**encoded_input)
在TensorFlow中使用:
from transformers import AlbertTokenizer, TFAlbertModel
tokenizer = AlbertTokenizer.from_pretrained('cservan/french-albert-base-cased')
model = TFAlbertModel.from_pretrained("cservan/french-albert-base-cased")
text = "Remplacez-moi par le texte en français que vous souhaitez."
encoded_input = tokenizer(text, return_tensors='tf')
output = model(encoded_input)
📚 详细文档
预期用途与限制
您可以将原始模型用于掩码语言建模或下一句预测,但它主要用于在下游任务上进行微调。您可以在模型中心查找针对您感兴趣的任务进行微调的版本。
请注意,该模型主要旨在针对使用整个句子(可能是掩码后的句子)进行决策的任务进行微调,例如序列分类、标记分类或问答任务。对于文本生成等任务,您应该考虑使用像GPT2这样的模型。
训练数据
FrALBERT模型在4GB的法语维基百科(不包括列表、表格和标题)上进行预训练。
训练过程
预处理
文本先转换为小写,然后使用SentencePiece进行分词,词汇表大小为32,000。模型的输入形式如下:
[CLS] Sentence A [SEP] Sentence B [SEP]
训练
FrALBERT的训练过程遵循BERT的设置。
每个句子的掩码过程细节如下:
- 15%的标记被掩码。
- 80%的情况下,被掩码的标记被替换为
[MASK]
。
- 10%的情况下,被掩码的标记被替换为一个与原标记不同的随机标记。
- 10%的情况下,被掩码的标记保持不变。
评估结果
在下游任务上进行微调时,ALBERT模型取得了以下结果:
槽填充:
|
FrALBERT-base |
FrALBERT-base-cased |
MEDIA |
81.76 (0.59) |
85.09 (0.14) |
BibTeX引用和引用信息
@inproceedings{cattan2021fralbert,
author = {Oralie Cattan and
Christophe Servan and
Sophie Rosset},
booktitle = {Recent Advances in Natural Language Processing, RANLP 2021},
title = {{On the Usability of Transformers-based models for a French Question-Answering task}},
year = {2021},
address = {Online},
month = sep,
}
论文链接:PDF
📄 许可证
本项目采用Apache-2.0许可证。