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.2).
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 2021-10-15 et ajouté à Hugging Face Transformers le 2021-12-07.

mLUKE

Aperçu

Le modèle mLUKE a été proposé dans mLUKE: The Power of Entity Representations in Multilingual Pretrained Language Models par Ryokan Ri, Ikuya Yamada et Yoshimasa Tsuruoka. Il s’agit d’une extension multilingue du modèle LUKE entraînée sur la base de XLM-RoBERTa.

Il est basé sur XLM-RoBERTa et ajoute des embeddings d'entités, ce qui aide à améliorer les performances sur diverses tâches en aval impliquant le raisonnement sur des entités, telles que la reconnaissance d'entités nommées, la réponse à des questions extractives, la classification de relations et la complétion de connaissances de type cloze.

L'abstract de l'article est le suivant :

Des études récentes ont montré que les modèles de langage multilingues pré-entraînés peuvent être efficacement améliorés grâce à des informations d’alignement interlinguistique issues des entités de Wikipédia. Cependant, les méthodes existantes n’exploitent les informations d’entités que lors de la pré-entraînement et n’utilisent pas explicitement les entités dans les tâches en aval. Dans cette étude, nous explorons l’efficacité de l’utilisation des représentations d’entités pour les tâches interlinguistiques en aval. Nous entraînons un modèle de langage multilingue couvrant 24 langues avec des représentations d’entités et montrons que le modèle surpasse de manière constante les modèles pré-entraînés basés sur les mots dans diverses tâches de transfert interlinguistique. Nous analysons également le modèle et l’insight clé est que l’intégration des représentations d’entités dans l’entrée nous permet d’extraire des caractéristiques plus indépendantes de la langue. Nous évaluons également le modèle sur une tâche de prompt multilingue de type cloze avec le jeu de données mLAMA. Nous montrons qu’un prompt basé sur les entités suscite plus souvent des connaissances factuelles correctes que l’utilisation de représentations de mots uniquement.

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

Conseils d'utilisation

On peut directement insérer les poids de mLUKE dans un modèle LUKE, comme suit :

from transformers import LukeModel


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

Notez que mLUKE possède son propre tokenizer, MLukeTokenizer. Vous pouvez l'initialiser comme suit :

from transformers import MLukeTokenizer


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

L’architecture de mLUKE étant équivalente à celle de LUKE, on peut se référer à la page de documentation de LUKE pour tous les conseils, exemples de code et notebooks.

MLukeTokenizer

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

