Transformers documentation

Tokenizer

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

Tokenizer

Un tokenizer est chargé de préparer les entrées pour un modèle. La bibliothèque contient des tokenizers pour tous les modèles. La plupart des tokenizers sont disponibles en deux versions : une implémentation Python complète et une implémentation « Fast » basée sur la bibliothèque Rust 🤗 Tokenizers. Les implémentations « Fast » permettent :

  1. un gain de vitesse significatif, en particulier lors de la tokenisation par lots et
  2. méthodes supplémentaires pour effectuer la correspondance entre la chaîne de caractères d'origine (caractères et mots) et l'espace des jetons (par exemple, obtenir l'index du jeton contenant un caractère donné ou la plage de caractères correspondant à un jeton donné).

Les classes de base PreTrainedTokenizer et PreTrainedTokenizerFast implémentent les méthodes communes pour encoder les entrées de type chaîne en entrées de modèle (voir ci-dessous) et pour instancier/enregistrer des tokenizers Python et « Fast », que ce soit à partir d’un fichier ou d’un répertoire local, ou à partir d’un tokenizer pré-entraîné fourni par la bibliothèque (téléchargé depuis le dépôt AWS S3 de HuggingFace). Les deux reposent sur PreTrainedTokenizerBase, qui contient les méthodes communes.

PreTrainedTokenizer et PreTrainedTokenizerFast implémentent ainsi les principales méthodes pour utiliser tous les tokenizers :

  • La tokenisation (découpage des chaînes en sous-mots), la conversion des chaînes de jetons en identifiants et inversement, ainsi que l’encodage/décodage (c’est-à-dire la tokenisation et la conversion en entiers).
  • Ajout de nouveaux jetons au vocabulaire de manière indépendante de la structure sous-jacente (BPE, SentencePiece…).
  • Gérer les jetons spéciaux (comme mask, beginning-of-sentence, etc.) : les ajouter, leur attribuer des attributs dans le tokenizer pour un accès facile et s'assurer qu'ils ne sont pas fractionnés lors de la tokenization.

BatchEncoding contient la sortie des méthodes d’encodage de PreTrainedTokenizerBase (__call__, encode_plus et batch_encode_plus) et est dérivée d’un dictionnaire Python. Lorsque le tokenizer est un tokenizer en Python pur, cette classe se comporte comme un dictionnaire Python standard et contient les différentes entrées du modèle calculées par ces méthodes (input_ids, attention_mask…). Lorsque le tokenizer est un tokenizer « Fast » (c’est-à-dire basé sur la tokenizers library de HuggingFace), cette classe fournit en outre plusieurs méthodes avancées d’alignement qui permettent de mapper entre la chaîne de caractères d’origine (caractères et mots) et l’espace des jetons (par exemple, obtenir l’index du jeton contenant un caractère donné ou l’étendue de caractères correspondant à un jeton donné).

Tokeniseur multimodal

En dehors de cela, chaque tokenizer peut être un tokenizer « multimodal », ce qui signifie que le tokenizer conservera tous les jetons spéciaux pertinents en tant qu'attributs du tokenizer pour un accès plus facile. Par exemple, si le tokenizer est chargé à partir d'un modèle vision-langage comme LLaVA, vous pourrez accéder à tokenizer.image_token_id pour obtenir le jeton d'image spécial utilisé comme espace réservé.

Pour activer des jetons spéciaux supplémentaires pour tout type de tokenizer, vous devez ajouter les lignes suivantes et enregistrer le tokenizer. Les jetons spéciaux supplémentaires n'ont pas à être liés à une modalité et peuvent être tout ce dont le modèle a souvent besoin. Dans le code ci-dessous, le tokenizer situé dans output_dir aura un accès direct à trois jetons spéciaux supplémentaires.

vision_tokenizer = AutoTokenizer.from_pretrained(
    "llava-hf/llava-1.5-7b-hf",
    extra_special_tokens={"image_token": "<image>", "boi_token": "<image_start>", "eoi_token": "<image_end>"}
)
print(vision_tokenizer.image_token, vision_tokenizer.image_token_id)
("<image>", 32000)

PreTrainedTokenizer

classe transformers.PythonBackend

< >

( **kwargs )

Paramètres

  • model_max_length (int, facultatif) — La longueur maximale (en nombre de jetons) des entrées pour le modèle transformer. Lorsque le tokeniseur est chargé avec from_pretrained(), cette valeur est définie sur la valeur stockée pour le modèle associé dans max_model_input_sizes (voir ci-dessus). Si aucune valeur n'est fournie, la valeur par défaut est VERY_LARGE_INTEGER (int(1e30)).
  • padding_side (str, facultatif) — Le côté sur lequel le modèle doit appliquer le bourrage. Doit être choisi parmi [‘right’, ‘left’]. La valeur par défaut est choisie à partir de l’attribut de classe du même nom.
  • truncation_side (str, facultatif) — Le côté sur lequel le modèle doit appliquer la troncature. Doit être sélectionné parmi [‘right’, ‘left’]. La valeur par défaut est choisie à partir de l’attribut de classe du même nom.
  • chat_template (str, facultatif) — Une chaîne de modèle Jinja utilisée pour formater les listes de messages de chat. Voir https://huggingface.co/docs/transformers/chat_templating pour une description complète.
  • model_input_names (list[string], facultatif) — La liste des entrées acceptées par le passage avant du modèle (comme "token_type_ids" ou "attention_mask"). La valeur par défaut est choisie à partir de l'attribut de classe du même nom.
  • bos_token (str ou tokenizers.AddedToken, facultatif) — Un jeton spécial représentant le début d'une phrase.
  • eos_token (str ou tokenizers.AddedToken, facultatif) — Un jeton spécial représentant la fin d'une phrase.
  • unk_token (str ou tokenizers.AddedToken, facultatif) — Un jeton spécial représentant un jeton hors vocabulaire.
  • sep_token (str ou tokenizers.AddedToken, facultatif) — Un jeton spécial séparant deux phrases différentes dans la même entrée (utilisé par BERT, par exemple).
  • pad_token (str ou tokenizers.AddedToken, facultatif) — Un jeton spécial utilisé pour uniformiser la taille des tableaux de jetons dans le but de créer des lots. Il sera ensuite ignoré par les mécanismes d'attention ou le calcul de la perte.
  • cls_token (str ou tokenizers.AddedToken, facultatif) — Un jeton spécial représentant la classe de l’entrée (utilisé par BERT, par exemple).
  • mask_token (str ou tokenizers.AddedToken, facultatif) — Un jeton spécial représentant un jeton masqué (utilisé par les objectifs de pré-entraînement de modélisation de langage masqué, comme BERT). Sera associé à self.mask_token et self.mask_token_id.
  • extra_special_tokens (liste de str ou tokenizers.AddedToken, facultatif) — Une liste de jetons spéciaux supplémentaires spécifiques au modèle. Ajoutez-les ici pour vous assurer qu’ils sont ignorés lors du décodage lorsque skip_special_tokens est défini sur True. S’ils ne font pas partie du vocabulaire, ils seront ajoutés à la fin du vocabulaire.
  • split_special_tokens (bool, facultatif, par défaut False) — Indique si les jetons spéciaux doivent être fractionnés lors du processus de tokenisation. La valeur transmise affecte l'état interne du tokenizer. Le comportement par défaut est de ne pas fractionner les jetons spéciaux. Cela signifie que si <s> est le bos_token, alors tokenizer.tokenize("<s>") = ['<s>]. Sinon, si split_special_tokens=True, alors tokenizer.tokenize("<s>") renverra ['<','s', '>'].

Classe de base pour tous les tokeniseurs lents.

Hérite de PreTrainedTokenizerBase.

Gère toutes les méthodes partagées pour la tokenisation et les jetons spéciaux, ainsi que les méthodes de téléchargement, de mise en cache et de chargement des tokeniseurs pré-entraînés, et l’ajout de jetons au vocabulaire.

Cette classe contient également les jetons ajoutés de manière unifiée au-dessus de tous les tokenizers, afin de ne pas avoir à gérer les méthodes spécifiques d’augmentation du vocabulaire des différentes structures de dictionnaire sous-jacentes (BPE, sentencepiece…).

Attributs de classe (réécrits par les classes dérivées)

  • vocab_files_names (dict[str, str]) — Un dictionnaire dont les clés sont les noms des mots-clés de __init__ de chaque fichier de vocabulaire requis par le modèle, et dont les valeurs associées sont les noms de fichiers pour enregistrer le fichier associé (chaîne de caractères).
  • pretrained_vocab_files_map (dict[str, dict[str, str]]) — Un dictionnaire de dictionnaires, dont les clés de haut niveau sont les noms de mots-clés __init__ de chaque fichier de vocabulaire requis par le modèle, et les clés de bas niveau sont les short-cut-names des modèles pré-entraînés, avec, en valeurs associées, l'url du fichier de vocabulaire pré-entraîné correspondant.
  • model_input_names (list[str]) — Une liste des entrées attendues lors de la passe avant du modèle.
  • padding_side (str) — La valeur par défaut pour le côté sur lequel le modèle doit appliquer le bourrage. Doit être 'right' ou 'left'.
  • truncation_side (str) — La valeur par défaut pour le côté sur lequel le modèle doit appliquer la troncature. Doit être 'right' ou 'left'.

__call__

< >

( text: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_pair: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_target: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_pair_target: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Noneadd_special_tokens: bool = Truepadding: bool | str | PaddingStrategy = Falsetruncation: bool | str | TruncationStrategy | None = Nonemax_length: int | None = Nonestride: int = 0is_split_into_words: bool = Falsepad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_tensors: str | 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 = Truetokenizer_kwargs: dict[str, Any] | None = None**kwargs ) → BatchEncoding

