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 se publicó en HF papers el 2020-05-01 y se contribuyó a Hugging Face Transformers el 2020-11-16.

HerBERT

Resumen

El modelo HerBERT fue propuesto en KLEJ: Comprehensive Benchmark for Polish Language Understanding por Piotr Rybak, Robert Mroczkowski, Janusz Tracz e Ireneusz Gawlik. Es un modelo de lenguaje basado en BERT entrenado en corpus en polaco utilizando únicamente el objetivo MLM con enmascarado dinámico de palabras completas.

El resumen del artículo es el siguiente:

En los últimos años, una serie de modelos basados en Transformers han desbloqueado mejoras significativas en tareas generales de comprensión del lenguaje natural (NLU). Este rápido ritmo de investigación no sería posible sin benchmarks generales de NLU, que permiten una comparación justa de los métodos propuestos. Sin embargo, dichos benchmarks solo están disponibles para un puñado de idiomas. Para aliviar este problema, presentamos un benchmark integral de multitarea para la comprensión del idioma polaco, acompañado de un tablero de clasificación en línea. Está compuesto por un conjunto diverso de tareas, adoptadas de conjuntos de datos existentes para el reconocimiento de entidades nombradas, la respuesta a preguntas, la inferencia textual y otras. También introducimos una nueva tarea de análisis de sentimiento para el dominio del comercio electrónico, denominada Allegro Reviews (AR). Para garantizar un esquema de evaluación común y promover modelos que generalicen a diferentes tareas de NLU, el benchmark incluye conjuntos de datos de dominios y aplicaciones variados. Además, publicamos HerBERT, un modelo basado en Transformers entrenado específicamente para el idioma polaco, que presenta el mejor rendimiento promedio y obtiene los mejores resultados en tres de las nueve tareas. Finalmente, proporcionamos una evaluación exhaustiva, que incluye varias líneas base estándar y modelos multilingües basados en Transformers propuestos recientemente.

Este modelo fue aportado por rmroczkowski. El código original se puede encontrar aquí.

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

La implementación de Herbert es la misma que la de BERT, excepto por el método de tokenización. Consulte la documentación de BERT para obtener la referencia de la API y ejemplos.

HerbertTokenizer

clase 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) — Ruta al archivo de vocabulario.
  • merges_file (str) — Ruta al archivo de fusiones.
  • cls_token (str, opcional, valor predeterminado "<s>") — El token del clasificador.
  • unk_token (str, opcional, valor predeterminado "<unk>") — El token desconocido.
  • pad_token (str, opcional, valor predeterminado "<pad>") — El token de relleno.
  • mask_token (str, opcional, valor predeterminado "<mask>") — El token de máscara.
  • sep_token (str, opcional, por defecto "</s>") — El token separador.
  • vocab (str, dict o list, opcional) — Diccionario de vocabulario personalizado.
  • merges (str o list[str], opcional) — Lista de fusiones personalizada.

Construya un tokenizador BPE para HerBERT (respaldado por la biblioteca tokenizers de HuggingFace).

Particularidades:

  • utiliza el pretokenizador de BERT: BertPreTokenizer divide los tokens en espacios y también en puntuación. Cada aparición de un carácter de puntuación se tratará por separado.

Este tokenizador hereda de TokenizersBackend, que contiene la mayoría de los métodos. Los usuarios deben consultar la superclase para obtener más información sobre los métodos.

Update on GitHub