模型:
bert-base-multilingual-cased
在具有最大维基百科上引入遮蔽语言建模(MLM)目标的104种语言上进行预训练模型。这是在 这篇论文中介绍的 。 并首次在这个存储库中发布。此模型区分大小写:它将英语和English区分开来。
免责声明:发布BERT的团队没有为此模型撰写模型卡,因此这个模型卡是由Hugging Face团队编写的。
BERT是一个以自监督方式在大型多语言数据语料库上进行预训练的转换器模型。这意味着它只对原始文本进行了预训练,而没有以任何方式进行人工标注(这就是为什么它可以使用大量公开可用的数据),它使用自动化过程从这些文本中生成输入和标签。更确切地说,它通过两个目标进行了预训练:
通过这种方式,模型学习了训练集中语言的内部表示,可以用于提取对下游任务有用的特征:例如,如果您有一个带有标记句子的数据集,可以使用BERT模型生成的特征作为输入来训练标准分类器。
您可以直接使用原始模型进行遮蔽语言建模或下一句预测,但它主要用于在下游任务上进行微调。在 模型库 中寻找您感兴趣的任务的微调版本。
请注意,此模型主要用于在使用整个句子(可能被遮蔽)进行决策的任务上进行微调,例如序列分类,标记分类或问答。对于文本生成等任务,您应该查看类似GPT2的模型。
您可以使用此模型直接使用遮蔽语言建模流水线:
>>> from transformers import pipeline >>> unmasker = pipeline('fill-mask', model='bert-base-multilingual-cased') >>> unmasker("Hello I'm a [MASK] model.") [{'sequence': "[CLS] Hello I'm a model model. [SEP]", 'score': 0.10182085633277893, 'token': 13192, 'token_str': 'model'}, {'sequence': "[CLS] Hello I'm a world model. [SEP]", 'score': 0.052126359194517136, 'token': 11356, 'token_str': 'world'}, {'sequence': "[CLS] Hello I'm a data model. [SEP]", 'score': 0.048930276185274124, 'token': 11165, 'token_str': 'data'}, {'sequence': "[CLS] Hello I'm a flight model. [SEP]", 'score': 0.02036019042134285, 'token': 23578, 'token_str': 'flight'}, {'sequence': "[CLS] Hello I'm a business model. [SEP]", 'score': 0.020079681649804115, 'token': 14155, 'token_str': 'business'}]
以下是如何使用此模型在PyTorch中获取给定文本的特征:
from transformers import BertTokenizer, BertModel tokenizer = BertTokenizer.from_pretrained('bert-base-multilingual-cased') model = BertModel.from_pretrained("bert-base-multilingual-cased") text = "Replace me by any text you'd like." encoded_input = tokenizer(text, return_tensors='pt') output = model(**encoded_input)
以及在TensorFlow中:
from transformers import BertTokenizer, TFBertModel tokenizer = BertTokenizer.from_pretrained('bert-base-multilingual-cased') model = TFBertModel.from_pretrained("bert-base-multilingual-cased") text = "Replace me by any text you'd like." encoded_input = tokenizer(text, return_tensors='tf') output = model(encoded_input)
BERT模型在具有最大维基百科的104种语言上进行了预训练。您可以在这里找到完整列表。
文本以小写形式出现,并使用WordPiece和共享的110,000个词汇大小进行标记化。具有较大维基百科的语言会进行过采样,而资源较少的语言则进行过采样。对于无空格的中文、日本汉字和韩国汉字等语言,每个字符周围都添加了CJK Unicode块。
然后,模型的输入形式如下:
[CLS] Sentence A [SEP] Sentence B [SEP]
有50%的概率,句子A和句子B与原始语料库中的两个连续句子对应,在其他情况下,它是语料库中的另一个随机句子。请注意,这里被认为是一个句子的连续文本段通常比单个句子更长。唯一的限制是这两个“句子”的结果的长度总和小于512个令牌。
每个句子的遮蔽过程的详细信息如下:
@article{DBLP:journals/corr/abs-1810-04805, author = {Jacob Devlin and Ming{-}Wei Chang and Kenton Lee and Kristina Toutanova}, title = {{BERT:} Pre-training of Deep Bidirectional Transformers for Language Understanding}, journal = {CoRR}, volume = {abs/1810.04805}, year = {2018}, url = {http://arxiv.org/abs/1810.04805}, archivePrefix = {arXiv}, eprint = {1810.04805}, timestamp = {Tue, 30 Oct 2018 20:39:56 +0100}, biburl = {https://dblp.org/rec/journals/corr/abs-1810-04805.bib}, bibsource = {dblp computer science bibliography, https://dblp.org} }