Paramètres

  • text (str, list[str], list[list[str]], facultatif) — La séquence ou le lot de séquences à encoder. Chaque séquence peut être une chaîne de caractères ou une liste de chaînes de caractères (chaînes pré-tokenisées). Si les séquences sont fournies sous forme de liste de chaînes de caractères (pré-tokenisées), vous devez définir is_split_into_words=True (pour lever l’ambiguïté avec un lot de séquences).
  • text_pair (str, list[str], list[list[str]], facultatif) — La séquence ou le lot de séquences à encoder. Chaque séquence peut être une chaîne de caractères ou une liste de chaînes de caractères (chaînes pré-tokenisées). Si les séquences sont fournies sous forme de liste de chaînes de caractères (pré-tokenisées), vous devez définir is_split_into_words=True (pour lever l’ambiguïté avec un lot de séquences).
  • text_target (str, list[str], list[list[str]], facultatif) — La séquence ou le lot de séquences à encoder en tant que textes cibles. Chaque séquence peut être une chaîne de caractères ou une liste de chaînes de caractères (chaîne pré-tokenisée). Si les séquences sont fournies sous forme de liste de chaînes de caractères (pré-tokenisées), vous devez définir is_split_into_words=True (pour lever l’ambiguïté avec un lot de séquences).
  • text_pair_target (str, list[str], list[list[str]], facultatif) — La séquence ou le lot de séquences à encoder en tant que textes cibles. Chaque séquence peut être une chaîne de caractères ou une liste de chaînes de caractères (chaîne pré-tokenisée). Si les séquences sont fournies sous forme de liste de chaînes de caractères (pré-tokenisées), vous devez définir is_split_into_words=True (pour lever l’ambiguïté avec un lot de séquences).
  • tokenizer_kwargs (dict[str, Any], facultatif) — Kwargs supplémentaires à passer au tokenizer. Ils seront fusionnés avec les paramètres explicites et les autres kwargs, les paramètres explicites ayant la priorité.
  • 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. Cela est utile si vous souhaitez ajouter automatiquement des jetons bos ou eos.
  • padding (bool, str ou PaddingStrategy, facultatif, défaut : False) — Active et contrôle le padding. 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 padding (c’est-à-dire, peut produire un lot avec des séquences de longueurs différentes).
  • truncation (bool, str ou TruncationStrategy, facultatif, 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'un des paramètres de troncature/remplissage exige une longueur maximale. 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 à 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 les séquences en dépassement. La valeur de cet argument définit le nombre de jetons en chevauchement.
  • is_split_into_words (bool, facultatif, 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 à 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) et la tokenise. Cela est utile pour la NER ou la classification de tokens.
  • pad_to_multiple_of (int, facultatif) — Si défini, la séquence est rembourrée 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 appliquer le bourrage. Doit être choisi parmi [‘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 acceptées 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 renvoyer les identifiants de type de jeton. Si la valeur par défaut est conservée, les identifiants de type de jeton sont renvoyé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 tokenizer 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 retourner 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 retourner les jetons en dépassement.
  • return_special_tokens_mask (bool, facultatif, par défaut False) — Indique s'il faut ou non retourner les informations du masque des jetons spéciaux.
  • return_offsets_mapping (bool, facultatif, par défaut False) — Indique s'il faut renvoyer (char_start, char_end) pour chaque jeton.

    Cela 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 retourner les longueurs des entrées encodées.
  • verbose (bool, facultatif, par défaut True) — Indique s'il faut afficher plus d'informations et d'avertissements.
  • **kwargs — transmis à la méthode self.tokenize()

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 ?

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

Méthode principale pour tokeniser et préparer pour le modèle une ou plusieurs séquences ou une ou plusieurs paires de séquences.

add_tokens

< >

( new_tokens: str | AddedToken | Sequence[str | AddedToken]special_tokens: bool = False ) → int

Paramètres

  • new_tokens (str, tokenizers.AddedToken ou une séquence de str ou tokenizers.AddedToken) — Les jetons ne sont ajoutés que s’ils ne figurent pas déjà dans le vocabulaire. tokenizers.AddedToken encapsule un jeton sous forme de chaîne de caractères afin de permettre de personnaliser son comportement : si ce jeton doit correspondre uniquement à un mot unique, s’il doit supprimer toutes les éventuelles espaces blanches à gauche, s’il doit supprimer toutes les éventuelles espaces blanches à droite, etc.
  • special_tokens (bool, facultatif, par défaut False) — Indique si le jeton est spécial. Cela modifie principalement le comportement de normalisation. Voir les détails de tokenizers.AddedToken dans la bibliothèque HuggingFace tokenizers.

Retourne

int

Nombre de jetons ajoutés au vocabulaire.

#TODO supprimer ceci d'ici ! PreTrainedTokenizerBase doit être agnostique vis-à-vis de AddedToken.

Ajoutez une liste de nouveaux jetons. Si les nouveaux jetons ne figurent pas dans le vocabulaire, ils sont ajoutés à la fin. Les jetons ajoutés et les jetons issus du vocabulaire de l’algorithme de tokenisation ne sont donc pas traités de la même manière.

Les tokenizers rapides avec un pré-tokenizer Metaspace utilisant prepend_scheme="always" (par ex. NLLB) ajoutent "▁" au texte qui suit un jeton ajouté. Après tokenizer.add_tokens(["abcd"]), "abcdgym" est tokenizé en ["abcd", "▁gym"] et décodé en "abcd gym". Si les jetons ajoutés peuvent apparaître à l'intérieur de mots, changez le pré-tokenizer

à prepend_scheme="first" pour que seul le début de l'entrée soit préfixé :

from tokenizers import pre_tokenizers

pre_tokenizer = tokenizer.backend_tokenizer.pre_tokenizer
tokenizer.backend_tokenizer.pre_tokenizer = pre_tokenizers.Metaspace(
    replacement=pre_tokenizer.replacement, prepend_scheme="first", split=pre_tokenizer.split
)

Exemples :

# Let's see how to increase the vocabulary of Bert model and tokenizer
tokenizer = BertTokenizerFast.from_pretrained("google-bert/bert-base-uncased")
model = BertModel.from_pretrained("google-bert/bert-base-uncased")

num_added_toks = tokenizer.add_tokens(["new_tok1", "my_new-tok2"])
print("We have added", num_added_toks, "tokens")
# Notice: resize_token_embeddings expect to receive the full size of the new vocabulary, i.e., the length of the tokenizer.
model.resize_token_embeddings(len(tokenizer))

add_special_tokens

< >

( special_tokens_dict: dict[str, str | AddedToken | Sequence[str | AddedToken]]replace_extra_special_tokens = True ) → int

Paramètres

  • special_tokens_dict (dictionnaire str vers str, tokenizers.AddedToken, ou Sequence[Union[str, AddedToken]]) — Les clés doivent figurer dans la liste des attributs spéciaux prédéfinis : [bos_token, eos_token, unk_token, sep_token, pad_token, cls_token, mask_token, extra_special_tokens].

    Les jetons ne sont ajoutés que s'ils ne figurent pas déjà dans le vocabulaire (test effectué en vérifiant si le tokenizer leur attribue l'index du unk_token).

  • replace_extra_special_tokens (bool, facultatif, valeur par défaut True) — Si True, la liste existante des jetons spéciaux supplémentaires sera remplacée par la liste fournie dans special_tokens_dict. Sinon, extra_special_tokens sera étendue. Dans le premier cas, les jetons ne seront PAS retirés du vocabulaire complet du tokenizer - ils ne sont simplement plus marqués comme jetons spéciaux. N’oubliez pas que cela n’affecte que les jetons ignorés lors du décodage, et non le added_tokens_encoder et le added_tokens_decoder. Cela signifie que les extra_special_tokens précédents restent des jetons ajoutés et ne seront pas fractionnés par le modèle.

Retourne

int

Nombre de jetons ajoutés au vocabulaire.

Ajoute un dictionnaire de jetons spéciaux (eos, pad, cls, etc.) à l’encodeur et les lie aux attributs de classe. Si les jetons spéciaux ne figurent PAS dans le vocabulaire, ils y sont ajoutés (indexés à partir du dernier index du vocabulaire actuel).

Lors de l’ajout de nouveaux jetons au vocabulaire, vous devez vous assurer de redimensionner également la matrice d’incorporation des jetons du modèle afin que sa matrice d’incorporation corresponde à celle du tokeniseur.

Pour ce faire, veuillez utiliser la méthode resize_token_embeddings().

L'utilisation de add_special_tokens garantit que vos jetons spéciaux peuvent être utilisés de plusieurs manières :

  • Les jetons spéciaux peuvent être ignorés lors du décodage en utilisant skip_special_tokens = True.
  • Les jetons spéciaux sont soigneusement gérés par le tokeniseur (ils ne sont jamais fractionnés), de manière similaire à AddedTokens.
  • Vous pouvez facilement faire référence aux jetons spéciaux en utilisant les attributs de la classe tokenizer tels que tokenizer.cls_token. Cela facilite le développement de scripts d'entraînement et de fine-tuning agnostiques du modèle.

Lorsque c’est possible, les jetons spéciaux sont déjà enregistrés pour les modèles préentraînés fournis (par exemple, cls_token de BertTokenizer est déjà enregistré comme '[CLS]' et celui de XLM est également enregistré comme '</s>').

Exemples :

# Let's see how to add a new classification token to GPT-2
tokenizer = GPT2Tokenizer.from_pretrained("openai-community/gpt2")
model = GPT2Model.from_pretrained("openai-community/gpt2")

special_tokens_dict = {"cls_token": "<CLS>"}

num_added_toks = tokenizer.add_special_tokens(special_tokens_dict)
print("We have added", num_added_toks, "tokens")
# Notice: resize_token_embeddings expect to receive the full size of the new vocabulary, i.e., the length of the tokenizer.
model.resize_token_embeddings(len(tokenizer))

assert tokenizer.cls_token == "<CLS>"

apply_chat_template

< >

( conversation: list[dict[str, str]] | list[list[dict[str, str]]]tools: list[dict | Callable] | None = Nonedocuments: list[dict[str, str]] | None = Nonechat_template: str | None = Noneadd_generation_prompt: bool = Falsecontinue_final_message: bool | str = Falsetokenize: bool = Truesanitize_control_tokens: bool = Falsepadding: bool | str | PaddingStrategy = Falsetruncation: bool = Falsemax_length: int | None = Nonereturn_tensors: str | TensorType | None = Nonereturn_dict: bool = Truereturn_assistant_tokens_mask: bool = Falsetokenizer_kwargs: dict[str, Any] | None = None**kwargs ) → Union[list[int], Dict]

Paramètres

  • conversation (Union[list[dict[str, str]], list[list[dict[str, str]]]]) — A list of dicts with “role” and “content” keys, representing the chat history so far.
  • tools (list[Union[Dict, Callable]], facultatif) — Une liste d’outils (fonctions appelables) qui seront accessibles au modèle. Si le modèle ne prend pas en charge l’appel de fonctions, cet argument n’aura aucun effet. Chaque outil doit être transmis sous forme de JSON Schema, indiquant le nom, la description et les types d’arguments de l’outil. Consultez notre guide d’utilisation des outils pour plus d’informations.
  • documents (list[dict[str, str]], facultatif) — Une liste de dictionnaires représentant des documents qui seront accessibles au modèle s'il effectue une génération augmentée par récupération (RAG). Si le modèle ne prend pas en charge le RAG, cet argument n'aura aucun effet. Nous recommandons que chaque document soit un dictionnaire contenant les clés « title » et « text ».
  • chat_template (str, facultatif) — Un modèle Jinja à utiliser pour cette conversion. Il n’est généralement pas nécessaire de passer quoi que ce soit à cet argument, car le modèle du modèle sera utilisé par défaut.
  • add_generation_prompt (bool, facultatif) — Si ce paramètre est défini, un prompt contenant le ou les jetons indiquant le début d'un message d'assistant sera ajouté à la sortie formatée. Cela est utile lorsque vous souhaitez générer une réponse à partir du modèle. Notez que cet argument sera transmis au modèle de chat, et il doit donc être pris en charge par le modèle pour que cet argument ait un effet.
  • continue_final_message (bool or str, facultatif) — Si ce paramètre est défini, la conversation sera formatée de manière à ce que le dernier message de la conversation soit ouvert, sans aucun jeton EOS. Le modèle poursuivra ce message au lieu d’en démarrer un nouveau. Cela permet de « préremplir » une partie de la réponse du modèle. Si une chaîne de caractères est transmise, elle sera utilisée comme clé pour le champ à poursuivre (par ex. « reasoning_content »). Ne peut pas être utilisé en même temps que add_generation_prompt.
  • tokenize (bool, par défaut True) — Indique s'il faut tokeniser la sortie. Si False, la sortie sera une chaîne de caractères.
  • sanitize_control_tokens (bool, par défaut False) — Si activé, les jetons de contrôle présents dans les messages, les outils ou les documents sont encodés comme du texte ordinaire, de sorte que seuls les jetons de contrôle écrits par le modèle de dialogue lui-même sont encodés en tant que jetons. Les jetons de contrôle sont les jetons spéciaux du tokeniseur, ainsi que les jetons ajoutés dans tokenizer.chat_control_tokens. Si cette variable n’est pas définie, les jetons de contrôle sont déduits des jetons ajoutés qui apparaissent dans le texte du modèle de dialogue et dans les littéraux de chaîne. Seuls les jetons de contrôle complets sont assainis ; ainsi, si le modèle de dialogue assemble des chaînes de l’entrée pour former des jetons de contrôle (comme '<|' + message['role'] + '|>'), ces chaînes doivent être validées séparément. Les clés de dictionnaire ne sont pas non plus assainies.
  • padding (bool, str ou PaddingStrategy, facultatif, défaut : False) — Sélectionne une stratégie pour mettre en place le padding des séquences renvoyées (selon le côté de padding et l'index de padding du modèle) parmi les options 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 padding (c’est-à-dire, peut produire un lot avec des séquences de longueurs différentes).
  • truncation (bool, par défaut False) — Indique s'il faut tronquer les séquences à la longueur maximale. N'a aucun effet si tokenize est False.
  • max_length (int, facultatif) — Longueur maximale (en jetons) à utiliser pour le bourrage ou la troncature. N’a aucun effet si tokenize est False. Si non spécifié, l’attribut max_length du tokeniseur sera utilisé par défaut.
  • return_tensors (str ou TensorType, facultatif) — Si défini, renvoie des tenseurs d'un framework particulier. N'a aucun effet si tokenize est False. Les valeurs acceptables sont :
    • 'pt' : Renvoie des objets torch.Tensor de PyTorch.
    • 'np' : Renvoie des objets NumPy np.ndarray.
  • return_dict (bool, par défaut True) — Indique s'il faut retourner un dictionnaire avec des sorties nommées. N'a aucun effet si tokenize est False.
  • tokenizer_kwargs (dict[str -- Any], facultatif) : Arguments supplémentaires à passer au tokenizer.
  • return_assistant_tokens_mask (bool, par défaut False) — Indique s'il faut retourner un masque des jetons générés par l'assistant. Pour les jetons générés par l'assistant, le masque contiendra 1. Pour les jetons utilisateur et système, le masque contiendra 0. Cette fonctionnalité n'est disponible que pour les modèles de discussion qui la prennent en charge via le mot-clé {% generation %}.
  • **kwargs — Kwargs supplémentaires à passer au moteur de rendu du modèle. Accessibles par le modèle de chat.

Retourne

Union[list[int], Dict]

Une liste d’identifiants de jetons représentant la conversation tokenisée jusqu’à présent, y compris les jetons de contrôle. Cette sortie est prête à être transmise au modèle, soit directement, soit via des méthodes telles que generate(). Si return_dict est défini, un dictionnaire de sorties du tokeniseur est renvoyé à la place.

Convertit une liste de dictionnaires avec les clés "role" et "content" en une liste d’identifiants de jetons. Cette méthode est destinée à l’utilisation avec des modèles de chat et lit l’attribut chat_template du tokeniseur pour déterminer le format et les jetons de contrôle à utiliser lors de la conversion.

batch_decode

< >

( sequences: list[int] | list[list[int]] | np.ndarray | torch.Tensorskip_special_tokens: bool = Falseclean_up_tokenization_spaces: bool | None = None**kwargs ) → list[str]

Paramètres

  • sequences (Union[list[int], list[list[int]], np.ndarray, torch.Tensor]) — Liste des identifiants d’entrée tokenisés. Peut être obtenue à l’aide de la méthode __call__.
  • skip_special_tokens (bool, facultatif, valeur par défaut False) — Indique s'il faut supprimer les jetons spéciaux lors du décodage.
  • clean_up_tokenization_spaces (bool, facultatif) — Indique s'il faut nettoyer les espaces de tokenisation. Si None, la valeur par défaut est self.clean_up_tokenization_spaces.
  • kwargs (arguments supplémentaires par mot-clé, facultatif) — Sera transmis à la méthode de décodage spécifique du modèle sous-jacent.

Retourne

list[str]

La liste des phrases décodées.

Convertir une liste de listes d'identifiants de jetons en une liste de chaînes en appelant decode.

Cette méthode est fournie pour la compatibilité ascendante. La méthode decode gère désormais nativement les entrées par lots, vous pouvez donc utiliser directement decode au lieu de batch_decode.

décoder

< >

( token_ids: int | list[int] | list[list[int]] | np.ndarray | torch.Tensorskip_special_tokens: bool = False**kwargs ) → Union[str, list[str]]

Paramètres

  • token_ids (Union[int, list[int], list[list[int]], np.ndarray, torch.Tensor]) — Une séquence unique ou un lot (liste de séquences) d’identifiants d’entrée tokenisés. Peut être obtenu à l’aide de la méthode __call__.
  • skip_special_tokens (bool, facultatif, valeur par défaut False) — Indique s'il faut supprimer les jetons spéciaux lors du décodage.
  • kwargs (arguments supplémentaires par mot-clé, facultatif) — Sera transmis à la méthode de décodage spécifique du modèle sous-jacent.

Retourne

Union[str, list[str]]

La chaîne décodée pour une séquence unique, ou une liste de chaînes décodées pour un lot de séquences.

Convertit une séquence d'identifiants en chaîne de caractères, ou une liste de séquences en liste de chaînes de caractères, en utilisant le tokenizer et le vocabulaire, avec des options pour supprimer les jetons spéciaux et nettoyer les espaces de tokenization.

Similaire à l'exécution de self.convert_tokens_to_string(self.convert_ids_to_tokens(token_ids)).

encode

< >

( text: TextInput | PreTokenizedInput | EncodedInputtext_pair: TextInput | PreTokenizedInput | EncodedInput | None = Noneadd_special_tokens: bool = Truepadding: bool | str | PaddingStrategy = Falsetruncation: bool | str | TruncationStrategy | None = Nonemax_length: int | None = Nonestride: int = 0padding_side: str | None = Nonereturn_tensors: str | TensorType | None = None**kwargs ) → list[int], torch.Tensor, or np.ndarray

Paramètres

  • text (str, list[str] ou list[int]) — La première séquence à encoder. Il peut s’agir d’une chaîne de caractères, d’une liste de chaînes (chaîne tokenisée à l’aide de la méthode tokenize) ou d’une liste d’entiers (identifiants de tokens d’une chaîne tokenisée à l’aide de la méthode convert_tokens_to_ids).
  • text_pair (str, list[str] ou list[int], facultatif) — Deuxième séquence facultative à encoder. Il peut s’agir d’une chaîne de caractères, d’une liste de chaînes (chaîne tokenisée à l’aide de la méthode tokenize) ou d’une liste d’entiers (identifiants de tokens d’une chaîne tokenisée à l’aide de la méthode convert_tokens_to_ids).
  • 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. Cela est utile si vous souhaitez ajouter automatiquement des jetons bos ou eos.
  • padding (bool, str ou PaddingStrategy, facultatif, défaut : False) — Active et contrôle le padding. 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 padding (c’est-à-dire, peut produire un lot avec des séquences de longueurs différentes).
  • truncation (bool, str ou TruncationStrategy, facultatif, 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'un des paramètres de troncature/remplissage exige une longueur maximale. 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 à 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 les séquences en dépassement. La valeur de cet argument définit le nombre de jetons en chevauchement.
  • is_split_into_words (bool, facultatif, 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 à 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) et la tokenise. Cela est utile pour la NER ou la classification de tokens.
  • pad_to_multiple_of (int, facultatif) — Si défini, la séquence est rembourrée 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 appliquer le bourrage. Doit être choisi parmi [‘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 acceptées sont :
    • 'pt' : Renvoie des objets torch.Tensor de PyTorch.
    • 'np' : Renvoie des objets Numpy np.ndarray.
  • **kwargs — Transmis à la méthode .tokenize().

Retourne

list[int], torch.Tensor ou np.ndarray

Les identifiants tokenisés du texte.

Convertit une chaîne de caractères en une séquence d'identifiants (entiers), en utilisant le tokenizer et le vocabulaire.

Identique à l'exécution de self.convert_tokens_to_ids(self.tokenize(text)).

push_to_hub

< >

( repo_id: strcommit_message: str | None = Nonecommit_description: str | None = Noneprivate: bool | None = Nonetoken: bool | str | None = Nonerevision: str | None = Nonecreate_pr: bool = Falsemax_shard_size: int | str | None = '50GB'tags: list[str] | None = None )

Paramètres

  • repo_id (str) — Le nom du dépôt vers lequel vous souhaitez pousser votre tokenizer. Il doit contenir le nom de votre organisation lors d’un push vers une organisation donnée.
  • commit_message (str, facultatif) — Message à committer lors de la poussée. La valeur par défaut est "Upload tokenizer".
  • commit_description (str, facultatif) — La description du commit qui sera créé
  • private (bool, facultatif) — Indique s'il faut rendre le dépôt privé. Si None (par défaut), le dépôt sera public sauf si le paramètre par défaut de l'organisation est privé. Cette valeur est ignorée si le dépôt existe déjà.
  • token (bool ou str, facultatif) — Le jeton à utiliser comme autorisation bearer HTTP pour les fichiers distants. Si True (par défaut), le jeton généré lors de l’exécution de hf auth login (stocké dans ~/.huggingface) sera utilisé.
  • revision (str, facultatif) — Branche vers laquelle pousser les fichiers téléversés.
  • create_pr (bool, facultatif, par défaut False) — Indique s'il faut créer une PR avec les fichiers téléversés ou effectuer un commit direct.
  • max_shard_size (int ou str, facultatif, par défaut "50GB") — Applicable uniquement aux modèles. La taille maximale d'un point de contrôle avant son fractionnement. Les points de contrôle fractionnés auront chacun une taille inférieure à cette valeur. S'il est exprimé sous forme de chaîne, il doit être composé de chiffres suivis d'une unité (comme "5MB").
  • tags (list[str], facultatif) — Liste des tags à pousser sur le Hub.

Téléversez les fichiers du tokenizer sur le 🤗 Model Hub.

Exemples :

from transformers import AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("google-bert/bert-base-cased")

# Push the tokenizer to your namespace with the name "my-finetuned-bert".
tokenizer.push_to_hub("my-finetuned-bert")

# Push the tokenizer to an organization with the name "my-finetuned-bert".
tokenizer.push_to_hub("huggingface/my-finetuned-bert")

build_inputs_with_special_tokens

< >

( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]

Paramètres

  • token_ids_0 (list[int]) — Liste des ID auxquels les jetons spéciaux seront ajoutés.
  • token_ids_1 (list[int], facultatif) — Deuxième liste d'identifiants facultative pour les paires de séquences.

Retourne

list[int]

Liste des identifiants d'entrée avec les jetons spéciaux appropriés.

Construire les entrées du modèle à partir d'une séquence ou d'une paire de séquences en ajoutant des jetons spéciaux.

Cette méthode construit dynamiquement les entrées en fonction de special_tokens_pattern du tokenizer :

  • "none" : aucun jeton spécial
  • "cls_sep" : [CLS] seq0 [SEP] ou [CLS] seq0 [SEP] seq1 [SEP]
  • "eos" : seq0 [EOS] ou seq0 [EOS] seq1 [EOS]
  • "bos" : [BOS] seq0 ou [BOS] seq0 [BOS] seq1
  • "bos_eos" : [BOS] seq0 [EOS] ou [BOS] seq0 [EOS] seq1 [EOS]
  • "cls_double_sep" : [CLS] seq0 [SEP] ou [CLS] seq0 [SEP] [SEP] seq1 [SEP]
  • "prefix_suffix" : <prefix_tokens> seq0 [seq1] <suffix_tokens> (préfixe/suffixe personnalisé stocké sur le tokenizer)

create_token_type_ids_from_sequences

< >

( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]

Paramètres

  • token_ids_0 (list[int]) — Liste d'identifiants.
  • token_ids_1 (list[int], facultatif) — Deuxième liste d'identifiants facultative pour les paires de séquences.

Retourne

list[int]

Identifiants de type de jeton selon le motif configuré.

Créez un masque à partir des deux séquences passées, à utiliser dans une tâche de classification de paires de séquences.

Cette méthode construit dynamiquement les identifiants de type de jeton en fonction des attributs de configuration du tokeniseur :

  • token_type_ids_pattern : Motif à utiliser (« all_zeros » ou « bert_style »)
  • token_type_ids_include_special_tokens : Indique s'il faut prendre en compte les jetons spéciaux dans le calcul de la longueur

Exemples :

# All zeros pattern (default, used by RoBERTa, BART, etc.)
tokenizer.token_type_ids_pattern = "all_zeros"
# Returns: [0, 0, 0, ...] for both sequences

# BERT-style pattern (first sequence gets 0s, second gets 1s)
tokenizer.token_type_ids_pattern = "bert_style"
# Returns: [0, 0, 0, ..., 1, 1, 1, ...] for sequence pairs

get_added_vocab

< >

( ) → dict[str, int]

Retourne

dict[str, int]

Les jetons ajoutés.

Retourne les jetons ajoutés au vocabulaire sous forme d'un dictionnaire associant chaque jeton à son index. Les résultats peuvent différer de ceux de l'appel rapide, car pour l'instant nous ajoutons toujours les jetons, même s'ils sont déjà présents dans le vocabulaire. C'est un point que nous devrions corriger.

get_special_tokens_mask

< >

( token_ids_0: listtoken_ids_1: list | None = Nonealready_has_special_tokens: bool = False ) → A list of integers in the range [0, 1]

Paramètres

  • token_ids_0 (list[int]) — Liste des identifiants de la première séquence.
  • token_ids_1 (list[int], facultatif) — Liste des identifiants de la deuxième séquence.
  • already_has_special_tokens (bool, facultatif, par défaut False) — Indique si la liste de jetons est déjà formatée avec les jetons spéciaux du modèle.

Retourne

Une liste d'entiers dans l'intervalle [0, 1]

1 pour un jeton spécial, 0 pour un jeton de séquence.

Récupère les identifiants de séquences à partir d'une liste de jetons qui ne contient pas de jetons spéciaux ajoutés. Cette méthode est appelée lors de l'ajout de jetons spéciaux à l'aide des méthodes prepare_for_model ou encode_plus du tokenizer.

Cette méthode construit dynamiquement le masque des jetons spéciaux en fonction de special_tokens_pattern du tokeniseur :

  • "none" : aucun jeton spécial (par défaut, renvoie des 0)
  • "cls_sep" : [CLS] seq0 [SEP] ou [CLS] seq0 [SEP] seq1 [SEP]
  • "eos" : seq0 [EOS] ou seq0 [EOS] seq1 [EOS]
  • "bos" : [BOS] seq0 ou [BOS] seq0 [BOS] seq1
  • "bos_eos" : [BOS] seq0 [EOS] ou [BOS] seq0 [EOS] seq1 [EOS]
  • "cls_double_sep" : [CLS] seq0 [SEP] ou [CLS] seq0 [SEP] [SEP] seq1 [SEP]
  • "prefix_suffix": <prefix_tokens> seq0 [seq1] <suffix_tokens>

num_special_tokens_to_add

< >

( pair: bool = False ) → int

Paramètres

  • pair (bool, facultatif, par défaut False) — Indique si le nombre de jetons ajoutés doit être calculé dans le cas d'une paire de séquences ou d'une séquence unique.

Retourne

int

Nombre de jetons spéciaux ajoutés aux séquences.

Retourne le nombre de jetons ajoutés lors de l’encodage d’une séquence avec des jetons spéciaux.

Cela encode une entrée factice et vérifie le nombre de jetons ajoutés, ce qui n'est donc pas efficace. Ne placez pas cela dans votre boucle d'entraînement.

prepare_for_model

< >

( ids: listpair_ids: list[int] | None = Noneadd_special_tokens: bool = Truepadding: bool | str | transformers.utils.generic.PaddingStrategy = Falsetruncation: bool | str | transformers.tokenization_utils_base.TruncationStrategy = Falsemax_length: int | None = Nonestride: int = 0pad_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_length: bool = Falseverbose: bool = Trueprepend_batch_axis: bool = False**kwargs )

Paramètres

  • ids — Identifiants des jetons d'entrée de la première séquence.
  • pair_ids — Identifiants d’entrée tokenisés de la deuxième séquence (facultatif).

Prépare une séquence d'identifiants d'entrée afin qu'elle puisse être utilisée par le modèle. Ajoute des jetons spéciaux, tronque et remplit.

prepare_for_tokenization

< >

( text: stris_split_into_words: bool = False**kwargs ) → tuple[str, dict[str, Any]]

Paramètres

  • text (str) — Le texte à préparer.
  • is_split_into_words (bool, facultatif, 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 à 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) et la tokenise. Cela est utile pour la NER ou la classification de tokens.
  • kwargs (dict[str, Any], facultatif) — Arguments par mot-clé à utiliser pour la tokenisation.

Retourne

tuple[str, dict[str, Any]]

Le texte préparé et les kwargs non utilisés.

Effectue les transformations nécessaires avant la tokenization.

Cette méthode doit extraire les arguments de kwargs et retourner également les kwargs restants. Nous vérifions les kwargs à la fin du processus d’encodage pour nous assurer que tous les arguments ont été utilisés.

save_vocabulary

< >

( save_directory: strfilename_prefix: str | None = None ) → tuple[str, ...]

Paramètres

  • save_directory (str) — Le répertoire dans lequel enregistrer le vocabulaire.
  • filename_prefix (str, facultatif) — Préfixe facultatif à ajouter au nom des fichiers enregistrés.

Retourne

tuple[str, ...]

Chemin des fichiers enregistrés, ou tuple vide si aucun fichier n'a été enregistré.

Implémentation par défaut pour les motifs courants de sauvegarde du vocabulaire. Enregistre self.encoder/self.vocab au format JSON, éventuellement avec self.bpe_ranks en tant que fusions. Retourne un tuple vide si aucun vocabulaire n'existe.

Écrasez cette méthode si votre tokenizer nécessite une logique de sauvegarde personnalisée (par exemple, des modèles SentencePiece, plusieurs fichiers de vocabulaire ou des formats de fichiers spéciaux).

tokenize

< >

( text: str**kwargs )

Paramètres

  • text — La séquence à encoder.
  • **kwargs — Transmis à la méthode de prétraitement prepare_for_tokenization spécifique au modèle.

Convertit une chaîne de caractères en une séquence de jetons, en utilisant le tokeniseur.

truncate_sequences

< >

( ids: listpair_ids: list[int] | None = Nonenum_tokens_to_remove: int = 0truncation_strategy: str | transformers.tokenization_utils_base.TruncationStrategy = 'longest_first'stride: int = 0 )

Tronque les séquences selon la stratégie spécifiée.

PreTrainedTokenizerFast

Le PreTrainedTokenizerFast dépend de la bibliothèque tokenizers. Les tokenizers obtenus à partir de la bibliothèque 🤗 tokenizers peuvent être chargés très simplement dans 🤗 transformers. Consultez la page Utiliser les tokenizers de 🤗 tokenizers pour comprendre comment cela se fait.

classe transformers.TokenizersBackend

< >

( *args**kwargs )

Paramètres

  • model_max_length (int, facultatif) — La longueur maximale (en nombre de jetons) des entrées pour le modèle transformer. Lorsque le tokeniseur est chargé avec from_pretrained(), cette valeur est définie sur la valeur stockée pour le modèle associé dans max_model_input_sizes (voir ci-dessus). Si aucune valeur n'est fournie, la valeur par défaut est VERY_LARGE_INTEGER (int(1e30)).
  • padding_side (str, facultatif) — Le côté sur lequel le modèle doit appliquer le bourrage. Doit être choisi parmi [‘right’, ‘left’]. La valeur par défaut est choisie à partir de l’attribut de classe du même nom.
  • truncation_side (str, facultatif) — Le côté sur lequel le modèle doit appliquer la troncature. Doit être sélectionné parmi [‘right’, ‘left’]. La valeur par défaut est choisie à partir de l’attribut de classe du même nom.
  • chat_template (str, facultatif) — Une chaîne de modèle Jinja utilisée pour formater les listes de messages de chat. Voir https://huggingface.co/docs/transformers/chat_templating pour une description complète.
  • model_input_names (list[string], facultatif) — La liste des entrées acceptées par le passage avant du modèle (comme "token_type_ids" ou "attention_mask"). La valeur par défaut est choisie à partir de l'attribut de classe du même nom.
  • bos_token (str ou tokenizers.AddedToken, facultatif) — Un jeton spécial représentant le début d'une phrase.
  • eos_token (str ou tokenizers.AddedToken, facultatif) — Un jeton spécial représentant la fin d'une phrase.
  • unk_token (str ou tokenizers.AddedToken, facultatif) — Un jeton spécial représentant un jeton hors vocabulaire.
  • sep_token (str ou tokenizers.AddedToken, facultatif) — Un jeton spécial séparant deux phrases différentes dans la même entrée (utilisé par BERT, par exemple).
  • pad_token (str ou tokenizers.AddedToken, facultatif) — Un jeton spécial utilisé pour uniformiser la taille des tableaux de jetons dans le but de créer des lots. Il sera ensuite ignoré par les mécanismes d'attention ou le calcul de la perte.
  • cls_token (str ou tokenizers.AddedToken, facultatif) — Un jeton spécial représentant la classe de l’entrée (utilisé par BERT, par exemple).
  • mask_token (str ou tokenizers.AddedToken, facultatif) — Un jeton spécial représentant un jeton masqué (utilisé par les objectifs de pré-entraînement de modélisation de langage masqué, comme BERT). Sera associé à self.mask_token et self.mask_token_id.
  • extra_special_tokens (liste de str ou tokenizers.AddedToken, facultatif) — Une liste de jetons spéciaux supplémentaires spécifiques au modèle. Ajoutez-les ici pour vous assurer qu’ils sont ignorés lors du décodage lorsque skip_special_tokens est défini sur True. S’ils ne font pas partie du vocabulaire, ils seront ajoutés à la fin du vocabulaire.
  • split_special_tokens (bool, facultatif, par défaut False) — Indique si les jetons spéciaux doivent être fractionnés lors du processus de tokenisation. La valeur transmise affecte l'état interne du tokenizer. Le comportement par défaut est de ne pas fractionner les jetons spéciaux. Cela signifie que si <s> est le bos_token, alors tokenizer.tokenize("<s>") = ['<s>]. Sinon, si split_special_tokens=True, alors tokenizer.tokenize("<s>") renverra ['<','s', '>'].
  • tokenizer_object (tokenizers.Tokenizer) — Un objet tokenizers.Tokenizer de 🤗 tokenizers à instancier. Voir Utiliser des tokenizers de 🤗 tokenizers pour plus d’informations.
  • tokenizer_file (str) — Chemin vers un fichier JSON local représentant un objet tokenizers.Tokenizer précédemment sérialisé de 🤗 tokenizers.

Classe de base pour tous les tokenizers rapides (encapsulant la bibliothèque HuggingFace tokenizers).

Hérite de PreTrainedTokenizerBase.

Gère toutes les méthodes partagées pour la tokenisation et les jetons spéciaux, ainsi que les méthodes de téléchargement/mise en cache/chargement des tokeniseurs pré-entraînés, et l’ajout de jetons au vocabulaire.

Cette classe contient également les jetons ajoutés de manière unifiée au-dessus de tous les tokenizers, afin de ne pas avoir à gérer les méthodes spécifiques d’augmentation du vocabulaire des différentes structures de dictionnaire sous-jacentes (BPE, sentencepiece…).

Attributs de classe (réécrits par les classes dérivées)

  • vocab_files_names (dict[str, str]) — Un dictionnaire dont les clés sont les noms des mots-clés de __init__ de chaque fichier de vocabulaire requis par le modèle, et dont les valeurs associées sont les noms de fichiers pour enregistrer le fichier associé (chaîne de caractères).
  • pretrained_vocab_files_map (dict[str, dict[str, str]]) — Un dictionnaire de dictionnaires, dont les clés de haut niveau sont les noms de mots-clés __init__ de chaque fichier de vocabulaire requis par le modèle, et les clés de bas niveau sont les short-cut-names des modèles pré-entraînés, avec, en valeurs associées, l'url du fichier de vocabulaire pré-entraîné correspondant.
  • model_input_names (list[str]) — Une liste des entrées attendues lors de la passe avant du modèle.
  • padding_side (str) — La valeur par défaut pour le côté sur lequel le modèle doit appliquer le bourrage. Doit être 'right' ou 'left'.
  • truncation_side (str) — La valeur par défaut pour le côté sur lequel le modèle doit appliquer la troncature. Doit être 'right' ou 'left'.

__call__

< >

( text: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_pair: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_target: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_pair_target: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Noneadd_special_tokens: bool = Truepadding: bool | str | PaddingStrategy = Falsetruncation: bool | str | TruncationStrategy | None = Nonemax_length: int | None = Nonestride: int = 0is_split_into_words: bool = Falsepad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_tensors: str | 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 = Truetokenizer_kwargs: dict[str, Any] | None = None**kwargs ) → BatchEncoding

Paramètres

  • text (str, list[str], list[list[str]], facultatif) — La séquence ou le lot de séquences à encoder. Chaque séquence peut être une chaîne de caractères ou une liste de chaînes de caractères (chaînes pré-tokenisées). Si les séquences sont fournies sous forme de liste de chaînes de caractères (pré-tokenisées), vous devez définir is_split_into_words=True (pour lever l’ambiguïté avec un lot de séquences).
  • text_pair (str, list[str], list[list[str]], facultatif) — La séquence ou le lot de séquences à encoder. Chaque séquence peut être une chaîne de caractères ou une liste de chaînes de caractères (chaînes pré-tokenisées). Si les séquences sont fournies sous forme de liste de chaînes de caractères (pré-tokenisées), vous devez définir is_split_into_words=True (pour lever l’ambiguïté avec un lot de séquences).
  • text_target (str, list[str], list[list[str]], facultatif) — La séquence ou le lot de séquences à encoder en tant que textes cibles. Chaque séquence peut être une chaîne de caractères ou une liste de chaînes de caractères (chaîne pré-tokenisée). Si les séquences sont fournies sous forme de liste de chaînes de caractères (pré-tokenisées), vous devez définir is_split_into_words=True (pour lever l’ambiguïté avec un lot de séquences).
  • text_pair_target (str, list[str], list[list[str]], facultatif) — La séquence ou le lot de séquences à encoder en tant que textes cibles. Chaque séquence peut être une chaîne de caractères ou une liste de chaînes de caractères (chaîne pré-tokenisée). Si les séquences sont fournies sous forme de liste de chaînes de caractères (pré-tokenisées), vous devez définir is_split_into_words=True (pour lever l’ambiguïté avec un lot de séquences).
  • tokenizer_kwargs (dict[str, Any], facultatif) — Kwargs supplémentaires à passer au tokenizer. Ils seront fusionnés avec les paramètres explicites et les autres kwargs, les paramètres explicites ayant la priorité.
  • 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. Cela est utile si vous souhaitez ajouter automatiquement des jetons bos ou eos.
  • padding (bool, str ou PaddingStrategy, facultatif, défaut : False) — Active et contrôle le padding. 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 padding (c’est-à-dire, peut produire un lot avec des séquences de longueurs différentes).
  • truncation (bool, str ou TruncationStrategy, facultatif, 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'un des paramètres de troncature/remplissage exige une longueur maximale. 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 à 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 les séquences en dépassement. La valeur de cet argument définit le nombre de jetons en chevauchement.
  • is_split_into_words (bool, facultatif, 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 à 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) et la tokenise. Cela est utile pour la NER ou la classification de tokens.
  • pad_to_multiple_of (int, facultatif) — Si défini, la séquence est rembourrée 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 appliquer le bourrage. Doit être choisi parmi [‘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 acceptées 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 renvoyer les identifiants de type de jeton. Si la valeur par défaut est conservée, les identifiants de type de jeton sont renvoyé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 tokenizer 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 retourner 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 retourner les jetons en dépassement.
  • return_special_tokens_mask (bool, facultatif, par défaut False) — Indique s'il faut ou non retourner les informations du masque des jetons spéciaux.
  • return_offsets_mapping (bool, facultatif, par défaut False) — Indique s'il faut renvoyer (char_start, char_end) pour chaque jeton.

    Cela 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 retourner les longueurs des entrées encodées.
  • verbose (bool, facultatif, par défaut True) — Indique s'il faut afficher plus d'informations et d'avertissements.
  • **kwargs — transmis à la méthode self.tokenize()

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 ?

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

Méthode principale pour tokeniser et préparer pour le modèle une ou plusieurs séquences ou une ou plusieurs paires de séquences.

add_tokens

< >

( new_tokens: str | AddedToken | Sequence[str | AddedToken]special_tokens: bool = False ) → int

Paramètres

  • new_tokens (str, tokenizers.AddedToken ou une séquence de str ou tokenizers.AddedToken) — Les jetons ne sont ajoutés que s’ils ne figurent pas déjà dans le vocabulaire. tokenizers.AddedToken encapsule un jeton sous forme de chaîne de caractères afin de permettre de personnaliser son comportement : si ce jeton doit correspondre uniquement à un mot unique, s’il doit supprimer toutes les éventuelles espaces blanches à gauche, s’il doit supprimer toutes les éventuelles espaces blanches à droite, etc.
  • special_tokens (bool, facultatif, par défaut False) — Indique si le jeton est spécial. Cela modifie principalement le comportement de normalisation. Voir les détails de tokenizers.AddedToken dans la bibliothèque HuggingFace tokenizers.

Retourne

int

Nombre de jetons ajoutés au vocabulaire.

#TODO supprimer ceci d'ici ! PreTrainedTokenizerBase doit être agnostique vis-à-vis de AddedToken.

Ajoutez une liste de nouveaux jetons. Si les nouveaux jetons ne figurent pas dans le vocabulaire, ils sont ajoutés à la fin. Les jetons ajoutés et les jetons issus du vocabulaire de l’algorithme de tokenisation ne sont donc pas traités de la même manière.

Les tokenizers rapides avec un pré-tokenizer Metaspace utilisant prepend_scheme="always" (par ex. NLLB) ajoutent "▁" au texte qui suit un jeton ajouté. Après tokenizer.add_tokens(["abcd"]), "abcdgym" est tokenizé en ["abcd", "▁gym"] et décodé en "abcd gym". Si les jetons ajoutés peuvent apparaître à l'intérieur de mots, changez le pré-tokenizer

à prepend_scheme="first" pour que seul le début de l'entrée soit préfixé :

from tokenizers import pre_tokenizers

pre_tokenizer = tokenizer.backend_tokenizer.pre_tokenizer
tokenizer.backend_tokenizer.pre_tokenizer = pre_tokenizers.Metaspace(
    replacement=pre_tokenizer.replacement, prepend_scheme="first", split=pre_tokenizer.split
)

Exemples :

# Let's see how to increase the vocabulary of Bert model and tokenizer
tokenizer = BertTokenizerFast.from_pretrained("google-bert/bert-base-uncased")
model = BertModel.from_pretrained("google-bert/bert-base-uncased")

num_added_toks = tokenizer.add_tokens(["new_tok1", "my_new-tok2"])
print("We have added", num_added_toks, "tokens")
# Notice: resize_token_embeddings expect to receive the full size of the new vocabulary, i.e., the length of the tokenizer.
model.resize_token_embeddings(len(tokenizer))

add_special_tokens

< >

( special_tokens_dict: dict[str, str | AddedToken | Sequence[str | AddedToken]]replace_extra_special_tokens = True ) → int

Paramètres

  • special_tokens_dict (dictionnaire str vers str, tokenizers.AddedToken, ou Sequence[Union[str, AddedToken]]) — Les clés doivent figurer dans la liste des attributs spéciaux prédéfinis : [bos_token, eos_token, unk_token, sep_token, pad_token, cls_token, mask_token, extra_special_tokens].

    Les jetons ne sont ajoutés que s'ils ne figurent pas déjà dans le vocabulaire (test effectué en vérifiant si le tokenizer leur attribue l'index du unk_token).

  • replace_extra_special_tokens (bool, facultatif, valeur par défaut True) — Si True, la liste existante des jetons spéciaux supplémentaires sera remplacée par la liste fournie dans special_tokens_dict. Sinon, extra_special_tokens sera étendue. Dans le premier cas, les jetons ne seront PAS retirés du vocabulaire complet du tokenizer - ils ne sont simplement plus marqués comme jetons spéciaux. N’oubliez pas que cela n’affecte que les jetons ignorés lors du décodage, et non le added_tokens_encoder et le added_tokens_decoder. Cela signifie que les extra_special_tokens précédents restent des jetons ajoutés et ne seront pas fractionnés par le modèle.

Retourne

int

Nombre de jetons ajoutés au vocabulaire.

Ajoute un dictionnaire de jetons spéciaux (eos, pad, cls, etc.) à l’encodeur et les lie aux attributs de classe. Si les jetons spéciaux ne figurent PAS dans le vocabulaire, ils y sont ajoutés (indexés à partir du dernier index du vocabulaire actuel).

Lors de l’ajout de nouveaux jetons au vocabulaire, vous devez vous assurer de redimensionner également la matrice d’incorporation des jetons du modèle afin que sa matrice d’incorporation corresponde à celle du tokeniseur.

Pour ce faire, veuillez utiliser la méthode resize_token_embeddings().

L'utilisation de add_special_tokens garantit que vos jetons spéciaux peuvent être utilisés de plusieurs manières :

  • Les jetons spéciaux peuvent être ignorés lors du décodage en utilisant skip_special_tokens = True.
  • Les jetons spéciaux sont soigneusement gérés par le tokeniseur (ils ne sont jamais fractionnés), de manière similaire à AddedTokens.
  • Vous pouvez facilement faire référence aux jetons spéciaux en utilisant les attributs de la classe tokenizer tels que tokenizer.cls_token. Cela facilite le développement de scripts d'entraînement et de fine-tuning agnostiques du modèle.

Lorsque c’est possible, les jetons spéciaux sont déjà enregistrés pour les modèles préentraînés fournis (par exemple, cls_token de BertTokenizer est déjà enregistré comme '[CLS]' et celui de XLM est également enregistré comme '</s>').

Exemples :

# Let's see how to add a new classification token to GPT-2
tokenizer = GPT2Tokenizer.from_pretrained("openai-community/gpt2")
model = GPT2Model.from_pretrained("openai-community/gpt2")

special_tokens_dict = {"cls_token": "<CLS>"}

num_added_toks = tokenizer.add_special_tokens(special_tokens_dict)
print("We have added", num_added_toks, "tokens")
# Notice: resize_token_embeddings expect to receive the full size of the new vocabulary, i.e., the length of the tokenizer.
model.resize_token_embeddings(len(tokenizer))

assert tokenizer.cls_token == "<CLS>"

apply_chat_template

< >

( conversation: list[dict[str, str]] | list[list[dict[str, str]]]tools: list[dict | Callable] | None = Nonedocuments: list[dict[str, str]] | None = Nonechat_template: str | None = Noneadd_generation_prompt: bool = Falsecontinue_final_message: bool | str = Falsetokenize: bool = Truesanitize_control_tokens: bool = Falsepadding: bool | str | PaddingStrategy = Falsetruncation: bool = Falsemax_length: int | None = Nonereturn_tensors: str | TensorType | None = Nonereturn_dict: bool = Truereturn_assistant_tokens_mask: bool = Falsetokenizer_kwargs: dict[str, Any] | None = None**kwargs ) → Union[list[int], Dict]

Paramètres

  • conversation (Union[list[dict[str, str]], list[list[dict[str, str]]]]) — A list of dicts with “role” and “content” keys, representing the chat history so far.
  • tools (list[Union[Dict, Callable]], facultatif) — Une liste d’outils (fonctions appelables) qui seront accessibles au modèle. Si le modèle ne prend pas en charge l’appel de fonctions, cet argument n’aura aucun effet. Chaque outil doit être transmis sous forme de JSON Schema, indiquant le nom, la description et les types d’arguments de l’outil. Consultez notre guide d’utilisation des outils pour plus d’informations.
  • documents (list[dict[str, str]], facultatif) — Une liste de dictionnaires représentant des documents qui seront accessibles au modèle s'il effectue une génération augmentée par récupération (RAG). Si le modèle ne prend pas en charge le RAG, cet argument n'aura aucun effet. Nous recommandons que chaque document soit un dictionnaire contenant les clés « title » et « text ».
  • chat_template (str, facultatif) — Un modèle Jinja à utiliser pour cette conversion. Il n’est généralement pas nécessaire de passer quoi que ce soit à cet argument, car le modèle du modèle sera utilisé par défaut.
  • add_generation_prompt (bool, facultatif) — Si ce paramètre est défini, un prompt contenant le ou les jetons indiquant le début d'un message d'assistant sera ajouté à la sortie formatée. Cela est utile lorsque vous souhaitez générer une réponse à partir du modèle. Notez que cet argument sera transmis au modèle de chat, et il doit donc être pris en charge par le modèle pour que cet argument ait un effet.
  • continue_final_message (bool or str, facultatif) — Si ce paramètre est défini, la conversation sera formatée de manière à ce que le dernier message de la conversation soit ouvert, sans aucun jeton EOS. Le modèle poursuivra ce message au lieu d’en démarrer un nouveau. Cela permet de « préremplir » une partie de la réponse du modèle. Si une chaîne de caractères est transmise, elle sera utilisée comme clé pour le champ à poursuivre (par ex. « reasoning_content »). Ne peut pas être utilisé en même temps que add_generation_prompt.
  • tokenize (bool, par défaut True) — Indique s'il faut tokeniser la sortie. Si False, la sortie sera une chaîne de caractères.
  • sanitize_control_tokens (bool, par défaut False) — Si activé, les jetons de contrôle présents dans les messages, les outils ou les documents sont encodés comme du texte ordinaire, de sorte que seuls les jetons de contrôle écrits par le modèle de dialogue lui-même sont encodés en tant que jetons. Les jetons de contrôle sont les jetons spéciaux du tokeniseur, ainsi que les jetons ajoutés dans tokenizer.chat_control_tokens. Si cette variable n’est pas définie, les jetons de contrôle sont déduits des jetons ajoutés qui apparaissent dans le texte du modèle de dialogue et dans les littéraux de chaîne. Seuls les jetons de contrôle complets sont assainis ; ainsi, si le modèle de dialogue assemble des chaînes de l’entrée pour former des jetons de contrôle (comme '<|' + message['role'] + '|>'), ces chaînes doivent être validées séparément. Les clés de dictionnaire ne sont pas non plus assainies.
  • padding (bool, str ou PaddingStrategy, facultatif, défaut : False) — Sélectionne une stratégie pour mettre en place le padding des séquences renvoyées (selon le côté de padding et l'index de padding du modèle) parmi les options 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 padding (c’est-à-dire, peut produire un lot avec des séquences de longueurs différentes).
  • truncation (bool, par défaut False) — Indique s'il faut tronquer les séquences à la longueur maximale. N'a aucun effet si tokenize est False.
  • max_length (int, facultatif) — Longueur maximale (en jetons) à utiliser pour le bourrage ou la troncature. N’a aucun effet si tokenize est False. Si non spécifié, l’attribut max_length du tokeniseur sera utilisé par défaut.
  • return_tensors (str ou TensorType, facultatif) — Si défini, renvoie des tenseurs d'un framework particulier. N'a aucun effet si tokenize est False. Les valeurs acceptables sont :
    • 'pt' : Renvoie des objets torch.Tensor de PyTorch.
    • 'np' : Renvoie des objets NumPy np.ndarray.
  • return_dict (bool, par défaut True) — Indique s'il faut retourner un dictionnaire avec des sorties nommées. N'a aucun effet si tokenize est False.
  • tokenizer_kwargs (dict[str -- Any], facultatif) : Arguments supplémentaires à passer au tokenizer.
  • return_assistant_tokens_mask (bool, par défaut False) — Indique s'il faut retourner un masque des jetons générés par l'assistant. Pour les jetons générés par l'assistant, le masque contiendra 1. Pour les jetons utilisateur et système, le masque contiendra 0. Cette fonctionnalité n'est disponible que pour les modèles de discussion qui la prennent en charge via le mot-clé {% generation %}.
  • **kwargs — Kwargs supplémentaires à passer au moteur de rendu du modèle. Accessibles par le modèle de chat.

Retourne

Union[list[int], Dict]

Une liste d’identifiants de jetons représentant la conversation tokenisée jusqu’à présent, y compris les jetons de contrôle. Cette sortie est prête à être transmise au modèle, soit directement, soit via des méthodes telles que generate(). Si return_dict est défini, un dictionnaire de sorties du tokeniseur est renvoyé à la place.

Convertit une liste de dictionnaires avec les clés "role" et "content" en une liste d’identifiants de jetons. Cette méthode est destinée à l’utilisation avec des modèles de chat et lit l’attribut chat_template du tokeniseur pour déterminer le format et les jetons de contrôle à utiliser lors de la conversion.

batch_decode

< >

( sequences: list[int] | list[list[int]] | np.ndarray | torch.Tensorskip_special_tokens: bool = Falseclean_up_tokenization_spaces: bool | None = None**kwargs ) → list[str]

Paramètres

  • sequences (Union[list[int], list[list[int]], np.ndarray, torch.Tensor]) — Liste des identifiants d’entrée tokenisés. Peut être obtenue à l’aide de la méthode __call__.
  • skip_special_tokens (bool, facultatif, valeur par défaut False) — Indique s'il faut supprimer les jetons spéciaux lors du décodage.
  • clean_up_tokenization_spaces (bool, facultatif) — Indique s'il faut nettoyer les espaces de tokenisation. Si None, la valeur par défaut est self.clean_up_tokenization_spaces.
  • kwargs (arguments supplémentaires par mot-clé, facultatif) — Sera transmis à la méthode de décodage spécifique du modèle sous-jacent.

Retourne

list[str]

La liste des phrases décodées.

Convertir une liste de listes d'identifiants de jetons en une liste de chaînes en appelant decode.

Cette méthode est fournie pour la compatibilité ascendante. La méthode decode gère désormais nativement les entrées par lots, vous pouvez donc utiliser directement decode au lieu de batch_decode.

décoder

< >

( token_ids: int | list[int] | list[list[int]] | np.ndarray | torch.Tensorskip_special_tokens: bool = False**kwargs ) → Union[str, list[str]]

Paramètres

  • token_ids (Union[int, list[int], list[list[int]], np.ndarray, torch.Tensor]) — Une séquence unique ou un lot (liste de séquences) d’identifiants d’entrée tokenisés. Peut être obtenu à l’aide de la méthode __call__.
  • skip_special_tokens (bool, facultatif, valeur par défaut False) — Indique s'il faut supprimer les jetons spéciaux lors du décodage.
  • kwargs (arguments supplémentaires par mot-clé, facultatif) — Sera transmis à la méthode de décodage spécifique du modèle sous-jacent.

Retourne

Union[str, list[str]]

La chaîne décodée pour une séquence unique, ou une liste de chaînes décodées pour un lot de séquences.

Convertit une séquence d'identifiants en chaîne de caractères, ou une liste de séquences en liste de chaînes de caractères, en utilisant le tokenizer et le vocabulaire, avec des options pour supprimer les jetons spéciaux et nettoyer les espaces de tokenization.

Similaire à l'exécution de self.convert_tokens_to_string(self.convert_ids_to_tokens(token_ids)).

encode

< >

( text: TextInput | PreTokenizedInput | EncodedInputtext_pair: TextInput | PreTokenizedInput | EncodedInput | None = Noneadd_special_tokens: bool = Truepadding: bool | str | PaddingStrategy = Falsetruncation: bool | str | TruncationStrategy | None = Nonemax_length: int | None = Nonestride: int = 0padding_side: str | None = Nonereturn_tensors: str | TensorType | None = None**kwargs ) → list[int], torch.Tensor, or np.ndarray

Paramètres

  • text (str, list[str] ou list[int]) — La première séquence à encoder. Il peut s’agir d’une chaîne de caractères, d’une liste de chaînes (chaîne tokenisée à l’aide de la méthode tokenize) ou d’une liste d’entiers (identifiants de tokens d’une chaîne tokenisée à l’aide de la méthode convert_tokens_to_ids).
  • text_pair (str, list[str] ou list[int], facultatif) — Deuxième séquence facultative à encoder. Il peut s’agir d’une chaîne de caractères, d’une liste de chaînes (chaîne tokenisée à l’aide de la méthode tokenize) ou d’une liste d’entiers (identifiants de tokens d’une chaîne tokenisée à l’aide de la méthode convert_tokens_to_ids).
  • 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. Cela est utile si vous souhaitez ajouter automatiquement des jetons bos ou eos.
  • padding (bool, str ou PaddingStrategy, facultatif, défaut : False) — Active et contrôle le padding. 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 padding (c’est-à-dire, peut produire un lot avec des séquences de longueurs différentes).
  • truncation (bool, str ou TruncationStrategy, facultatif, 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'un des paramètres de troncature/remplissage exige une longueur maximale. 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 à 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 les séquences en dépassement. La valeur de cet argument définit le nombre de jetons en chevauchement.
  • is_split_into_words (bool, facultatif, 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 à 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) et la tokenise. Cela est utile pour la NER ou la classification de tokens.
  • pad_to_multiple_of (int, facultatif) — Si défini, la séquence est rembourrée 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 appliquer le bourrage. Doit être choisi parmi [‘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 acceptées sont :
    • 'pt' : Renvoie des objets torch.Tensor de PyTorch.
    • 'np' : Renvoie des objets Numpy np.ndarray.
  • **kwargs — Transmis à la méthode .tokenize().

Retourne

list[int], torch.Tensor ou np.ndarray

Les identifiants tokenisés du texte.

Convertit une chaîne de caractères en une séquence d'identifiants (entiers), en utilisant le tokenizer et le vocabulaire.

Identique à l'exécution de self.convert_tokens_to_ids(self.tokenize(text)).

push_to_hub

< >

( repo_id: strcommit_message: str | None = Nonecommit_description: str | None = Noneprivate: bool | None = Nonetoken: bool | str | None = Nonerevision: str | None = Nonecreate_pr: bool = Falsemax_shard_size: int | str | None = '50GB'tags: list[str] | None = None )

Paramètres

  • repo_id (str) — Le nom du dépôt vers lequel vous souhaitez pousser votre tokenizer. Il doit contenir le nom de votre organisation lors d’un push vers une organisation donnée.
  • commit_message (str, facultatif) — Message à committer lors de la poussée. La valeur par défaut est "Upload tokenizer".
  • commit_description (str, facultatif) — La description du commit qui sera créé
  • private (bool, facultatif) — Indique s'il faut rendre le dépôt privé. Si None (par défaut), le dépôt sera public sauf si le paramètre par défaut de l'organisation est privé. Cette valeur est ignorée si le dépôt existe déjà.
  • token (bool ou str, facultatif) — Le jeton à utiliser comme autorisation bearer HTTP pour les fichiers distants. Si True (par défaut), le jeton généré lors de l’exécution de hf auth login (stocké dans ~/.huggingface) sera utilisé.
  • revision (str, facultatif) — Branche vers laquelle pousser les fichiers téléversés.
  • create_pr (bool, facultatif, par défaut False) — Indique s'il faut créer une PR avec les fichiers téléversés ou effectuer un commit direct.
  • max_shard_size (int ou str, facultatif, par défaut "50GB") — Applicable uniquement aux modèles. La taille maximale d'un point de contrôle avant son fractionnement. Les points de contrôle fractionnés auront chacun une taille inférieure à cette valeur. S'il est exprimé sous forme de chaîne, il doit être composé de chiffres suivis d'une unité (comme "5MB").
  • tags (list[str], facultatif) — Liste des tags à pousser sur le Hub.

Téléversez les fichiers du tokenizer sur le 🤗 Model Hub.

Exemples :

from transformers import AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("google-bert/bert-base-cased")

# Push the tokenizer to your namespace with the name "my-finetuned-bert".
tokenizer.push_to_hub("my-finetuned-bert")

# Push the tokenizer to an organization with the name "my-finetuned-bert".
tokenizer.push_to_hub("huggingface/my-finetuned-bert")

convert_to_native_format

< >

( trust_remote_code = False**kwargs )

Construire un backend tokenizers.Tokenizer à partir des fichiers de sérialisation disponibles (tokenizer.json, modèles sentencepiece, tekken.json, vocab/merges).

get_added_vocab

< >

( ) → dict[str, int]

Retourne

dict[str, int]

Les jetons ajoutés.

Retourne les jetons ajoutés au vocabulaire sous forme d'un dictionnaire associant chaque jeton à son index.

num_special_tokens_to_add

< >

( pair: bool = False ) → int

Paramètres

  • pair (bool, facultatif, par défaut False) — Indique si le nombre de jetons ajoutés doit être calculé dans le cas d'une paire de séquences ou d'une séquence unique.

Retourne

int

Nombre de jetons spéciaux ajoutés aux séquences.

Retourne le nombre de jetons ajoutés lors de l’encodage d’une séquence avec des jetons spéciaux.

Cela encode une entrée factice et vérifie le nombre de jetons ajoutés, ce qui n'est donc pas efficace. Ne placez pas cela dans votre boucle d'entraînement.

save_pretrained

< >

( save_directory: str | os.PathLikelegacy_format: bool | None = Nonefilename_prefix: str | None = Nonepush_to_hub: bool = Falsesave_format: str | None = None**kwargs ) → A tuple of str

Paramètres

  • save_format (str, facultatif) — "mistral" pour enregistrer au format natif tekken.json en copiant le fichier d’origine (nécessite que le fichier de vocabulaire tekken d’origine soit disponible). Le nom est normalisé en tekken.json lors de l’enregistrement, et le tokenizer instancié doit toujours correspondre exactement à ce fichier. "hf" ou None pour le format HuggingFace par défaut.
  • kwargs (dict[str, Any], facultatif) — Arguments supplémentaires passés à la méthode push_to_hub().

Retourne

Un tuple de str

Les fichiers enregistrés.

Enregistrer l'état complet du tokenizer.

Étend save_pretrained() avec la prise en charge de save_format, pour les tokenizers convertis depuis un fichier de vocabulaire natif (par ex. tekken.json de Mistral). Consultez la méthode de base pour legacy_format, filename_prefix et push_to_hub.

set_truncation_and_padding

< >

( padding_strategy: PaddingStrategytruncation_strategy: TruncationStrategymax_length: intstride: intpad_to_multiple_of: int | Nonepadding_side: str | None )

Paramètres

  • padding_strategy (PaddingStrategy) — Le type de bourrage qui sera appliqué à l'entrée
  • truncation_strategy (TruncationStrategy) — Le type de troncature qui sera appliqué à l'entrée
  • max_length (int) — La taille maximale d'une séquence.
  • stride (int) — Le pas à utiliser lors du traitement du dépassement.
  • pad_to_multiple_of (int, facultatif) — Si défini, la séquence sera rembourdée jusqu'à un multiple de la valeur fournie. 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 appliquer le bourrage. Doit être choisi parmi [‘right’, ‘left’]. La valeur par défaut est choisie à partir de l’attribut de classe du même nom.

Définir les stratégies de troncature et de bourrage pour les tokenizers rapides (fournis par la bibliothèque HuggingFace tokenizers) et restaurer les paramètres du tokenizer par la suite.

Le tokenizer fourni n'a pas de stratégie de padding / troncature avant la section gérée. Si votre tokenizer avait défini une stratégie de padding / troncature auparavant, celle-ci sera réinitialisée à l'absence de padding / troncature lors de la sortie de la section gérée.

train_new_from_iterator

< >

( text_iteratorvocab_sizelength = Nonenew_special_tokens = Nonespecial_tokens_map = None**kwargs ) → PreTrainedTokenizerFast

Paramètres

  • text_iterator (générateur de list[str]) — Le corpus d'entraînement. Doit être un générateur de lots de textes, par exemple une liste de listes de textes si tout est en mémoire.
  • vocab_size (int) — La taille du vocabulaire souhaitée pour votre tokenizer.
  • length (int, facultatif) — Le nombre total de séquences dans l'itérateur. Cela est utilisé pour fournir un suivi de progression significatif
  • new_special_tokens (liste de str ou AddedToken, facultatif) — Une liste de nouveaux jetons spéciaux à ajouter au tokenizer que vous entraînez.
  • special_tokens_map (dict[str, str], facultatif) — Si vous souhaitez renommer certains des jetons spéciaux utilisés par ce tokeniseur, transmettez dans cet argument un mapping du nom de l’ancien jeton spécial vers le nom du nouveau jeton spécial.
  • kwargs (dict[str, Any], facultatif) — Arguments supplémentaires passés au formateur par la bibliothèque 🤗 Tokenizers.

Un nouveau tokenizer du même type que l'original, entraîné sur text_iterator.

Entraîne un tokenizer sur un nouveau corpus avec les mêmes valeurs par défaut (en termes de jetons spéciaux ou de pipeline de tokenization) que le tokenizer actuel.

update_post_processor

< >

( )

Met à jour le post-processeur sous-jacent avec les bos_token et eos_token actuels.

PythonBackend

classe transformers.PythonBackend

< >

( **kwargs )

Paramètres

  • model_max_length (int, facultatif) — La longueur maximale (en nombre de jetons) des entrées pour le modèle transformer. Lorsque le tokeniseur est chargé avec from_pretrained(), cette valeur est définie sur la valeur stockée pour le modèle associé dans max_model_input_sizes (voir ci-dessus). Si aucune valeur n'est fournie, la valeur par défaut est VERY_LARGE_INTEGER (int(1e30)).
  • padding_side (str, facultatif) — Le côté sur lequel le modèle doit appliquer le bourrage. Doit être choisi parmi [‘right’, ‘left’]. La valeur par défaut est choisie à partir de l’attribut de classe du même nom.
  • truncation_side (str, facultatif) — Le côté sur lequel le modèle doit appliquer la troncature. Doit être sélectionné parmi [‘right’, ‘left’]. La valeur par défaut est choisie à partir de l’attribut de classe du même nom.
  • chat_template (str, facultatif) — Une chaîne de modèle Jinja utilisée pour formater les listes de messages de chat. Voir https://huggingface.co/docs/transformers/chat_templating pour une description complète.
  • model_input_names (list[string], facultatif) — La liste des entrées acceptées par le passage avant du modèle (comme "token_type_ids" ou "attention_mask"). La valeur par défaut est choisie à partir de l'attribut de classe du même nom.
  • bos_token (str ou tokenizers.AddedToken, facultatif) — Un jeton spécial représentant le début d'une phrase.
  • eos_token (str ou tokenizers.AddedToken, facultatif) — Un jeton spécial représentant la fin d'une phrase.
  • unk_token (str ou tokenizers.AddedToken, facultatif) — Un jeton spécial représentant un jeton hors vocabulaire.
  • sep_token (str ou tokenizers.AddedToken, facultatif) — Un jeton spécial séparant deux phrases différentes dans la même entrée (utilisé par BERT, par exemple).
  • pad_token (str ou tokenizers.AddedToken, facultatif) — Un jeton spécial utilisé pour uniformiser la taille des tableaux de jetons dans le but de créer des lots. Il sera ensuite ignoré par les mécanismes d'attention ou le calcul de la perte.
  • cls_token (str ou tokenizers.AddedToken, facultatif) — Un jeton spécial représentant la classe de l’entrée (utilisé par BERT, par exemple).
  • mask_token (str ou tokenizers.AddedToken, facultatif) — Un jeton spécial représentant un jeton masqué (utilisé par les objectifs de pré-entraînement de modélisation de langage masqué, comme BERT). Sera associé à self.mask_token et self.mask_token_id.
  • extra_special_tokens (liste de str ou tokenizers.AddedToken, facultatif) — Une liste de jetons spéciaux supplémentaires spécifiques au modèle. Ajoutez-les ici pour vous assurer qu’ils sont ignorés lors du décodage lorsque skip_special_tokens est défini sur True. S’ils ne font pas partie du vocabulaire, ils seront ajoutés à la fin du vocabulaire.
  • split_special_tokens (bool, facultatif, par défaut False) — Indique si les jetons spéciaux doivent être fractionnés lors du processus de tokenisation. La valeur transmise affecte l'état interne du tokenizer. Le comportement par défaut est de ne pas fractionner les jetons spéciaux. Cela signifie que si <s> est le bos_token, alors tokenizer.tokenize("<s>") = ['<s>]. Sinon, si split_special_tokens=True, alors tokenizer.tokenize("<s>") renverra ['<','s', '>'].

Classe de base pour tous les tokeniseurs lents.

Hérite de PreTrainedTokenizerBase.

Gère toutes les méthodes partagées pour la tokenisation et les jetons spéciaux, ainsi que les méthodes de téléchargement, de mise en cache et de chargement des tokeniseurs pré-entraînés, et l’ajout de jetons au vocabulaire.

Cette classe contient également les jetons ajoutés de manière unifiée au-dessus de tous les tokenizers, afin de ne pas avoir à gérer les méthodes spécifiques d’augmentation du vocabulaire des différentes structures de dictionnaire sous-jacentes (BPE, sentencepiece…).

Attributs de classe (réécrits par les classes dérivées)

  • vocab_files_names (dict[str, str]) — Un dictionnaire dont les clés sont les noms des mots-clés de __init__ de chaque fichier de vocabulaire requis par le modèle, et dont les valeurs associées sont les noms de fichiers pour enregistrer le fichier associé (chaîne de caractères).
  • pretrained_vocab_files_map (dict[str, dict[str, str]]) — Un dictionnaire de dictionnaires, dont les clés de haut niveau sont les noms de mots-clés __init__ de chaque fichier de vocabulaire requis par le modèle, et les clés de bas niveau sont les short-cut-names des modèles pré-entraînés, avec, en valeurs associées, l'url du fichier de vocabulaire pré-entraîné correspondant.
  • model_input_names (list[str]) — Une liste des entrées attendues lors de la passe avant du modèle.
  • padding_side (str) — La valeur par défaut pour le côté sur lequel le modèle doit appliquer le bourrage. Doit être 'right' ou 'left'.
  • truncation_side (str) — La valeur par défaut pour le côté sur lequel le modèle doit appliquer la troncature. Doit être 'right' ou 'left'.

build_inputs_with_special_tokens

< >

( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]

Paramètres

  • token_ids_0 (list[int]) — Liste des ID auxquels les jetons spéciaux seront ajoutés.
  • token_ids_1 (list[int], facultatif) — Deuxième liste d'identifiants facultative pour les paires de séquences.

Retourne

list[int]

Liste des identifiants d'entrée avec les jetons spéciaux appropriés.

Construire les entrées du modèle à partir d'une séquence ou d'une paire de séquences en ajoutant des jetons spéciaux.

Cette méthode construit dynamiquement les entrées en fonction de special_tokens_pattern du tokenizer :

  • "none" : aucun jeton spécial
  • "cls_sep" : [CLS] seq0 [SEP] ou [CLS] seq0 [SEP] seq1 [SEP]
  • "eos" : seq0 [EOS] ou seq0 [EOS] seq1 [EOS]
  • "bos" : [BOS] seq0 ou [BOS] seq0 [BOS] seq1
  • "bos_eos" : [BOS] seq0 [EOS] ou [BOS] seq0 [EOS] seq1 [EOS]
  • "cls_double_sep" : [CLS] seq0 [SEP] ou [CLS] seq0 [SEP] [SEP] seq1 [SEP]
  • "prefix_suffix" : <prefix_tokens> seq0 [seq1] <suffix_tokens> (préfixe/suffixe personnalisé stocké sur le tokenizer)

create_token_type_ids_from_sequences

< >

( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]

Paramètres

  • token_ids_0 (list[int]) — Liste d'identifiants.
  • token_ids_1 (list[int], facultatif) — Deuxième liste d'identifiants facultative pour les paires de séquences.

Retourne

list[int]

Identifiants de type de jeton selon le motif configuré.

Créez un masque à partir des deux séquences passées, à utiliser dans une tâche de classification de paires de séquences.

Cette méthode construit dynamiquement les identifiants de type de jeton en fonction des attributs de configuration du tokeniseur :

  • token_type_ids_pattern : Motif à utiliser (« all_zeros » ou « bert_style »)
  • token_type_ids_include_special_tokens : Indique s'il faut prendre en compte les jetons spéciaux dans le calcul de la longueur

Exemples :

# All zeros pattern (default, used by RoBERTa, BART, etc.)
tokenizer.token_type_ids_pattern = "all_zeros"
# Returns: [0, 0, 0, ...] for both sequences

# BERT-style pattern (first sequence gets 0s, second gets 1s)
tokenizer.token_type_ids_pattern = "bert_style"
# Returns: [0, 0, 0, ..., 1, 1, 1, ...] for sequence pairs

get_added_vocab

< >

( ) → dict[str, int]

Retourne

dict[str, int]

Les jetons ajoutés.

Retourne les jetons ajoutés au vocabulaire sous forme d'un dictionnaire associant chaque jeton à son index. Les résultats peuvent différer de ceux de l'appel rapide, car pour l'instant nous ajoutons toujours les jetons, même s'ils sont déjà présents dans le vocabulaire. C'est un point que nous devrions corriger.

get_special_tokens_mask

< >

( token_ids_0: listtoken_ids_1: list | None = Nonealready_has_special_tokens: bool = False ) → A list of integers in the range [0, 1]

Paramètres

  • token_ids_0 (list[int]) — Liste des identifiants de la première séquence.
  • token_ids_1 (list[int], facultatif) — Liste des identifiants de la deuxième séquence.
  • already_has_special_tokens (bool, facultatif, par défaut False) — Indique si la liste de jetons est déjà formatée avec les jetons spéciaux du modèle.

Retourne

Une liste d'entiers dans l'intervalle [0, 1]

1 pour un jeton spécial, 0 pour un jeton de séquence.

Récupère les identifiants de séquences à partir d'une liste de jetons qui ne contient pas de jetons spéciaux ajoutés. Cette méthode est appelée lors de l'ajout de jetons spéciaux à l'aide des méthodes prepare_for_model ou encode_plus du tokenizer.

Cette méthode construit dynamiquement le masque des jetons spéciaux en fonction de special_tokens_pattern du tokeniseur :

  • "none" : aucun jeton spécial (par défaut, renvoie des 0)
  • "cls_sep" : [CLS] seq0 [SEP] ou [CLS] seq0 [SEP] seq1 [SEP]
  • "eos" : seq0 [EOS] ou seq0 [EOS] seq1 [EOS]
  • "bos" : [BOS] seq0 ou [BOS] seq0 [BOS] seq1
  • "bos_eos" : [BOS] seq0 [EOS] ou [BOS] seq0 [EOS] seq1 [EOS]
  • "cls_double_sep" : [CLS] seq0 [SEP] ou [CLS] seq0 [SEP] [SEP] seq1 [SEP]
  • "prefix_suffix": <prefix_tokens> seq0 [seq1] <suffix_tokens>

num_special_tokens_to_add

< >

( pair: bool = False ) → int

Paramètres

  • pair (bool, facultatif, par défaut False) — Indique si le nombre de jetons ajoutés doit être calculé dans le cas d'une paire de séquences ou d'une séquence unique.

Retourne

int

Nombre de jetons spéciaux ajoutés aux séquences.

Retourne le nombre de jetons ajoutés lors de l’encodage d’une séquence avec des jetons spéciaux.

Cela encode une entrée factice et vérifie le nombre de jetons ajoutés, ce qui n'est donc pas efficace. Ne placez pas cela dans votre boucle d'entraînement.

prepare_for_model

< >

( ids: listpair_ids: list[int] | None = Noneadd_special_tokens: bool = Truepadding: bool | str | transformers.utils.generic.PaddingStrategy = Falsetruncation: bool | str | transformers.tokenization_utils_base.TruncationStrategy = Falsemax_length: int | None = Nonestride: int = 0pad_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_length: bool = Falseverbose: bool = Trueprepend_batch_axis: bool = False**kwargs )

Paramètres

  • ids — Identifiants des jetons d'entrée de la première séquence.
  • pair_ids — Identifiants d’entrée tokenisés de la deuxième séquence (facultatif).

Prépare une séquence d'identifiants d'entrée afin qu'elle puisse être utilisée par le modèle. Ajoute des jetons spéciaux, tronque et remplit.

prepare_for_tokenization

< >

( text: stris_split_into_words: bool = False**kwargs ) → tuple[str, dict[str, Any]]

Paramètres

  • text (str) — Le texte à préparer.
  • is_split_into_words (bool, facultatif, 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 à 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) et la tokenise. Cela est utile pour la NER ou la classification de tokens.
  • kwargs (dict[str, Any], facultatif) — Arguments par mot-clé à utiliser pour la tokenisation.

Retourne

tuple[str, dict[str, Any]]

Le texte préparé et les kwargs non utilisés.

Effectue les transformations nécessaires avant la tokenization.

Cette méthode doit extraire les arguments de kwargs et retourner également les kwargs restants. Nous vérifions les kwargs à la fin du processus d’encodage pour nous assurer que tous les arguments ont été utilisés.

save_vocabulary

< >

( save_directory: strfilename_prefix: str | None = None ) → tuple[str, ...]

Paramètres

  • save_directory (str) — Le répertoire dans lequel enregistrer le vocabulaire.
  • filename_prefix (str, facultatif) — Préfixe facultatif à ajouter au nom des fichiers enregistrés.

Retourne

tuple[str, ...]

Chemin des fichiers enregistrés, ou tuple vide si aucun fichier n'a été enregistré.

Implémentation par défaut pour les motifs courants de sauvegarde du vocabulaire. Enregistre self.encoder/self.vocab au format JSON, éventuellement avec self.bpe_ranks en tant que fusions. Retourne un tuple vide si aucun vocabulaire n'existe.

Écrasez cette méthode si votre tokenizer nécessite une logique de sauvegarde personnalisée (par exemple, des modèles SentencePiece, plusieurs fichiers de vocabulaire ou des formats de fichiers spéciaux).

tokenize

< >

( text: str**kwargs )

Paramètres

  • text — La séquence à encoder.
  • **kwargs — Transmis à la méthode de prétraitement prepare_for_tokenization spécifique au modèle.

Convertit une chaîne de caractères en une séquence de jetons, en utilisant le tokeniseur.

truncate_sequences

< >

( ids: listpair_ids: list[int] | None = Nonenum_tokens_to_remove: int = 0truncation_strategy: str | transformers.tokenization_utils_base.TruncationStrategy = 'longest_first'stride: int = 0 )

Tronque les séquences selon la stratégie spécifiée.

TokenizersBackend

classe transformers.TokenizersBackend

< >

( *args**kwargs )

Paramètres

  • model_max_length (int, facultatif) — La longueur maximale (en nombre de jetons) des entrées pour le modèle transformer. Lorsque le tokeniseur est chargé avec from_pretrained(), cette valeur est définie sur la valeur stockée pour le modèle associé dans max_model_input_sizes (voir ci-dessus). Si aucune valeur n'est fournie, la valeur par défaut est VERY_LARGE_INTEGER (int(1e30)).
  • padding_side (str, facultatif) — Le côté sur lequel le modèle doit appliquer le bourrage. Doit être choisi parmi [‘right’, ‘left’]. La valeur par défaut est choisie à partir de l’attribut de classe du même nom.
  • truncation_side (str, facultatif) — Le côté sur lequel le modèle doit appliquer la troncature. Doit être sélectionné parmi [‘right’, ‘left’]. La valeur par défaut est choisie à partir de l’attribut de classe du même nom.
  • chat_template (str, facultatif) — Une chaîne de modèle Jinja utilisée pour formater les listes de messages de chat. Voir https://huggingface.co/docs/transformers/chat_templating pour une description complète.
  • model_input_names (list[string], facultatif) — La liste des entrées acceptées par le passage avant du modèle (comme "token_type_ids" ou "attention_mask"). La valeur par défaut est choisie à partir de l'attribut de classe du même nom.
  • bos_token (str ou tokenizers.AddedToken, facultatif) — Un jeton spécial représentant le début d'une phrase.
  • eos_token (str ou tokenizers.AddedToken, facultatif) — Un jeton spécial représentant la fin d'une phrase.
  • unk_token (str ou tokenizers.AddedToken, facultatif) — Un jeton spécial représentant un jeton hors vocabulaire.
  • sep_token (str ou tokenizers.AddedToken, facultatif) — Un jeton spécial séparant deux phrases différentes dans la même entrée (utilisé par BERT, par exemple).
  • pad_token (str ou tokenizers.AddedToken, facultatif) — Un jeton spécial utilisé pour uniformiser la taille des tableaux de jetons dans le but de créer des lots. Il sera ensuite ignoré par les mécanismes d'attention ou le calcul de la perte.
  • cls_token (str ou tokenizers.AddedToken, facultatif) — Un jeton spécial représentant la classe de l’entrée (utilisé par BERT, par exemple).
  • mask_token (str ou tokenizers.AddedToken, facultatif) — Un jeton spécial représentant un jeton masqué (utilisé par les objectifs de pré-entraînement de modélisation de langage masqué, comme BERT). Sera associé à self.mask_token et self.mask_token_id.
  • extra_special_tokens (liste de str ou tokenizers.AddedToken, facultatif) — Une liste de jetons spéciaux supplémentaires spécifiques au modèle. Ajoutez-les ici pour vous assurer qu’ils sont ignorés lors du décodage lorsque skip_special_tokens est défini sur True. S’ils ne font pas partie du vocabulaire, ils seront ajoutés à la fin du vocabulaire.
  • split_special_tokens (bool, facultatif, par défaut False) — Indique si les jetons spéciaux doivent être fractionnés lors du processus de tokenisation. La valeur transmise affecte l'état interne du tokenizer. Le comportement par défaut est de ne pas fractionner les jetons spéciaux. Cela signifie que si <s> est le bos_token, alors tokenizer.tokenize("<s>") = ['<s>]. Sinon, si split_special_tokens=True, alors tokenizer.tokenize("<s>") renverra ['<','s', '>'].
  • tokenizer_object (tokenizers.Tokenizer) — Un objet tokenizers.Tokenizer de 🤗 tokenizers à instancier. Voir Utiliser des tokenizers de 🤗 tokenizers pour plus d’informations.
  • tokenizer_file (str) — Chemin vers un fichier JSON local représentant un objet tokenizers.Tokenizer précédemment sérialisé de 🤗 tokenizers.

Classe de base pour tous les tokenizers rapides (encapsulant la bibliothèque HuggingFace tokenizers).

Hérite de PreTrainedTokenizerBase.

Gère toutes les méthodes partagées pour la tokenisation et les jetons spéciaux, ainsi que les méthodes de téléchargement/mise en cache/chargement des tokeniseurs pré-entraînés, et l’ajout de jetons au vocabulaire.

Cette classe contient également les jetons ajoutés de manière unifiée au-dessus de tous les tokenizers, afin de ne pas avoir à gérer les méthodes spécifiques d’augmentation du vocabulaire des différentes structures de dictionnaire sous-jacentes (BPE, sentencepiece…).

Attributs de classe (réécrits par les classes dérivées)

  • vocab_files_names (dict[str, str]) — Un dictionnaire dont les clés sont les noms des mots-clés de __init__ de chaque fichier de vocabulaire requis par le modèle, et dont les valeurs associées sont les noms de fichiers pour enregistrer le fichier associé (chaîne de caractères).
  • pretrained_vocab_files_map (dict[str, dict[str, str]]) — Un dictionnaire de dictionnaires, dont les clés de haut niveau sont les noms de mots-clés __init__ de chaque fichier de vocabulaire requis par le modèle, et les clés de bas niveau sont les short-cut-names des modèles pré-entraînés, avec, en valeurs associées, l'url du fichier de vocabulaire pré-entraîné correspondant.
  • model_input_names (list[str]) — Une liste des entrées attendues lors de la passe avant du modèle.
  • padding_side (str) — La valeur par défaut pour le côté sur lequel le modèle doit appliquer le bourrage. Doit être 'right' ou 'left'.
  • truncation_side (str) — La valeur par défaut pour le côté sur lequel le modèle doit appliquer la troncature. Doit être 'right' ou 'left'.

convert_to_native_format

< >

( trust_remote_code = False**kwargs )

Construire un backend tokenizers.Tokenizer à partir des fichiers de sérialisation disponibles (tokenizer.json, modèles sentencepiece, tekken.json, vocab/merges).

get_added_vocab

< >

( ) → dict[str, int]

Retourne

dict[str, int]

Les jetons ajoutés.

Retourne les jetons ajoutés au vocabulaire sous forme d'un dictionnaire associant chaque jeton à son index.

num_special_tokens_to_add

< >

( pair: bool = False ) → int

Paramètres

  • pair (bool, facultatif, par défaut False) — Indique si le nombre de jetons ajoutés doit être calculé dans le cas d'une paire de séquences ou d'une séquence unique.

Retourne

int

Nombre de jetons spéciaux ajoutés aux séquences.

Retourne le nombre de jetons ajoutés lors de l’encodage d’une séquence avec des jetons spéciaux.

Cela encode une entrée factice et vérifie le nombre de jetons ajoutés, ce qui n'est donc pas efficace. Ne placez pas cela dans votre boucle d'entraînement.

save_pretrained

< >

( save_directory: str | os.PathLikelegacy_format: bool | None = Nonefilename_prefix: str | None = Nonepush_to_hub: bool = Falsesave_format: str | None = None**kwargs ) → A tuple of str

Paramètres

  • save_format (str, facultatif) — "mistral" pour enregistrer au format natif tekken.json en copiant le fichier d’origine (nécessite que le fichier de vocabulaire tekken d’origine soit disponible). Le nom est normalisé en tekken.json lors de l’enregistrement, et le tokenizer instancié doit toujours correspondre exactement à ce fichier. "hf" ou None pour le format HuggingFace par défaut.
  • kwargs (dict[str, Any], facultatif) — Arguments supplémentaires passés à la méthode push_to_hub().

Retourne

Un tuple de str

Les fichiers enregistrés.

Enregistrer l'état complet du tokenizer.

Étend save_pretrained() avec la prise en charge de save_format, pour les tokenizers convertis depuis un fichier de vocabulaire natif (par ex. tekken.json de Mistral). Consultez la méthode de base pour legacy_format, filename_prefix et push_to_hub.

set_truncation_and_padding

< >

( padding_strategy: PaddingStrategytruncation_strategy: TruncationStrategymax_length: intstride: intpad_to_multiple_of: int | Nonepadding_side: str | None )

Paramètres

  • padding_strategy (PaddingStrategy) — Le type de bourrage qui sera appliqué à l'entrée
  • truncation_strategy (TruncationStrategy) — Le type de troncature qui sera appliqué à l'entrée
  • max_length (int) — La taille maximale d'une séquence.
  • stride (int) — Le pas à utiliser lors du traitement du dépassement.
  • pad_to_multiple_of (int, facultatif) — Si défini, la séquence sera rembourdée jusqu'à un multiple de la valeur fournie. 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 appliquer le bourrage. Doit être choisi parmi [‘right’, ‘left’]. La valeur par défaut est choisie à partir de l’attribut de classe du même nom.

Définir les stratégies de troncature et de bourrage pour les tokenizers rapides (fournis par la bibliothèque HuggingFace tokenizers) et restaurer les paramètres du tokenizer par la suite.

Le tokenizer fourni n'a pas de stratégie de padding / troncature avant la section gérée. Si votre tokenizer avait défini une stratégie de padding / troncature auparavant, celle-ci sera réinitialisée à l'absence de padding / troncature lors de la sortie de la section gérée.

train_new_from_iterator

< >

( text_iteratorvocab_sizelength = Nonenew_special_tokens = Nonespecial_tokens_map = None**kwargs ) → PreTrainedTokenizerFast

Paramètres

  • text_iterator (générateur de list[str]) — Le corpus d'entraînement. Doit être un générateur de lots de textes, par exemple une liste de listes de textes si tout est en mémoire.
  • vocab_size (int) — La taille du vocabulaire souhaitée pour votre tokenizer.
  • length (int, facultatif) — Le nombre total de séquences dans l'itérateur. Cela est utilisé pour fournir un suivi de progression significatif
  • new_special_tokens (liste de str ou AddedToken, facultatif) — Une liste de nouveaux jetons spéciaux à ajouter au tokenizer que vous entraînez.
  • special_tokens_map (dict[str, str], facultatif) — Si vous souhaitez renommer certains des jetons spéciaux utilisés par ce tokeniseur, transmettez dans cet argument un mapping du nom de l’ancien jeton spécial vers le nom du nouveau jeton spécial.
  • kwargs (dict[str, Any], facultatif) — Arguments supplémentaires passés au formateur par la bibliothèque 🤗 Tokenizers.

Un nouveau tokenizer du même type que l'original, entraîné sur text_iterator.

Entraîne un tokenizer sur un nouveau corpus avec les mêmes valeurs par défaut (en termes de jetons spéciaux ou de pipeline de tokenization) que le tokenizer actuel.

update_post_processor

< >

( )

Met à jour le post-processeur sous-jacent avec les bos_token et eos_token actuels.

SentencePieceBackend

classe transformers.SentencePieceBackend

< >

( **kwargs )

Paramètres

  • model_max_length (int, facultatif) — La longueur maximale (en nombre de jetons) des entrées pour le modèle transformer. Lorsque le tokeniseur est chargé avec from_pretrained(), cette valeur est définie sur la valeur stockée pour le modèle associé dans max_model_input_sizes (voir ci-dessus). Si aucune valeur n'est fournie, la valeur par défaut est VERY_LARGE_INTEGER (int(1e30)).
  • padding_side (str, facultatif) — Le côté sur lequel le modèle doit appliquer le bourrage. Doit être choisi parmi [‘right’, ‘left’]. La valeur par défaut est choisie à partir de l’attribut de classe du même nom.
  • truncation_side (str, facultatif) — Le côté sur lequel le modèle doit appliquer la troncature. Doit être sélectionné parmi [‘right’, ‘left’]. La valeur par défaut est choisie à partir de l’attribut de classe du même nom.
  • chat_template (str, facultatif) — Une chaîne de modèle Jinja utilisée pour formater les listes de messages de chat. Voir https://huggingface.co/docs/transformers/chat_templating pour une description complète.
  • model_input_names (list[string], facultatif) — La liste des entrées acceptées par le passage avant du modèle (comme "token_type_ids" ou "attention_mask"). La valeur par défaut est choisie à partir de l'attribut de classe du même nom.
  • bos_token (str ou tokenizers.AddedToken, facultatif) — Un jeton spécial représentant le début d'une phrase.
  • eos_token (str ou tokenizers.AddedToken, facultatif) — Un jeton spécial représentant la fin d'une phrase.
  • unk_token (str ou tokenizers.AddedToken, facultatif) — Un jeton spécial représentant un jeton hors vocabulaire.
  • sep_token (str ou tokenizers.AddedToken, facultatif) — Un jeton spécial séparant deux phrases différentes dans la même entrée (utilisé par BERT, par exemple).
  • pad_token (str ou tokenizers.AddedToken, facultatif) — Un jeton spécial utilisé pour uniformiser la taille des tableaux de jetons dans le but de créer des lots. Il sera ensuite ignoré par les mécanismes d'attention ou le calcul de la perte.
  • cls_token (str ou tokenizers.AddedToken, facultatif) — Un jeton spécial représentant la classe de l’entrée (utilisé par BERT, par exemple).
  • mask_token (str ou tokenizers.AddedToken, facultatif) — Un jeton spécial représentant un jeton masqué (utilisé par les objectifs de pré-entraînement de modélisation de langage masqué, comme BERT). Sera associé à self.mask_token et self.mask_token_id.
  • extra_special_tokens (liste de str ou tokenizers.AddedToken, facultatif) — Une liste de jetons spéciaux supplémentaires spécifiques au modèle. Ajoutez-les ici pour vous assurer qu’ils sont ignorés lors du décodage lorsque skip_special_tokens est défini sur True. S’ils ne font pas partie du vocabulaire, ils seront ajoutés à la fin du vocabulaire.
  • split_special_tokens (bool, facultatif, par défaut False) — Indique si les jetons spéciaux doivent être fractionnés lors du processus de tokenisation. La valeur transmise affecte l'état interne du tokenizer. Le comportement par défaut est de ne pas fractionner les jetons spéciaux. Cela signifie que si <s> est le bos_token, alors tokenizer.tokenize("<s>") = ['<s>]. Sinon, si split_special_tokens=True, alors tokenizer.tokenize("<s>") renverra ['<','s', '>'].

Classe de base pour les tokeniseurs basés sur SentencePiece qui chargent depuis des fichiers sentencepiece.model.

Hérite de PreTrainedTokenizer.

Gère toutes les méthodes partagées pour la tokenisation et les jetons spéciaux, ainsi que les méthodes de téléchargement, de mise en cache et de chargement des tokeniseurs pré-entraînés, et l’ajout de jetons au vocabulaire.

Cette classe contient également les jetons ajoutés de manière unifiée au-dessus de tous les tokenizers, afin de ne pas avoir à gérer les méthodes spécifiques d’augmentation du vocabulaire des différentes structures de dictionnaire sous-jacentes (BPE, sentencepiece…).

Attributs de classe (réécrits par les classes dérivées)

  • vocab_files_names (dict[str, str]) — Un dictionnaire dont les clés sont les noms des mots-clés de __init__ de chaque fichier de vocabulaire requis par le modèle, et dont les valeurs associées sont les noms de fichiers pour enregistrer le fichier associé (chaîne de caractères).
  • pretrained_vocab_files_map (dict[str, dict[str, str]]) — Un dictionnaire de dictionnaires, dont les clés de haut niveau sont les noms de mots-clés __init__ de chaque fichier de vocabulaire requis par le modèle, et les clés de bas niveau sont les short-cut-names des modèles pré-entraînés, avec, en valeurs associées, l'url du fichier de vocabulaire pré-entraîné correspondant.
  • model_input_names (list[str]) — Une liste des entrées attendues lors de la passe avant du modèle.
  • padding_side (str) — La valeur par défaut pour le côté sur lequel le modèle doit appliquer le bourrage. Doit être 'right' ou 'left'.
  • truncation_side (str) — La valeur par défaut pour le côté sur lequel le modèle doit appliquer la troncature. Doit être 'right' ou 'left'.

convert_tokens_to_string

< >

( tokens: list )

Convertit une séquence de jetons (chaîne de caractères) en une seule chaîne.

get_vocab

< >

( )

Retourne le vocabulaire sous forme de dictionnaire

save_vocabulary

< >

( save_directory: strfilename_prefix: str | None = None ) → tuple(str)

Paramètres

  • save_directory (str) — Le répertoire dans lequel enregistrer le vocabulaire.
  • filename_prefix (str, facultatif) — Préfixe facultatif à ajouter au nom des fichiers enregistrés.

Retourne

tuple(str)

Chemin des fichiers enregistrés.

Enregistrez le vocabulaire sentencepiece (copie du fichier d'origine) dans un répertoire.

BatchEncoding

classe transformers.BatchEncoding

< >

( data: dict[str, Any] | None = Noneencoding: EncodingFast | Sequence[EncodingFast] | None = Nonetensor_type: None | str | TensorType = Noneprepend_batch_axis: bool = Falsen_sequences: int | None = None )

Paramètres

  • data (dict, facultatif) — Dictionnaire de listes/tableaux/tenseurs renvoyé par les méthodes __call__/encode_plus/batch_encode_plus (‘input_ids’, ‘attention_mask’, etc.).
  • encoding (tokenizers.Encoding ou Sequence[tokenizers.Encoding], facultatif) — Si le tokenizer est un fast tokenizer qui fournit des informations supplémentaires, comme la correspondance entre l’espace des mots/caractères et l’espace des jetons, l’instance tokenizers.Encoding ou la liste d’instances (pour les lots) contient ces informations.
  • tensor_type (Union[None, str, TensorType], facultatif) — Vous pouvez indiquer un tensor_type ici pour convertir les listes d'entiers en Tensors PyTorch/Numpy lors de l'initialisation.
  • prepend_batch_axis (bool, facultatif, par défaut False) — Indique s'il faut ajouter un axe de lot lors de la conversion en tenseurs (voir tensor_type ci-dessus). Notez que ce paramètre a un effet si le paramètre tensor_type est défini, sinon il n'a aucun effet.
  • n_sequences (Optional[int], facultatif) — Le nombre de séquences d'entrée représentées par chaque encodage (None pour inconnu, 1 pour une séquence unique et 2 pour une paire de séquences).

Contient la sortie des méthodes call(), ~tokenization_utils_base.PreTrainedTokenizerBase.encode_plus et ~tokenization_utils_base.PreTrainedTokenizerBase.batch_encode_plus (jetons, attention_masks, etc.).

Cette classe est dérivée d'un dictionnaire Python et peut être utilisée comme tel. En outre, cette classe expose des méthodes utilitaires pour passer de l'espace des mots/caractères à l'espace des jetons.

char_to_token

< >

( batch_or_char_index: intchar_index: int | None = Nonesequence_index: int = 0 ) → int

Paramètres

  • batch_or_char_index (int) — Index de la séquence dans le lot. Si le lot ne comprend qu'une seule séquence, il peut s'agir de l'index du caractère dans la séquence
  • char_index (int, facultatif) — Si un index de lot est fourni dans batch_or_char_index, il peut s’agir de l’index du caractère dans la séquence.
  • sequence_index (int, facultatif, valeur par défaut 0) — Si une paire de séquences est encodée dans le lot, ce paramètre peut être utilisé pour spécifier à quelle séquence de la paire (0 ou 1) appartient l’indice de caractère fourni.

Retourne

int

Index du jeton, ou None si l'index du caractère fait référence à un jeton composé uniquement d'espaces et que les espaces sont supprimés avec trim_offsets=True.

Obtenir l'index du jeton dans la sortie encodée contenant un caractère de la chaîne originale pour une séquence du lot.

Peut être appelé de la manière suivante :

  • self.char_to_token(char_index) si la taille du lot est de 1
  • self.char_to_token(batch_index, char_index) si la taille du lot est supérieure ou égale à 1

Cette méthode est particulièrement adaptée lorsque les séquences d'entrée sont fournies sous forme de séquences pré-tokenisées (c'est-à-dire que les mots sont définis par l'utilisateur). Dans ce cas, elle permet d'associer facilement les jetons encodés aux mots tokenisés fournis.

char_to_word

< >

( batch_or_char_index: intchar_index: int | None = Nonesequence_index: int = 0 ) → int

Paramètres

  • batch_or_char_index (int) — Index de la séquence dans le lot. Si le lot ne comprend qu'une seule séquence, il peut s'agir de l'index du caractère dans la chaîne d'origine.
  • char_index (int, facultatif) — Si un index de lot est fourni dans batch_or_char_index, il peut s’agir de l’index du caractère dans la chaîne d’origine.
  • sequence_index (int, facultatif, valeur par défaut 0) — Si une paire de séquences est encodée dans le lot, ce paramètre peut être utilisé pour spécifier à quelle séquence de la paire (0 ou 1) appartient l’indice de caractère fourni.

Retourne

int

Index du mot contenant le caractère.

Obtenir le mot de la chaîne d'origine correspondant à un caractère de la chaîne d'origine d'une séquence du lot.

Peut être appelé de la manière suivante :

  • self.char_to_word(char_index) si la taille du lot est de 1
  • self.char_to_word(batch_index, char_index) si la taille du lot est supérieure à 1

Cette méthode est particulièrement adaptée lorsque les séquences d'entrée sont fournies sous forme de séquences pré-tokenisées (c'est-à-dire que les mots sont définis par l'utilisateur). Dans ce cas, elle permet d'associer facilement les jetons encodés aux mots tokenisés fournis.

convert_to_tensors

< >

( tensor_type: str | TensorType | None = Noneprepend_batch_axis: bool = False )

Paramètres

  • tensor_type (str ou TensorType, facultatif) — Le type de tenseurs à utiliser. Si str, doit être l’une des valeurs de l’enum TensorType. Si None, aucune modification n’est effectuée.
  • prepend_batch_axis (bool, facultatif, par défaut False) — Indique s'il faut ou non ajouter la dimension de lot lors de la conversion.

Convertir le contenu interne en tenseurs.

sequence_ids

< >

( batch_index: int = 0 ) → list[Optional[int]]

Paramètres

  • batch_index (int, facultatif, valeur par défaut 0) — L'index à accéder dans le lot.

Retourne

list[Optional[int]]

Une liste indiquant l'identifiant de séquence correspondant à chaque jeton. Les jetons spéciaux ajoutés par le tokeniseur sont mappés sur None et les autres jetons sont mappés sur l'index de leur séquence correspondante.

Retourne une liste associant les jetons à l'identifiant de leurs phrases d'origine :

  • None pour les jetons spéciaux ajoutés autour ou entre les séquences,
  • 0 pour les jetons correspondant aux mots de la première séquence,
  • 1 pour les jetons correspondant aux mots de la deuxième séquence lorsqu’une paire de séquences a été encodée conjointement.

à

< >

( device: str | torch.device | intnon_blocking: bool = False ) → BatchEncoding

Paramètres

  • device (str ou torch.device ou int) — L'appareil sur lequel placer les tenseurs.
  • non_blocking (bool) — Indique si la copie doit être effectuée de manière asynchrone.

Retourne

BatchEncoding

La même instance après modification.

Envoyez toutes les valeurs vers l'appareil en appelant v.to(device, non_blocking=non_blocking) (PyTorch uniquement).

token_to_chars

< >

( batch_or_token_index: inttoken_index: int | None = None ) → CharSpan

Paramètres

  • batch_or_token_index (int) — Index de la séquence dans le lot. Si le lot ne comprend qu'une seule séquence, il peut s'agir de l'index du jeton dans la séquence.
  • token_index (int, facultatif) — Si un index de lot est fourni dans batch_or_token_index, il peut s’agir de l’index du ou des jetons dans la séquence.

Retourne

CharSpan

Portée des caractères dans la chaîne d’origine, ou None, si le jeton (p. ex. , ) ne correspond à aucun caractère de la chaîne d’origine.

Obtenir l'étendue de caractères correspondant à un jeton encodé dans une séquence du lot.

Les portées de caractères sont renvoyées sous forme de CharSpan avec :

  • start — Index du premier caractère de la chaîne d'origine associé au jeton.
  • end — Index du caractère suivant le dernier caractère de la chaîne d’origine associée au jeton.

Peut être appelé de la manière suivante :

  • self.token_to_chars(token_index) si la taille du lot est de 1
  • self.token_to_chars(batch_index, token_index) si la taille du lot est supérieure ou égale à 1

token_to_sequence

< >

( batch_or_token_index: inttoken_index: int | None = None ) → int

Paramètres

  • batch_or_token_index (int) — Index de la séquence dans le lot. Si le lot ne comprend qu'une seule séquence, il peut s'agir de l'index du jeton dans la séquence.
  • token_index (int, facultatif) — Si un index de lot est fourni dans batch_or_token_index, il peut s’agir de l’index du jeton dans la séquence.

Retourne

int

Index de la séquence d'entrée contenant le jeton (0 pour la première séquence ou 1 pour la deuxième séquence d'une paire).

Obtient l'index de la séquence représentée par le jeton donné. Dans le cas d'utilisation général, cette méthode renvoie 0 pour une séquence unique ou la première séquence d'une paire, et 1 pour la deuxième séquence d'une paire

Peut être appelé de la manière suivante :

  • self.token_to_sequence(token_index) si la taille du lot est de 1
  • self.token_to_sequence(batch_index, token_index) si la taille du lot est supérieure à 1

Cette méthode est particulièrement adaptée lorsque les séquences d'entrée sont fournies sous forme de séquences pré-tokenisées (c'est-à-dire que les mots sont définis par l'utilisateur). Dans ce cas, elle permet d'associer facilement les jetons encodés aux mots tokenisés fournis.

token_to_word

< >

( batch_or_token_index: inttoken_index: int | None = None ) → int

Paramètres

  • batch_or_token_index (int) — Index de la séquence dans le lot. Si le lot ne comprend qu'une seule séquence, il peut s'agir de l'index du jeton dans la séquence.
  • token_index (int, facultatif) — Si un index de lot est fourni dans batch_or_token_index, il peut s’agir de l’index du jeton dans la séquence.

Retourne

int

Index du mot dans la séquence d'entrée.

Obtenir l'index du mot correspondant (c'est-à-dire contenant) à un jeton encodé dans une séquence du lot.

Peut être appelé de la manière suivante :

  • self.token_to_word(token_index) si la taille du lot est de 1
  • self.token_to_word(batch_index, token_index) si la taille du lot est supérieure à 1

Cette méthode est particulièrement adaptée lorsque les séquences d'entrée sont fournies sous forme de séquences pré-tokenisées (c'est-à-dire que les mots sont définis par l'utilisateur). Dans ce cas, elle permet d'associer facilement les jetons encodés aux mots tokenisés fournis.

jets

< >

( batch_index: int = 0 ) → list[str]

Paramètres

  • batch_index (int, facultatif, valeur par défaut 0) — L'index à accéder dans le lot.

Retourne

list[str]

La liste de jetons à cet index.

Retourne la liste des jetons (sous-parties des chaînes d’entrée après le découpage en mots/sous-mots et avant la conversion en indices entiers) à un index de lot donné (ne fonctionne que pour la sortie d’un tokeniseur rapide).

word_ids

< >

( batch_index: int = 0 ) → list[Optional[int]]

Paramètres

  • batch_index (int, facultatif, valeur par défaut 0) — L'index à accéder dans le lot.

Retourne

list[Optional[int]]

Une liste indiquant le mot correspondant à chaque jeton. Les jetons spéciaux ajoutés par le tokeniseur sont mappés sur None et les autres jetons sont mappés sur l'index de leur mot correspondant (plusieurs jetons seront mappés sur le même index de mot s'ils en sont des parties).

Retourne une liste associant les jetons à leur mot réel dans la phrase initiale pour un tokenizer rapide.

word_to_chars

< >

( batch_or_word_index: intword_index: int | None = Nonesequence_index: int = 0 ) → CharSpan

Paramètres

  • batch_or_word_index (int) — Index de la séquence dans le lot. Si le lot ne comprend qu'une seule séquence, il peut s'agir de l'index du mot dans la séquence
  • word_index (int, facultatif) — Si un index de lot est fourni dans batch_or_word_index, il peut s’agir de l’index du mot dans la séquence.
  • sequence_index (int, facultatif, valeur par défaut 0) — Si une paire de séquences est encodée dans le lot, ce paramètre peut être utilisé pour spécifier à laquelle des séquences de la paire (0 ou 1) appartient l’index de mot fourni.

Retourne

CharSpan

Portée du ou des caractères associés dans la chaîne. CharSpan est un NamedTuple avec :

  • start : index du premier caractère associé au mot dans la chaîne d'origine
  • end : index du caractère suivant le dernier caractère associé au mot dans la chaîne d'origine

Obtenir l'étendue de caractères dans la chaîne d'origine correspondant au mot donné dans une séquence du lot.

Les portées de caractères sont renvoyées sous forme de NamedTuple CharSpan avec :

  • start : index du premier caractère dans la chaîne d'origine
  • end : index du caractère suivant le dernier caractère de la chaîne d'origine

Peut être appelé de la manière suivante :

  • self.word_to_chars(word_index) si la taille du lot est de 1
  • self.word_to_chars(batch_index, word_index) si la taille du lot est supérieure ou égale à 1

word_to_tokens

< >

( batch_or_word_index: intword_index: int | None = Nonesequence_index: int = 0 ) → (TokenSpan, optional)

Paramètres

  • batch_or_word_index (int) — Index de la séquence dans le lot. Si le lot ne comprend qu'une seule séquence, il peut s'agir de l'index du mot dans la séquence.
  • word_index (int, facultatif) — Si un index de lot est fourni dans batch_or_word_index, il peut s’agir de l’index du mot dans la séquence.
  • sequence_index (int, facultatif, valeur par défaut 0) — Si une paire de séquences est encodée dans le lot, ce paramètre peut être utilisé pour spécifier à laquelle des séquences de la paire (0 ou 1) appartient l’index de mot fourni.

Retourne

(TokenSpan, facultatif)

Portée des jetons dans la séquence encodée. Renvoie None si aucun jeton ne correspond au mot. Cela peut se produire en particulier lorsque le jeton est un jeton spécial utilisé pour formater la tokenisation. Par exemple, lorsque nous ajoutons un jeton de classe au tout début de la tokenisation.

Obtenir l'étendue de jetons encodés correspondant à un mot dans une séquence du lot.

Les plages de jetons sont renvoyées sous forme de TokenSpan avec :

  • start — Index du premier jeton.
  • end — Index du jeton suivant le dernier jeton.

Peut être appelé de la manière suivante :

  • self.word_to_tokens(word_index, sequence_index: int = 0) si la taille du lot est de 1
  • self.word_to_tokens(batch_index, word_index, sequence_index: int = 0) si la taille du lot est supérieure ou égale à 1

Cette méthode est particulièrement adaptée lorsque les séquences d'entrée sont fournies sous forme de séquences pré-tokenisées (c'est-à-dire que les mots sont définis par l'utilisateur). Dans ce cas, elle permet d'associer facilement les jetons encodés aux mots tokenisés fournis.

Update on GitHub