Transformers documentation

mLUKE

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 2021-10-15 y se contribuyó a Hugging Face Transformers el 2021-12-07.

mLUKE

Resumen

El modelo mLUKE fue propuesto en mLUKE: The Power of Entity Representations in Multilingual Pretrained Language Models por Ryokan Ri, Ikuya Yamada y Yoshimasa Tsuruoka. Es una extensión multilingüe del modelo LUKE entrenada sobre la base de XLM-RoBERTa.

Se basa en XLM-RoBERTa y añade embeddings de entidades, lo que ayuda a mejorar el rendimiento en diversas tareas de nivel inferior que implican razonamiento sobre entidades, como el reconocimiento de entidades nombradas, la respuesta a preguntas extractiva, la clasificación de relaciones y la completación de conocimiento de tipo cloze.

El resumen del artículo es el siguiente:

Estudios recientes han demostrado que los modelos de lenguaje multilingües preentrenados pueden mejorarse de forma efectiva con información de alineación entre idiomas procedente de entidades de Wikipedia. Sin embargo, los métodos existentes solo aprovechan la información de las entidades durante el preentrenamiento y no las utilizan de forma explícita en las tareas descendentes. En este estudio, exploramos la eficacia de aprovechar las representaciones de entidades para tareas descendentes entre idiomas. Entrenamos un modelo de lenguaje multilingüe con 24 idiomas utilizando representaciones de entidades y demostramos que el modelo supera de forma consistente a los modelos preentrenados basados en palabras en diversas tareas de transferencia entre idiomas. También analizamos el modelo y la clave principal es que incorporar representaciones de entidades en la entrada nos permite extraer características más independientes del idioma. Además, evaluamos el modelo con una tarea de prompt multilingüe de tipo cloze utilizando el conjunto de datos mLAMA. Mostramos que un prompt basado en entidades provoca con mayor probabilidad el conocimiento factual correcto que el uso de representaciones solo de palabras.

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

Consejos de uso

Se pueden insertar directamente los pesos de mLUKE en un modelo LUKE, de la siguiente manera:

from transformers import LukeModel


model = LukeModel.from_pretrained("studio-ousia/mluke-base", device_map="auto")

Tenga en cuenta que mLUKE tiene su propio tokenizador, MLukeTokenizer. Puede inicializarlo de la siguiente manera:

from transformers import MLukeTokenizer


tokenizer = MLukeTokenizer.from_pretrained("studio-ousia/mluke-base")

Dado que la arquitectura de mLUKE es equivalente a la de LUKE, se puede consultar la página de documentación de LUKE para obtener todos los consejos, ejemplos de código y cuadernos.

MLukeTokenizer

clase transformers.MLukeTokenizer

< >

( bos_token = '<s>'eos_token = '</s>'sep_token = '</s>'cls_token = '<s>'unk_token = '<unk>'pad_token = '<pad>'mask_token = '<mask>'task = Nonemax_entity_length = 32max_mention_length = 30entity_1_token = '<ent>'entity_2_token = '<ent2>'entity_unk_token = '[UNK]'entity_pad_token = '[PAD]'entity_mask_token = '[MASK]'entity_mask2_token = '[MASK2]'vocab: str | dict | list | None = Noneentity_vocab: str | dict | list | None = None**kwargs )

