Transformers documentation

HerBERT

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

该模型于 2020-05-01 在 HF papers 上发布,并于 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", device_map="auto")

encoded_input = tokenizer.encode("Kto ma lepszą sztukę, ma lepszy rząd – to jasne.", return_tensors="pt").to(model.device)
outputs = model(encoded_input)

# HerBERT can also be loaded using AutoTokenizer and AutoModel:
from transformers import AutoModel, AutoTokenizer


tokenizer = AutoTokenizer.from_pretrained("allegro/herbert-klej-cased-tokenizer-v1")
model = AutoModel.from_pretrained("allegro/herbert-klej-cased-v1", device_map="auto")

Herbert 的实现与 BERT 相同,只是分词方法不同。有关 API 参考和示例,请参阅 BERT 文档。

HerbertTokenizer

class transformers.HerbertTokenizer

< >

( vocab: str | dict[str, int] | None = Nonemerges: str | list[str] | None = Nonecls_token: str = '<s>'unk_token: str = '<unk>'pad_token: str = '<pad>'mask_token: str = '<mask>'sep_token: str = '</s>'vocab_file: str | None = Nonemerges_file: str | None = None**kwargs )

参数

  • vocab_file (str) — 词汇表文件的路径。
  • merges_file (str) — 合并文件的路径。
  • cls_token (str,可选,默认为 "<s>") — 分类器标记。
  • unk_token (str,可选,默认为 "<unk>") — 未知标记。
  • pad_token (str,可选,默认为 "<pad>") — 填充标记。
  • mask_token (str,可选,默认为 "<mask>") — 掩码标记。
  • sep_token (str,可选,默认为 "</s>") — 分隔符 token。
  • vocab (str、dict 或 list,可选) — 自定义词汇表。
  • merges(str 或 list[str],可选)— 自定义合并列表。

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

特殊之处:

  • 使用 BERT 的预分词器:BertPreTokenizer 会按空格和标点符号拆分 token。每个标点字符的出现都会被单独处理。

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

Update on GitHub