🚀 CANINE-s(使用子词损失预训练的CANINE模型)
CANINE-s是一个基于掩码语言建模(MLM)目标,在104种语言上进行预训练的模型。它在论文CANINE: Pre-training an Efficient Tokenization-Free Encoder for Language Representation中被提出,并首次在此仓库中发布。CANINE的特别之处在于,它不需要像BERT和RoBERTa等模型那样的显式分词器(如WordPiece或SentencePiece),而是直接在字符级别进行操作:每个字符都会被转换为其Unicode码点。这意味着输入处理非常简单,通常可以通过以下方式完成:
input_ids = [ord(char) for char in text]
其中,ord()
是Python内置函数,用于将字符转换为其Unicode码点。
声明:发布CANINE的团队并未为此模型编写模型卡片,此模型卡片由Hugging Face团队编写。
✨ 主要特性
- 无需显式分词器:直接在字符级别操作,避免了传统分词器的使用。
- 多语言支持:在104种语言的大规模语料上进行预训练。
- 自监督学习:通过掩码语言建模(MLM)和下一句预测(NSP)两个目标进行预训练。
📦 安装指南
文档未提及安装步骤,可参考Hugging Face的相关文档进行安装。
💻 使用示例
基础用法
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)
pooled_output = outputs.pooler_output
sequence_output = outputs.last_hidden_state
高级用法
文档未提及高级用法示例,可根据具体需求对模型进行微调。
📚 详细文档
模型描述
CANINE是一个以自监督方式在大规模多语言语料上进行预训练的Transformer模型,与BERT类似。这意味着它仅在原始文本上进行预训练,无需人工标注(因此可以使用大量公开可用的数据),并通过自动过程从这些文本中生成输入和标签。更确切地说,它通过两个目标进行预训练:
- 掩码语言建模(MLM):随机掩码部分输入,模型需要预测被掩码的部分。此模型(CANINE-s)使用子词损失进行训练,即模型需要在以字符为输入的情况下预测子词标记的标识。通过读取字符并预测子词标记,像BERT等其他模型中严格的分词边界约束在CANINE中变成了一种软归纳偏置。
- 下一句预测(NSP):在预训练期间,模型将两个句子拼接作为输入。有时这两个句子在原始文本中是相邻的,有时则不是。模型需要预测这两个句子是否相邻。
通过这种方式,模型学习到多种语言的内部表示,可用于提取对下游任务有用的特征。例如,如果您有一个带标签的句子数据集,可以使用CANINE模型生成的特征作为输入来训练一个标准分类器。
预期用途和局限性
您可以使用原始模型进行掩码语言建模或下一句预测,但它主要用于在下游任务上进行微调。请查看模型中心,寻找针对您感兴趣的任务进行微调的版本。
请注意,此模型主要旨在针对使用整个句子(可能被掩码)进行决策的任务进行微调,例如序列分类、标记分类或问答任务。对于文本生成等任务,您应该考虑使用GPT2等模型。
训练数据
CANINE模型在mBERT的多语言维基百科数据上进行预训练,该数据包含104种语言。
引用信息
@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}
}
📄 许可证
本模型使用Apache 2.0许可证。
属性 |
详情 |
模型类型 |
基于Transformer架构的多语言预训练模型 |
训练数据 |
包含104种语言的多语言维基百科数据 |