Paramètres

  • vocab_file (str) — Chemin vers le fichier de vocabulaire.
  • entity_vocab_file (str) — Chemin vers le fichier de vocabulaire des entités.
  • bos_token (str, facultatif, défaut "<s>") — Le jeton de début de séquence utilisé lors de la préformation. Peut être utilisé comme jeton de classifieur de séquence.

    Lors de la construction d'une séquence à l'aide de jetons spéciaux, ce n'est pas ce jeton qui est utilisé pour le début de la séquence. Le jeton utilisé est cls_token.

  • eos_token (str, facultatif, défaut : "</s>") — Le jeton de fin de séquence. Lors de la construction d'une séquence à l'aide de jetons spéciaux, ce n'est pas le jeton utilisé pour la fin de séquence. Le jeton utilisé est sep_token.

    Lors de la construction d'une séquence à l'aide de jetons spéciaux, ce n'est pas ce jeton qui est utilisé pour la fin de séquence. Le jeton utilisé est le sep_token.

  • sep_token (str, facultatif, par défaut "</s>") — Le jeton séparateur, utilisé lors de la construction d'une séquence à partir de plusieurs séquences, par exemple deux séquences pour la classification de séquences ou un texte et une question pour le question answering. Il est également utilisé comme dernier jeton d'une séquence construite avec des jetons spéciaux.
  • cls_token (str, facultatif, par défaut "<s>") — Le jeton de classification utilisé lors de la classification de séquence (classification de la séquence entière plutôt que la classification par jeton). C'est le premier jeton de la séquence lorsqu'elle est construite avec des jetons spéciaux.
  • unk_token (str, facultatif, par défaut "<unk>") — Le jeton inconnu. Un jeton qui n'est pas dans le vocabulaire ne peut pas être converti en identifiant et est remplacé par ce jeton.
  • pad_token (str, facultatif, par défaut "<pad>") — Le jeton utilisé pour le bourrage, par exemple lors du regroupement de séquences de longueurs différentes.
  • mask_token (str, facultatif, par défaut "<mask>") — Le jeton utilisé pour masquer les valeurs. C'est le jeton utilisé lors de l'entraînement de ce modèle avec le modélisation de langage masquée. C'est le jeton que le modèle cherchera à prédire.
  • task (str, facultatif) — Tâche pour laquelle vous souhaitez préparer les séquences. L’une des valeurs "entity_classification", "entity_pair_classification" ou "entity_span_classification". Si vous spécifiez cet argument, la séquence d’entités est automatiquement créée à partir de l’entité ou des entités fournies.
  • max_entity_length (int, facultatif, valeur par défaut 32) — La longueur maximale de entity_ids.
  • max_mention_length (int, facultatif, valeur par défaut 30) — Le nombre maximal de jetons à l'intérieur d'une entité.
  • entity_1_token (str, facultatif, par défaut <ent>) — Le jeton spécial utilisé pour représenter une entité dans une séquence de jetons de mots. Ce jeton n’est utilisé que lorsque task est défini sur "entity_classification" ou "entity_pair_classification".
  • entity_2_token (str, facultatif, par défaut <ent2>) — Le jeton spécial utilisé pour représenter une entité dans une séquence de jetons de mots. Ce jeton n’est utilisé que lorsque task est défini sur "entity_pair_classification".
  • additional_special_tokens (list[str], facultatif, par défaut ["<s>NOTUSED", "</s>NOTUSED"]) — Jetons spéciaux supplémentaires utilisés par le tokeniseur.
  • sp_model_kwargs (dict, facultatif) — Sera transmis à la méthode SentencePieceProcessor.__init__() . Le wrapper Python de SentencePiece peut être utilisé, entre autres, pour définir :
    • enable_sampling : Active la régularisation des sous-mots.

    • nbest_size : Paramètres d'échantillonnage pour les unigrammes. Invalide pour BPE-Dropout.

      • nbest_size = {0,1} : Aucun échantillonnage n'est effectué.
      • nbest_size > 1 : échantillonne parmi les résultats de nbest_size.
      • nbest_size < 0 : suppose que nbest_size est infini et échantillonne à partir de toutes les hypothèses (lattice) en utilisant l'algorithme de filtrage avant et d'échantillonnage arrière.
    • alpha : Paramètre de lissage pour l'échantillonnage des unigrammes et probabilité de suppression pour les opérations de fusion dans le cas du BPE-dropout.

  • sp_model (SentencePieceProcessor) — Le processeur SentencePiece utilisé pour chaque conversion (chaîne, jetons et identifiants).

Adapté de XLMRobertaTokenizer et LukeTokenizer. Basé sur SentencePiece.

Ce tokenizer hérite de PreTrainedTokenizer, qui contient la plupart des méthodes principales. Les utilisateurs doivent se référer à cette superclasse pour plus d'informations sur ces méthodes.

__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

Retourne

BatchEncoding

