Transformers 文档

HerBERT

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

该模型于 2020-05-01 发布,并于 2020-11-16 添加到 Hugging Face Transformers。

HerBERT

PyTorch

概述

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, dictlist, 可选) — 自定义词汇字典。
  • merges (strlist[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, dictlist, 可选) — 自定义词汇字典。
  • merges (strlist[str], 可选) — 自定义 merges 列表。

构建一个 HerBERT 的 BPE 分词器(基于 HuggingFace 的 tokenizers 库)。

独特性

  • 使用 BERT 的预分词器:BertPreTokenizer 在空格处进行分词,也在标点符号处进行分词。每个标点符号的出现都将被单独处理。

此分词器继承自 TokenizersBackend,该类包含大部分方法。用户应参考父类以获取有关方法的更多信息。

在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.