英文

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

FlauBERT 是一个针对大规模异构法语语料库进行训练的法语BERT模型。使用法国国家科学研究中心(CNRS)的 Jean Zay 超级计算机训练了不同规模的模型。

随着FlauBERT一起来的是 FLUE :一套类似于流行的GLUE基准测试的法语NLP系统评估设置。目标是在将来实现更多可重现的实验,并共享关于法语语言的模型和进展。请参阅 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 版本是