英文

FlauBERT: 为法语进行的无监督语言模型预训练

FlauBERT是在一个非常大而异构的法语语料库上训练的法语BERT模型。不同大小的模型是使用新的法国国家科学研究中心(CNRS) Jean Zay 超级计算机进行训练的。

除FlauBERT外,还有一个类似于流行GLUE基准的用于法语NLP系统的评估设置,名为 FLUE 。其目标是为将来的可重复实验提供便利,并分享在法语语言方面的模型和进展。更多详细信息请参考 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版本是