Transformers 文档
HerBERT
并获得增强的文档体验
开始使用
该模型于 2020-05-01 发布,并于 2020-11-16 添加到 Hugging Face Transformers。
HerBERT
概述
HerBERT 模型由 Piotr Rybak, Robert Mroczkowski, Janusz Tracz 和 Ireneusz Gawlik 在 KLEJ: Comprehensive Benchmark for Polish Language Understanding 中提出。它是一个基于 BERT 的语言模型,仅使用 MLM 目标和动态词语掩码在波兰语语料库上进行了训练。
论文摘要如下:
近年来,一系列基于 Transformer 的模型在通用自然语言理解 (NLU) 任务上取得了重大进展。如果没有通用的 NLU 基准,研究的快速进展将不可能实现,因为这些基准允许对所提出的方法进行公平比较。然而,这些基准仅适用于少数几种语言。为了缓解这个问题,我们为波兰语理解引入了一个全面的多任务基准,并附带了一个在线排行榜。它包含了一系列多样化的任务,这些任务是从现有的命名实体识别、问答、文本蕴含等任务的数据集中采纳的。我们还为电子商务领域引入了一个新的情感分析任务,名为 Allegro Reviews (AR)。为了确保通用的评估方案并推广能够泛化到不同 NLU 任务的模型,该基准包含来自不同领域和应用的数据集。此外,我们发布了 HerBERT,一个专门为波兰语训练的基于 Transformer 的模型,该模型具有最佳的平均性能,并在九项任务中的三项任务上取得了最佳结果。最后,我们提供了广泛的评估,包括几个标准的基线模型和最近提出的多语言 Transformer 模型。
此模型由 rmroczkowski 贡献。原始代码可以在 这里找到。
用法示例
>>> from transformers import HerbertTokenizer, RobertaModel
>>> tokenizer = HerbertTokenizer.from_pretrained("allegro/herbert-klej-cased-tokenizer-v1")
>>> model = RobertaModel.from_pretrained("allegro/herbert-klej-cased-v1")
>>> encoded_input = tokenizer.encode("Kto ma lepszą sztukę, ma lepszy rząd – to jasne.", return_tensors="pt")
>>> outputs = model(encoded_input)
>>> # HerBERT can also be loaded using AutoTokenizer and AutoModel:
>>> import torch
>>> from transformers import AutoModel, AutoTokenizer
>>> tokenizer = AutoTokenizer.from_pretrained("allegro/herbert-klej-cased-tokenizer-v1")
>>> model = AutoModel.from_pretrained("allegro/herbert-klej-cased-v1")Herbert 的实现与
BERT相同,除了分词方法。有关 API 参考和示例,请参阅 BERT 文档。
HerbertTokenizer
class transformers.HerbertTokenizer
< 源代码 >( vocab: str | dict[str, int] | None = None merges: str | list[str] | None = None cls_token: str = '<s>' unk_token: str = '<unk>' pad_token: str = '<pad>' mask_token: str = '<mask>' sep_token: str = '</s>' vocab_file: str | None = None merges_file: str | None = None **kwargs )
参数
- vocab_file (
str) — 词汇文件路径。 - merges_file (
str) — merges 文件路径。 - cls_token (
str, 可选, 默认为"<s>") — 分类器 token。 - unk_token (
str, 可选, 默认为"<unk>") — 未知 token。 - pad_token (
str, 可选, 默认为"<pad>") — padding token。 - mask_token (
str, 可选, 默认为"<mask>") — mask token。 - sep_token (
str, 可选, 默认为"</s>") — 分隔符 token。 - vocab (
str,dict或list, 可选) — 自定义词汇字典。 - merges (
str或list[str], 可选) — 自定义 merges 列表。
构建一个 HerBERT 的 BPE 分词器(基于 HuggingFace 的 tokenizers 库)。
独特性
- 使用 BERT 的预分词器:BertPreTokenizer 在空格处进行分词,也在标点符号处进行分词。每个标点符号的出现都将被单独处理。
此分词器继承自 TokenizersBackend,该类包含大部分方法。用户应参考父类以获取有关方法的更多信息。
HerbertTokenizerFast
class transformers.HerbertTokenizer
< 源代码 >( vocab: str | dict[str, int] | None = None merges: str | list[str] | None = None cls_token: str = '<s>' unk_token: str = '<unk>' pad_token: str = '<pad>' mask_token: str = '<mask>' sep_token: str = '</s>' vocab_file: str | None = None merges_file: str | None = None **kwargs )
参数
- vocab_file (
str) — 词汇文件路径。 - merges_file (
str) — merges 文件路径。 - cls_token (
str, 可选, 默认为"<s>") — 分类器 token。 - unk_token (
str, 可选, 默认为"<unk>") — 未知 token。 - pad_token (
str, 可选, 默认为"<pad>") — padding token。 - mask_token (
str, 可选, 默认为"<mask>") — mask token。 - sep_token (
str, 可选, 默认为"</s>") — 分隔符 token。 - vocab (
str,dict或list, 可选) — 自定义词汇字典。 - merges (
str或list[str], 可选) — 自定义 merges 列表。
构建一个 HerBERT 的 BPE 分词器(基于 HuggingFace 的 tokenizers 库)。
独特性
- 使用 BERT 的预分词器:BertPreTokenizer 在空格处进行分词,也在标点符号处进行分词。每个标点符号的出现都将被单独处理。
此分词器继承自 TokenizersBackend,该类包含大部分方法。用户应参考父类以获取有关方法的更多信息。