Transformers documentation

HerBERT

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
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