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

Ce modèle a été publié dans HF papers le 2020-05-01 et ajouté à Hugging Face Transformers le 2020-11-16.

HerBERT

Aperçu

Le modèle HerBERT a été proposé dans KLEJ: Comprehensive Benchmark for Polish Language Understanding par Piotr Rybak, Robert Mroczkowski, Janusz Tracz et Ireneusz Gawlik. Il s'agit d'un modèle de langage basé sur BERT, entraîné sur des corpus polonais en utilisant uniquement l'objectif MLM avec un masquage dynamique de mots entiers.

L'abstract de l'article est le suivant :

Ces dernières années, une série de modèles basés sur les Transformers a permis d’obtenir des améliorations majeures sur les tâches générales de compréhension du langage naturel (NLU). Un tel rythme de recherche ne serait pas possible sans des benchmarks NLU généraux, qui permettent une comparaison équitable des méthodes proposées. Cependant, de tels benchmarks ne sont disponibles que pour un petit nombre de langues. Pour atténuer ce problème, nous introduisons un benchmark multi-tâches complet pour la compréhension de la langue polonaise, accompagné d’un classement en ligne. Il se compose d’un ensemble diversifié de tâches, adoptées à partir de jeux de données existants pour la reconnaissance d’entités nommées, la question-réponse, l’inférence textuelle et d’autres. Nous introduisons également une nouvelle tâche d’analyse de sentiments pour le domaine du commerce électronique, nommée Allegro Reviews (AR). Pour garantir un schéma d’évaluation commun et promouvoir les modèles qui généralisent à différentes tâches NLU, le benchmark inclut des jeux de données provenant de domaines et d’applications variés. En outre, nous publions HerBERT, un modèle basé sur les Transformers entraîné spécifiquement pour la langue polonaise, qui présente la meilleure performance moyenne et obtient les meilleurs résultats pour trois des neuf tâches. Enfin, nous fournissons une évaluation approfondie, incluant plusieurs lignes de base standard et des modèles multilingues basés sur les Transformers récemment proposés.

Ce modèle a été contribué par rmroczkowski. Le code d'origine peut être trouvé ici.

Exemple d'utilisation

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")

L'implémentation de Herbert est identique à celle de BERT, à l'exception de la méthode de tokenisation. Consultez la documentation de BERT pour la référence de l'API et des exemples.

HerbertTokenizer

classe 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 )

Paramètres

  • vocab_file (str) — Chemin vers le fichier de vocabulaire.
  • merges_file (str) — Chemin vers le fichier de fusions.
  • cls_token (str, facultatif, par défaut "<s>") — Le jeton de classification.
  • unk_token (str, facultatif, par défaut "<unk>") — Le jeton inconnu.
  • pad_token (str, facultatif, par défaut "<pad>") — Le jeton de bourrage.
  • mask_token (str, facultatif, par défaut "<mask>") — Le jeton de masque.
  • sep_token (str, facultatif, par défaut "</s>") — Le jeton séparateur.
  • vocab (str, dict ou list, facultatif) — Dictionnaire de vocabulaire personnalisé.
  • merges (str ou list[str], facultatif) — Liste de fusions personnalisée.

Construire un tokeniseur BPE pour HerBERT (basé sur la bibliothèque tokenizers de HuggingFace).

Particularités :

  • utilise le pré-tokeniseur de BERT : BertPreTokenizer découpe les jetons sur les espaces, ainsi que sur la ponctuation. Chaque occurrence d’un caractère de ponctuation sera traitée séparément.

Ce tokenizer hérite de TokenizersBackend, qui contient la plupart des méthodes. Les utilisateurs doivent se référer à la classe parente pour plus d'informations sur les méthodes.

Update on GitHub