英文

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

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

FlauBERT 还附带了 FLUE :用于法语NLP系统的评估设置,类似于流行的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 版本为