Un BatchEncoding avec les champs suivants :

  • input_ids — Liste des identifiants de jetons à fournir à un modèle.

    Qu'est-ce que les identifiants d'entrée ?

  • token_type_ids — Liste des identifiants de type de jeton à fournir à un modèle (lorsque return_token_type_ids=True ou si “token_type_ids” est présent dans self.model_input_names).

    Qu'est-ce que les identifiants de type de jeton ?

  • attention_mask — Liste d’indices spécifiant les jetons auxquels le modèle doit prêter attention (lorsque return_attention_mask=True ou si “attention_mask” est présent dans self.model_input_names).

    Qu'est-ce que les masques d'attention ?

  • entity_ids — Liste des identifiants d'entités à fournir à un modèle.

    Qu'est-ce que les identifiants d'entrée ?

  • entity_position_ids — Liste des positions des entités dans la séquence d'entrée à fournir au modèle.

  • entity_token_type_ids — Liste des identifiants de type d’entité des jetons à fournir au modèle (lorsque return_token_type_ids=True ou si “entity_token_type_ids” est présent dans self.model_input_names).

    Qu'est-ce que les identifiants de type de jeton ?

  • entity_attention_mask — Liste d’indices spécifiant les entités auxquelles le modèle doit prêter attention (lorsque return_attention_mask=True ou si “entity_attention_mask” est présent dans self.model_input_names).

    Qu'est-ce que les masques d'attention ?

  • entity_start_positions — Liste des positions de début des entités dans la séquence de jetons de mots (lorsque task="entity_span_classification").

  • entity_end_positions — Liste des positions de fin des entités dans la séquence de jetons de mots (lorsque task="entity_span_classification").

  • overflowing_tokens — Liste des séquences de jetons en dépassement (lorsqu'une max_length est spécifiée et return_overflowing_tokens=True).

  • num_truncated_tokens — Nombre de jetons tronqués (lorsqu'une max_length est spécifiée et return_overflowing_tokens=True).

  • special_tokens_mask — Liste de 0 et de 1, où 1 indique les jetons spéciaux ajoutés et 0 indique les jetons de séquence réguliers (lorsque add_special_tokens=True et return_special_tokens_mask=True).

  • length — La longueur des entrées (lorsque return_length=True)

add_special_tokens (bool, facultatif, par défaut True) : Indique s'il faut ajouter des jetons spéciaux lors de l'encodage des séquences. Cela utilise la fonction sous-jacente PretrainedTokenizerBase.build_inputs_with_special_tokens, qui définit les jetons ajoutés automatiquement aux identifiants d'entrée. C'est utile si vous souhaitez ajouter automatiquement des jetons bos ou eos. padding (bool, str ou PaddingStrategy, facultatif, par défaut False) : Active et contrôle le bourrage. Accepte les valeurs suivantes :

  • True ou 'longest' : Ajuster à la séquence la plus longue du lot (ou aucun ajustement si une seule séquence est fournie).

  • 'max_length' : Remplir jusqu'à une longueur maximale spécifiée par l'argument max_length ou jusqu'à la longueur d'entrée maximale acceptable pour le modèle si cet argument n'est pas fourni.

  • False ou 'do_not_pad' (par défaut) : aucun bourrage (c.-à-d. peut produire un lot avec des séquences de longueurs différentes). truncation (bool, str ou TruncationStrategy, facultatif, par défaut False) : Active et contrôle la troncature. Accepte les valeurs suivantes :

  • True ou 'longest_first' : Tronquer à une longueur maximale spécifiée avec l’argument max_length ou à la longueur d’entrée maximale acceptable pour le modèle si cet argument n’est pas fourni. Cela tronquera jeton par jeton, en retirant un jeton de la séquence la plus longue du couple si un couple de séquences (ou un lot de couples) est fourni.

  • 'only_first' : Tronque à une longueur maximale spécifiée avec l'argument max_length ou à la longueur d'entrée maximale acceptable pour le modèle si cet argument n'est pas fourni. Cela ne tronquera que la première séquence d'une paire si une paire de séquences (ou un lot de paires) est fournie.

  • 'only_second' : Tronque à une longueur maximale spécifiée avec l'argument max_length ou à la longueur d'entrée maximale acceptable pour le modèle si cet argument n'est pas fourni. Cela ne tronquera que la deuxième séquence d'une paire si une paire de séquences (ou un lot de paires) est fournie.

  • False ou 'do_not_truncate' (par défaut) : aucune troncature (c’est-à-dire, peut produire un lot avec des longueurs de séquences supérieures à la taille d’entrée maximale admissible par le modèle). max_length (int, facultatif) : Contrôle la longueur maximale à utiliser par l’un des paramètres de troncature/remplissage.

Si non défini ou défini sur None, la longueur maximale prédéfinie du modèle sera utilisée si l'une des paramètres de troncature/remplissage en exige une. Si le modèle n'a pas de longueur d'entrée maximale spécifique (comme XLNet), la troncature/le remplissage à une longueur maximale sera désactivé. stride (int, facultatif, valeur par défaut 0) : Si défini sur un nombre avec max_length, les jetons en dépassement renvoyés lorsque return_overflowing_tokens=True contiendront certains jetons de la fin de la séquence tronquée renvoyée afin de fournir un chevauchement entre les séquences tronquées et en dépassement. La valeur de cet argument définit le nombre de jetons en chevauchement. is_split_into_words (bool, facultatif, valeur par défaut False) : Indique si l'entrée est déjà pré-tokenisée (par exemple, découpée en mots). Si défini sur True, le tokeniseur suppose que l'entrée est déjà découpée en mots (par exemple, en la séparant sur les espaces) qu'il tokenisera. Cela est utile pour la NER ou la classification de jetons. pad_to_multiple_of (int, facultatif) : Si défini, remplit la séquence jusqu'à un multiple de la valeur fournie. Nécessite l'activation de padding. Cela est particulièrement utile pour permettre l'utilisation des Tensor Cores sur le matériel NVIDIA avec une capacité de calcul >= 7.5 (Volta). padding_side (str, facultatif) : Le côté sur lequel le modèle doit avoir le remplissage appliqué. Doit être sélectionné entre ['right', 'left']. La valeur par défaut est choisie à partir de l'attribut de classe du même nom. return_tensors (str ou TensorType, facultatif) : Si défini, renvoie des tenseurs au lieu d'une liste d'entiers python. Les valeurs acceptables sont :

  • 'pt' : Renvoie des objets torch.Tensor de PyTorch.
  • 'np' : Renvoie des objets Numpy np.ndarray.

return_token_type_ids (bool, facultatif) : Indique s'il faut retourner les identifiants de type de jeton. Si la valeur par défaut est conservée, les identifiants de type de jeton seront retournés selon la valeur par défaut du tokeniseur spécifique, définie par l'attribut return_outputs.

Qu’est-ce que les identifiants de type de jeton ? return_attention_mask (bool, facultatif) : Indique s’il faut retourner le masque d’attention. Si la valeur par défaut est conservée, le masque d’attention est retourné selon la valeur par défaut du tokeniseur spécifique, définie par l’attribut return_outputs.

Qu'est-ce que les masques d'attention ? return_overflowing_tokens (bool, facultatif, par défaut False) : Indique s'il faut ou non renvoyer les séquences de jetons en dépassement. Si une paire de séquences d'identifiants d'entrée (ou un lot de paires) est fournie avec truncation_strategy = longest_first ou True, une erreur est levée au lieu de renvoyer les jetons en dépassement. return_special_tokens_mask (bool, facultatif, par défaut False) : Indique s'il faut ou non renvoyer les informations du masque des jetons spéciaux. return_offsets_mapping (bool, facultatif, par défaut False) : Indique s'il faut ou non renvoyer (char_start, char_end) pour chaque jeton.

Ceci n’est disponible que sur les tokenizers rapides héritant de PreTrainedTokenizerFast ; si vous utilisez le tokenizer Python, cette méthode lève NotImplementedError. return_length (bool, facultatif, par défaut False) : Indique s’il faut ou non retourner les longueurs des entrées encodées. verbose (bool, facultatif, par défaut True) : Indique s’il faut ou non afficher plus d’informations et d’avertissements. **kwargs : transmis à la méthode self.tokenize()

save_vocabulary

< >

( save_directory: strfilename_prefix: str | None = None )

Enregistrez uniquement le fichier de vocabulaire des entités. Le fichier tokenizer.json est enregistré par le parent TokenizersBackend.

Update on GitHub