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年5月1日に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ベンチマークがあってこそ実現したものです。しかしながら、こうしたベンチマークはごく少数の言語に対してのみ利用可能です。この問題を緩和するため、ポーランド語理解のための包括的なマルチタスクベンチマークと、オンラインリーダーボードを併せて紹介します。本ベンチマークは、名前実体認識、質問応答、テキストエンタイルメントなど、既存のデータセットから採用した多様なタスクで構成されています。また、ECドメイン向けの新しい感情分析タスクであるAllegro Reviews(AR)も紹介します。共通の評価スキームを確保し、異なるNLUタスクに汎化できるモデルを奨励するため、本ベンチマークは異なるドメインやアプリケーションからのデータセットを含んでいます。さらに、ポーランド語に特化して訓練されたTransformerベースのモデルHerBERTを公開します。HerBERTは平均性能が最も高く、9つのタスクのうち3つで最良の結果を達成しています。最後に、いくつかの標準的なベースラインや、最近提案された多言語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

クラス 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>") — セパレータートークンです。
  • vocab (str、dict または list、任意) — カスタム語彙辞書。
  • merges (str または list[str]、省略可) — カスタムマージリスト。

HerBERT用のBPEトークナイザーを構築します(HuggingFaceのtokenizersライブラリをバックエンドとして使用)。

特記事項:

  • BERTのプリトークナイザーを使用します。BertPreTokenizerはスペースと句読点でトークンを分割します。句読点の各出現箇所は個別に扱われます。

このトークナイザーは、ほとんどのメソッドを含む TokenizersBackend を継承しています。メソッドに関する詳細については、スーパークラスを参照してください。

Update on GitHub