模型:
google/canine-s
通过掩码语言建模(MLM)目标在104种语言上进行的预训练CANINE模型。它在论文 CANINE: Pre-training an Efficient Tokenization-Free Encoder for Language Representation 中被介绍,并于 this repository 首次发布。
CANINE的特殊之处在于它不需要像BERT和RoBERTa等其他模型一样使用显式分词器(如WordPiece或SentencePiece)。相反,它直接在字符级别进行操作:每个字符被转换为其Unicode代码点。
这意味着输入处理是微不足道的,通常可以像这样完成:
input_ids = [ord(char) for char in text]
ord()函数是Python的一部分,将每个字符转换为其Unicode代码点。
免责声明:发布CANINE的团队没有为该模型编写模型卡片,因此这个模型卡片是由Hugging Face团队编写的。
CANINE是一个基于transformers模型的预训练模型,它以自监督的方式在大量多语言数据上进行了预训练,类似于BERT。这意味着它仅使用原始文本进行预训练,没有以任何方式人工标记它们(这就是为什么它可以使用大量公开可用的数据),并且使用自动化过程从这些文本中生成输入和标签。更准确地说,它使用了两个目标进行预训练:
这样,模型学习到了多种语言的内部表示,然后可以用于提取对下游任务有用的特征:例如,如果您有一组带标签的句子数据,您可以使用由CANINE模型生成的特征作为输入来训练一个标准的分类器。
您可以将原始模型用于屏蔽语言建模或下一个句子预测,但它主要用于在下游任务上进行微调。请参阅 model hub 以查找您感兴趣的任务的微调版本。
请注意,该模型主要适用于在使用整个句子(可能被屏蔽)做出决策的任务上进行微调,如序列分类、标记分类或问答。对于文本生成等任务,您应该查看像GPT2这样的模型。
以下是如何使用该模型的方法:
from transformers import CanineTokenizer, CanineModel model = CanineModel.from_pretrained('google/canine-s') tokenizer = CanineTokenizer.from_pretrained('google/canine-s') inputs = ["Life is like a box of chocolates.", "You never know what you gonna get."] encoding = tokenizer(inputs, padding="longest", truncation=True, return_tensors="pt") outputs = model(**encoding) # forward pass pooled_output = outputs.pooler_output sequence_output = outputs.last_hidden_state
CANINE模型是在包含104种语言的维基百科多语言数据 mBERT 上进行的预训练。
@article{DBLP:journals/corr/abs-2103-06874, author = {Jonathan H. Clark and Dan Garrette and Iulia Turc and John Wieting}, title = {{CANINE:} Pre-training an Efficient Tokenization-Free Encoder for Language Representation}, journal = {CoRR}, volume = {abs/2103.06874}, year = {2021}, url = {https://arxiv.org/abs/2103.06874}, archivePrefix = {arXiv}, eprint = {2103.06874}, timestamp = {Tue, 16 Mar 2021 11:26:59 +0100}, biburl = {https://dblp.org/rec/journals/corr/abs-2103-06874.bib}, bibsource = {dblp computer science bibliography, https://dblp.org} }