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

Este modelo foi publicado no HF papers em 2020-05-01 e contribuído para o Hugging Face Transformers em 2020-11-16.

HerBERT

Visão geral

O modelo HerBERT foi proposto em KLEJ: Comprehensive Benchmark for Polish Language Understanding por Piotr Rybak, Robert Mroczkowski, Janusz Tracz e Ireneusz Gawlik. Trata-se de um modelo de linguagem baseado em BERT, treinado em corpora poloneses usando apenas o objetivo MLM com mascaramento dinâmico de palavras inteiras.

O resumo do artigo é o seguinte:

Nos últimos anos, uma série de modelos baseados em Transformer desbloqueou grandes melhorias em tarefas gerais de compreensão de linguagem natural (NLU). Esse ritmo acelerado de pesquisa não seria possível sem benchmarks gerais de NLU, que permitem uma comparação justa dos métodos propostos. No entanto, esses benchmarks estão disponíveis apenas para um pequeno número de idiomas. Para mitigar esse problema, introduzimos um benchmark abrangente de múltiplas tarefas para a compreensão da língua polonesa, acompanhado por um leaderboard online. Ele consiste em um conjunto diversificado de tarefas, adotadas de conjuntos de dados existentes para reconhecimento de entidades nomeadas, question-answering, entailment textual e outros. Também introduzimos uma nova tarefa de análise de sentimento para o domínio de e-commerce, chamada Allegro Reviews (AR). Para garantir um esquema de avaliação comum e promover modelos que generalizam para diferentes tarefas de NLU, o benchmark inclui conjuntos de dados de domínios e aplicações variados. Além disso, liberamos o HerBERT, um modelo baseado em Transformer treinado especificamente para a língua polonesa, que apresenta o melhor desempenho médio e obtém os melhores resultados em três das nove tarefas. Por fim, fornecemos uma avaliação extensa, incluindo vários baselines padrão e modelos multilíngues baseados em Transformer propostos recentemente.

Este modelo foi contribuído por rmroczkowski. O código original pode ser encontrado aqui.

Exemplo de uso

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

A implementação do Herbert é a mesma do BERT, exceto pelo método de tokenização. Consulte a documentação do BERT para referência da API e exemplos.

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 )

Parâmetros

  • vocab_file (str) — Caminho para o arquivo de vocabulário.
  • merges_file (str) — Caminho para o arquivo de mesclagens.
  • cls_token (str, opcional, padrão "<s>") — O token do classificador.
  • unk_token (str, opcional, padrão "<unk>") — O token desconhecido.
  • pad_token (str, opcional, padrão "<pad>") — O token de preenchimento.
  • mask_token (str, opcional, padrão "<mask>") — O token de máscara.
  • sep_token (str, opcional, padrão "</s>") — O token separador.
  • vocab (str, dict ou list, opcional) — Dicionário de vocabulário personalizado.
  • merges (str ou list[str], opcional) — Lista de mesclagens personalizada.

Construa um tokenizador BPE para HerBERT (baseado na biblioteca tokenizers da HuggingFace).

Particularidades:

  • usa o pré-tokenizador do BERT: BertPreTokenizer divide os tokens em espaços e também em pontuação. Cada ocorrência de um caractere de pontuação será tratada separadamente.

Este tokenizador herda de TokenizersBackend, que contém a maioria dos métodos. Os usuários devem consultar a superclasse para obter mais informações sobre os métodos.

Update on GitHub