Parámetros

  • vocab_file (str) — Ruta al archivo de vocabulario.
  • entity_vocab_file (str) — Ruta al archivo de vocabulario de entidades.
  • bos_token (str, opcional, por defecto "<s>") — El token de inicio de secuencia que se utilizó durante el preentrenamiento. Puede usarse como token de clasificador de secuencias. Al construir una secuencia con tokens especiales, este no es el token que se utiliza para el inicio de la secuencia. El token que se utiliza es cls_token.

    Al construir una secuencia con tokens especiales, este no es el token que se utiliza para el inicio de la secuencia. El token que se utiliza es cls_token.

  • eos_token (str, opcional, por defecto es "</s>") — El token de fin de secuencia. Al construir una secuencia con tokens especiales, este no es el token que se utiliza para el fin de la secuencia. El token que se utiliza es sep_token.

    Al construir una secuencia con tokens especiales, este no es el token que se utiliza para el final de la secuencia. El token que se utiliza es sep_token.

  • sep_token (str, opcional, valor predeterminado "</s>") — El token separador, que se utiliza al construir una secuencia a partir de varias secuencias, por ejemplo, dos secuencias para la clasificación de secuencias o un texto y una pregunta para la respuesta a preguntas. También se utiliza como el último token de una secuencia construida con tokens especiales.
  • cls_token (str, opcional, valor predeterminado "<s>") — El token clasificador que se utiliza al realizar clasificación de secuencias (clasificación de la secuencia completa en lugar de clasificación por token). Es el primer token de la secuencia cuando se construye con tokens especiales.
  • unk_token (str, opcional, valor predeterminado "<unk>") — El token desconocido. Un token que no está en el vocabulario no se puede convertir en un ID y se establece como este token en su lugar.
  • pad_token (str, opcional, valor predeterminado "<pad>") — El token utilizado para el relleno, por ejemplo, al agrupar secuencias de diferentes longitudes.
  • mask_token (str, opcional, valor predeterminado "<mask>") — El token utilizado para enmascarar valores. Este es el token que se emplea al entrenar este modelo con modelado de lenguaje enmascarado. Es el token que el modelo intentará predecir.
  • task (str, opcional) — Tarea para la que deseas preparar las secuencias. Una de "entity_classification", "entity_pair_classification" o "entity_span_classification". Si especificas este argumento, la secuencia de entidades se crea automáticamente en función del o los tramos de entidad dados.
  • max_entity_length (int, opcional, valor predeterminado 32) — La longitud máxima de entity_ids.
  • max_mention_length (int, opcional, valor predeterminado 30) — El número máximo de tokens dentro de un tramo de entidad.
  • entity_1_token (str, opcional, valor predeterminado <ent>) — El token especial utilizado para representar un tramo de entidad en una secuencia de tokens de palabras. Este token solo se utiliza cuando task está establecido en "entity_classification" o "entity_pair_classification".
  • entity_2_token (str, opcional, valor predeterminado <ent2>) — El token especial utilizado para representar un tramo de entidad en una secuencia de tokens de palabras. Este token solo se utiliza cuando task está establecido en "entity_pair_classification".
  • additional_special_tokens (list[str], opcional, valor predeterminado ["<s>NOTUSED", "</s>NOTUSED"]) — Tokens especiales adicionales utilizados por el tokenizador.
  • sp_model_kwargs (dict, opcional) — Se pasará al SentencePieceProcessor.__init__() método. El envoltorio de Python para SentencePiece se puede utilizar, entre otras cosas, para configurar:
    • enable_sampling: Habilita la regularización de subpalabras.

    • nbest_size: Parámetros de muestreo para unigramas. No válido para BPE-Dropout.

      • nbest_size = {0,1}: No se realiza muestreo.
      • nbest_size > 1: muestrea de los resultados de nbest_size.
      • nbest_size < 0: se asume que nbest_size es infinito y se muestrea de todas las hipótesis (lattice) utilizando el algoritmo de filtrado hacia adelante y muestreo hacia atrás.
    • alpha: Parámetro de suavizado para la muestreo de unigramas y probabilidad de descarte para las operaciones de fusión en BPE-dropout.

  • sp_model (SentencePieceProcessor) — El procesador SentencePiece que se utiliza para cada conversión (cadenas, tokens e IDs).

Adaptado de XLMRobertaTokenizer y LukeTokenizer. Basado en SentencePiece.

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

__call__

< >

( text: str | list[str]text_pair: str | list[str] | None = Noneentity_spans: list[tuple[int, int]] | list[list[tuple[int, int]]] | None = Noneentity_spans_pair: list[tuple[int, int]] | list[list[tuple[int, int]]] | None = Noneentities: list[str] | list[list[str]] | None = Noneentities_pair: list[str] | list[list[str]] | None = Noneadd_special_tokens: bool = Truepadding: bool | str | transformers.utils.generic.PaddingStrategy = Falsetruncation: bool | str | transformers.tokenization_utils_base.TruncationStrategy | None = Nonemax_length: int | None = Nonemax_entity_length: int | None = Nonestride: int = 0is_split_into_words: bool | None = Falsepad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = Nonereturn_token_type_ids: bool | None = Nonereturn_attention_mask: bool | None = Nonereturn_overflowing_tokens: bool = Falsereturn_special_tokens_mask: bool = Falsereturn_offsets_mapping: bool = Falsereturn_length: bool = Falseverbose: bool = True**kwargs ) → BatchEncoding

