英文

FlauBERT:用于法语的无监督语言模型预训练

FlauBERT是一个基于大规模异构法语文本语料库训练的法语BERT模型。使用法国国家科学研究中心(CNRS)的超级计算机进行训练。

随着FlauBERT的发布,还有一个类似于流行的GLUE基准的法语自然语言处理系统评估设置。其目标是为了以后能够进行可重复的实验,并分享法语语言的模型和进展。详细信息请参考 official website

FlauBERT模型

Model name Number of layers Attention Heads Embedding Dimension Total Parameters
flaubert-small-cased 6 8 512 54 M
flaubert-base-uncased 12 12 768 137 M
flaubert-base-cased 12 12 768 138 M
flaubert-large-cased 24 16 1024 373 M

注意:flaubert-small-cased是部分训练的,性能不能得到保证。仅建议将其用于调试目的。

使用Hugging Face的Transformers使用FlauBERT

import torch
from transformers import FlaubertModel, FlaubertTokenizer

# Choose among ['flaubert/flaubert_small_cased', 'flaubert/flaubert_base_uncased', 
#               'flaubert/flaubert_base_cased', 'flaubert/flaubert_large_cased']
modelname = 'flaubert/flaubert_base_cased' 

# Load pretrained model and tokenizer
flaubert, log = FlaubertModel.from_pretrained(modelname, output_loading_info=True)
flaubert_tokenizer = FlaubertTokenizer.from_pretrained(modelname, do_lowercase=False)
# do_lowercase=False if using cased models, True if using uncased ones

sentence = "Le chat mange une pomme."
token_ids = torch.tensor([flaubert_tokenizer.encode(sentence)])

last_layer = flaubert(token_ids)[0]
print(last_layer.shape)
# torch.Size([1, 8, 768])  -> (batch size x number of tokens x embedding dimension)

# The BERT [CLS] token correspond to the first hidden state of the last layer
cls_embedding = last_layer[:, 0, :]

注:如果您的transformers版本