camembert-base-legacy项目详细介绍
项目简介
camembert-base-legacy项目是基于RoBERTa模型的最新法语语言模型CamemBERT的一种实现。CamemBERT是一个专为法语设计的高级语言模型,与世界著名的机器学习公司Hugging Face合作,向用户提供多种版本的模型。目前,该模型共有6个版本,不同版本间的区别主要体现在参数数量、预训练数据量及预训练数据源领域等方面。
预训练模型列表
以下是camembert-base及其相关版本的一些详细信息:
模型 | 参数数量 | 架构 | 训练数据 |
---|---|---|---|
camembert-base | 110百万 | Base | OSCAR (138 GB文本) |
camembert/camembert-large | 335百万 | Large | CCNet (135 GB文本) |
camembert/camembert-base-ccnet | 110百万 | Base | CCNet (135 GB文本) |
camembert/camembert-base-wikipedia-4gb | 110百万 | Base | Wikipedia (4 GB文本) |
camembert/camembert-base-oscar-4gb | 110百万 | Base | OSCAR的子集 (4 GB文本) |
camembert/camembert-base-ccnet-4gb | 110百万 | Base | CCNet的子集 (4 GB文本) |
如何在Hugging Face上使用CamemBERT
加载CamemBERT及其子词分词器
使用Python中的transformers库可以轻松加载CamemBERT及其分词器:
from transformers import CamembertModel, CamembertTokenizer
# 可以替换成其他模型,例如"camembert/camembert-large"。
tokenizer = CamembertTokenizer.from_pretrained("camembert/camembert-base-wikipedia-4gb")
camembert = CamembertModel.from_pretrained("camembert/camembert-base-wikipedia-4gb")
camembert.eval() # 禁用dropout(或保留在训练模式以进行微调)
使用填充掩码的管道
CamemBERT可以用于填充掩码的语言任务,如下所示:
from transformers import pipeline
camembert_fill_mask = pipeline("fill-mask", model="camembert/camembert-base-wikipedia-4gb", tokenizer="camembert/camembert-base-wikipedia-4gb")
results = camembert_fill_mask("Le camembert est un fromage de <mask>!")
提取CamemBERT输出的上下文嵌入特征
对句子进行分词和编码,然后输入CamemBERT获取上下文嵌入:
import torch
# 使用SentencePiece进行子词分词
tokenized_sentence = tokenizer.tokenize("J'aime le camembert !")
# 1-hot编码并添加特殊起止标记
encoded_sentence = tokenizer.encode(tokenized_sentence)
encoded_sentence = torch.tensor(encoded_sentence).unsqueeze(0)
embeddings, _ = camembert(encoded_sentence)
提取所有CamemBERT层的上下文嵌入特征
重新加载模型以获得所有层的上下文嵌入特征:
from transformers import CamembertConfig
config = CamembertConfig.from_pretrained("camembert/camembert-base-wikipedia-4gb", output_hidden_states=True)
camembert = CamembertModel.from_pretrained("camembert/camembert-base-wikipedia-4gb", config=config)
embeddings, _, all_layer_embeddings = camembert(encoded_sentence)
项目作者
CamemBERT由Louis Martin、Benjamin Muller、Pedro Javier Ortiz Suárez、Yoann Dupont、Laurent Romary、Éric Villemonte de la Clergerie、Djamé Seddah和Benoît Sagot训练和评估。其在语言应用领域的表现为法语文本处理提供了强有力的支持。
引用
如果使用了CamemBERT的工作,可以参考以下的引用方式:
@inproceedings{martin2020camembert,
title={CamemBERT: a Tasty French Language Model},
author={Martin, Louis and Muller, Benjamin and Su{\'a}rez, Pedro Javier Ortiz and Dupont, Yoann and Romary, Laurent and de la Clergerie, {\'E}ric Villemonte and Seddah, Djam{\'e} and Sagot, Beno{\^\i}t},
booktitle={Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics},
year={2020}
}