Devuelve

BatchEncoding

Un BatchEncoding con los siguientes campos:

  • input_ids — Lista de ids de tokens que se enviarán a un modelo.

    ¿Qué son los IDs de entrada?

  • token_type_ids — Lista de ids de tipo de token que se enviarán a un modelo (cuando return_token_type_ids=True o si “token_type_ids” está en self.model_input_names).

    ¿Qué son los IDs de tipo de token?

  • attention_mask — Lista de índices que especifica qué tokens deben ser atendidos por el modelo (cuando return_attention_mask=True o si “attention_mask” está en self.model_input_names).

    ¿Qué son las máscaras de atención?

  • entity_ids — Lista de ids de entidades que se enviarán a un modelo.

    ¿Qué son los IDs de entrada?

  • entity_position_ids — Lista de posiciones de entidades en la secuencia de entrada que se enviará a un modelo.

  • entity_token_type_ids — Lista de ids de tipo de token de entidad que se enviarán a un modelo (cuando return_token_type_ids=True o si “entity_token_type_ids” está en self.model_input_names).

    ¿Qué son los IDs de tipo de token?

  • entity_attention_mask — Lista de índices que especifica a qué entidades debe prestar atención el modelo (cuando return_attention_mask=True o si “entity_attention_mask” está en self.model_input_names).

    ¿Qué son las máscaras de atención?

  • entity_start_positions — Lista de las posiciones de inicio de las entidades en la secuencia de tokens de palabras (cuando task="entity_span_classification").

  • entity_end_positions — Lista de las posiciones finales de las entidades en la secuencia de tokens de palabras (cuando task="entity_span_classification").

  • overflowing_tokens — Lista de secuencias de tokens que exceden el límite (cuando se especifica un max_length y return_overflowing_tokens=True).

  • num_truncated_tokens — Número de tokens truncados (cuando se especifica un max_length y return_overflowing_tokens=True).

  • special_tokens_mask — Lista de 0 y 1, donde 1 especifica los tokens especiales añadidos y 0 especifica los tokens regulares de la secuencia (cuando add_special_tokens=True y return_special_tokens_mask=True).

  • length — La longitud de las entradas (cuando return_length=True)

add_special_tokens (bool, opcional, valor predeterminado True): Indica si se deben o no añadir tokens especiales al codificar las secuencias. Esto utilizará la función subyacente PretrainedTokenizerBase.build_inputs_with_special_tokens, que define qué tokens se añaden automáticamente a los ids de entrada. Esto es útil si se desea añadir tokens bos o eos automáticamente. padding (bool, str o PaddingStrategy, opcional, valor predeterminado False): Activa y controla el relleno. Acepta los siguientes valores:

  • True o 'longest': Rellena hasta la secuencia más larga del lote (o no aplica relleno si solo se proporciona una secuencia).

  • 'max_length': Rellena hasta una longitud máxima especificada con el argumento max_length o hasta la longitud de entrada máxima aceptable para el modelo si no se proporciona dicho argumento.

  • False o 'do_not_pad' (predeterminado): Sin relleno (es decir, puede generar un lote con secuencias de diferentes longitudes). truncation (bool, str o TruncationStrategy, opcional, predeterminado en False): Activa y controla la truncación. Acepta los siguientes valores:

  • True o 'longest_first': Trunca hasta una longitud máxima especificada con el argumento max_length o hasta la longitud de entrada máxima aceptable para el modelo si no se proporciona dicho argumento. Esto truncará token a token, eliminando un token de la secuencia más larga de la pareja si se proporciona una pareja de secuencias (o un lote de parejas).

  • 'only_first': Trunca a una longitud máxima especificada con el argumento max_length o a la longitud de entrada máxima aceptable para el modelo si no se proporciona dicho argumento. Esto solo truncará la primera secuencia de un par si se proporciona un par de secuencias (o un lote de pares).

  • 'only_second': Trunca a una longitud máxima especificada con el argumento max_length o a la longitud de entrada máxima aceptable para el modelo si no se proporciona dicho argumento. Esto solo truncará la segunda secuencia de un par si se proporciona un par de secuencias (o un lote de pares).

  • False o 'do_not_truncate' (predeterminado): sin truncamiento (es decir, se puede generar un lote con longitudes de secuencia superiores al tamaño máximo de entrada admisible por el modelo). max_length (int, opcional): Controla la longitud máxima que debe utilizar uno de los parámetros de truncamiento/relleno.

