项目介绍:flaubert_small_cased
flaubert_small_cased 是FlauBERT系列中的一个模型,它专为法语自然语言处理而设计。FlauBERT是一个未监督的语言模型,使用了来自法国国家科学研究中心的Jean Zay超级计算机在庞大而多样的法语语料库上进行训练。FlauBERT旨在为法语自然语言处理系统提供一个类似于GLUE的评估基准,叫做FLUE,以便未来能进行可重复的实验,并促进法语语言的研究和模型共享。
FlauBERT 模型概览
FlauBERT提供了多个不同大小的模型,具体参数如下:
模型名称 | 层数 | 注意力头数 | 嵌入维度 | 参数总量 |
---|---|---|---|---|
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库
在Python中,可以通过Hugging Face的Transformers库来使用FlauBERT。以下是一个简单的示例:
import torch
from transformers import FlaubertModel, FlaubertTokenizer
# 选择模型
modelname = 'flaubert/flaubert_base_cased'
# 加载预训练模型和分词器
flaubert, log = FlaubertModel.from_pretrained(modelname, output_loading_info=True)
flaubert_tokenizer = FlaubertTokenizer.from_pretrained(modelname, do_lowercase=False)
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]) -> (批量大小 x 令牌数 x 嵌入维度)
# BERT的[CLS]标记对应于最后一层的第一个隐藏状态
cls_embedding = last_layer[:, 0, :]
关于FlauBERT的使用说明
如果您的Transformers库版本小于或等于2.10.0,型号要选择如下值之一:
['flaubert-small-cased', 'flaubert-base-uncased', 'flaubert-base-cased', 'flaubert-large-cased']
参考文献
若您在科学出版物中使用FlauBERT或FLUE基准,或发现本库中的资源有用,请引用以下论文:
LREC论文 和 TALN论文提供了FlauBERT详细的理论和技术背景。
通过这些技术支持,FlauBERT为法语语言的自然语言处理研究提供了强有力的工具和平台。