Si se deja sin establecer o se establece en None, se utilizará la longitud máxima predefinida del modelo si uno de los parámetros de truncamiento/relleno requiere una longitud máxima. Si el modelo no tiene una longitud de entrada máxima específica (como XLNet), el truncamiento/relleno a una longitud máxima se desactivará. stride (int, opcional, valor predeterminado 0): Si se establece en un número junto con max_length, los tokens sobrantes devueltos cuando return_overflowing_tokens=True contendrán algunos tokens del final de la secuencia truncada devuelta para proporcionar cierta superposición entre las secuencias truncadas y las sobrantes. El valor de este argumento define el número de tokens superpuestos. is_split_into_words (bool, opcional, valor predeterminado False): Indica si la entrada ya está pre-tokenizada (p. ej., dividida en palabras). Si se establece en True, el tokenizador asume que la entrada ya está dividida en palabras (por ejemplo, dividiéndola por espacios en blanco) y la tokenizará. Esto es útil para NER o clasificación de tokens. pad_to_multiple_of (int, opcional): Si se establece, rellenará la secuencia hasta un múltiplo del valor proporcionado. Requiere que padding esté activado. Esto es especialmente útil para habilitar el uso de Tensor Cores en hardware de NVIDIA con capacidad de cálculo >= 7.5 (Volta). padding_side (str, opcional): El lado en el que el modelo debe tener relleno aplicado. Debe seleccionarse entre [‘right’, ‘left’]. El valor predeterminado se elige del atributo de clase con el mismo nombre. return_tensors (str o TensorType, opcional): Si se establece, devolverá tensores en lugar de una lista de enteros de python. Los valores aceptables son:

  • 'pt': Devuelve objetos torch.Tensor de PyTorch.
  • 'np': Devuelve objetos Numpy np.ndarray.

return_token_type_ids (bool, opcional): Si se deben devolver los IDs de tipo de token. Si se deja en el valor predeterminado, se devolverán los IDs de tipo de token según el valor predeterminado del tokenizador específico, definido por el atributo return_outputs.

¿Qué son los IDs de tipo de token? return_attention_mask (bool, opcional): Indica si se debe devolver la máscara de atención. Si se deja en el valor predeterminado, se devolverá la máscara de atención según el valor predeterminado del tokenizador específico, definido por el atributo return_outputs.

¿Qué son las máscaras de atención? return_overflowing_tokens (bool, opcional, valor predeterminado False): Indica si se deben devolver las secuencias de tokens que exceden el límite. Si se proporciona un par de secuencias de ids de entrada (o un lote de pares) con truncation_strategy = longest_first o True, se genera un error en lugar de devolver los tokens que exceden el límite. return_special_tokens_mask (bool, opcional, valor predeterminado False): Indica si se debe devolver la información de la máscara de tokens especiales. return_offsets_mapping (bool, opcional, valor predeterminado False): Indica si se debe devolver (char_start, char_end) para cada token.

Esto solo está disponible en los tokenizadores rápidos que heredan de PreTrainedTokenizerFast; si se utiliza el tokenizador de Python, este método lanzará NotImplementedError. return_length (bool, opcional, valor predeterminado False): Indica si se deben devolver las longitudes de las entradas codificadas. verbose (bool, opcional, valor predeterminado True): Indica si se debe imprimir más información y advertencias. **kwargs: se pasan al método self.tokenize()

save_vocabulary

< >

( save_directory: strfilename_prefix: str | None = None )

Guarde solo el archivo de vocabulario de entidades. El archivo tokenizer.json se guarda mediante el TokenizersBackend padre.

Update on GitHub