Transformers documentation

Utilitaires pour les tokenizers

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.2).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Utilitaires pour les tokenizers

Cette page répertorie toutes les fonctions utilitaires utilisées par les tokenizers, principalement la classe PreTrainedTokenizerBase qui implémente les méthodes communes entre PreTrainedTokenizer et PreTrainedTokenizerFast.

La plupart de ces éléments ne sont utiles que si vous étudiez le code des tokenizers de la bibliothèque.

PreTrainedTokenizerBase

classe transformers.PreTrainedTokenizerBase

< >

( **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 backends de tokenizers.

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

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

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.

clean_up_tokenization

< >

( text: str )

Nettoyer les espaces de tokenisation dans un texte donné. Cette méthode est principalement destinée à la prise en charge du code distant.

convert_ids_to_tokens

< >

( ids: int | list[int]skip_special_tokens: bool = False ) → str or list[str]

Paramètres

  • ids (int ou list[int]) — L'identifiant de jeton (ou les identifiants de jetons) à convertir en jetons.
  • skip_special_tokens (bool, facultatif, valeur par défaut False) — Indique s'il faut supprimer les jetons spéciaux lors du décodage.

Retourne

str ou list[str]

Le(s) jeton(s) décodé(s).

Convertit un index unique ou une séquence d’indices en un jeton ou une séquence de jetons, en utilisant le vocabulaire et les jetons ajoutés.

convert_tokens_to_ids

< >

( tokens: str | list[str] ) → int or list[int]

Paramètres

  • tokens (str ou list[str]) — Un ou plusieurs jeton(s) à convertir en identifiant(s) de jeton(s).

Retourne

int ou list[int]

L'identifiant du jeton ou la liste des identifiants de jetons.

Convertit une chaîne de jetons (ou une séquence de jetons) en un identifiant entier unique (ou une séquence d'identifiants), en utilisant le vocabulaire.

convert_tokens_to_string

< >

( tokens: list[str] ) → str

Paramètres

  • tokens (list[str]) — Le jeton à concaténer dans une chaîne.

Retourne

str

Les jetons fusionnés.

Convertit une séquence de jetons en une seule chaîne de caractères. La méthode la plus simple est " ".join(tokens), mais nous souhaitons souvent supprimer en même temps les artefacts de la tokenisation sous-mot.

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

encode_message_with_chat_template

< >

( message: dict[str, str]conversation_history: list[dict[str, str]] | None = None**kwargs ) → list[int]

Paramètres

  • message (dict) — Un dictionnaire avec les clés « role » et « content », représentant le message à tokeniser.
  • conversation_history (list[dict], facultatif) — Une liste de dictionnaires avec les clés « role » et « content », représentant l’historique de la conversation jusqu’à présent. Si vous tokenisez les messages un par un, vous devez passer ici les messages précédents de la conversation.
  • **kwargs — Kwargs supplémentaires à passer à la méthode apply_chat_template.

Retourne

list[int]

Une liste d'identifiants de jetons représentant le message tokenisé.

Tokenise un message unique. Cette méthode est un wrapper pratique autour de apply_chat_template qui permet de tokeniser les messages un par un. Cela est utile pour des tâches comme le streaming token par token. Cette méthode n'est pas garantie d'être parfaite. Pour certains modèles, il peut être impossible de tokeniser robustement des messages uniques. Par exemple, si le modèle de chat ajoute des tokens après chaque message, mais possède également un préfixe qui est ajouté à la conversation entière, il sera impossible de distinguer un token de début de chat d'un token de début de message. Dans ces cas, cette méthode fera de son mieux pour trouver la tokenisation correcte, mais elle peut ne pas être parfaite. Remarque : Cette méthode ne prend pas en charge add_generation_prompt. Si vous souhaitez ajouter un prompt de génération, vous devez le faire séparément après avoir tokenisé la conversation.

from_pretrained

< >

( pretrained_model_name_or_path: str | os.PathLike*init_inputscache_dir: str | os.PathLike | None = Noneforce_download: bool = Falselocal_files_only: bool = Falsetoken: str | bool | None = Nonerevision: str = 'main'trust_remote_code = False**kwargs )

Paramètres

  • pretrained_model_name_or_path (str ou os.PathLike) — Peut être l'un des éléments suivants :
    • Une chaîne de caractères, l'identifiant du modèle d'un tokeniseur prédéfini hébergé dans un dépôt de modèles sur huggingface.co.
    • Chemin vers un dossier contenant les fichiers de vocabulaire requis par le tokenizer, par exemple enregistrés à l’aide de la méthode save_pretrained(), par exemple ./my_model_directory/.
    • (Déprécié, ne s’applique pas à toutes les classes dérivées) un chemin vers un fichier de vocabulaire unique enregistré (si et seulement si le tokeniseur n’exige qu’un seul fichier de vocabulaire, comme Bert ou XLNet), par exemple ./my_model_directory/vocab.txt.
  • cache_dir (str ou os.PathLike, facultatif) — Chemin vers un répertoire dans lequel les fichiers de vocabulaire de tokenizer prédéfinis téléchargés doivent être mis en cache si le cache standard ne doit pas être utilisé.
  • force_download (bool, facultatif, par défaut False) — Indique s'il faut forcer le (re)téléchargement des fichiers de vocabulaire et remplacer les versions en cache si elles existent.
  • proxies (dict[str, str], facultatif) — Un dictionnaire de serveurs proxy à utiliser par protocole ou point de terminaison, par exemple {'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}. Les proxys sont utilisés pour chaque requête.
  • token (str ou bool, facultatif) — Le jeton à utiliser comme autorisation bearer HTTP pour les fichiers distants. Si True, utilise le jeton généré lors de l’exécution de hf auth login (stocké dans ~/.huggingface).
  • local_files_only (bool, facultatif, valeur par défaut False) — Indique s'il faut s'appuyer uniquement sur les fichiers locaux et ne pas tenter de télécharger de fichiers.
  • revision (str, facultatif, par défaut "main") — La version spécifique du modèle à utiliser. Il peut s’agir du nom d’une branche, du nom d’une étiquette ou d’un identifiant de commit, car nous utilisons un système basé sur git pour stocker les modèles et autres artefacts sur huggingface.co, de sorte que revision peut être n’importe quel identifiant autorisé par git.
  • subfolder (str, facultatif) — Si les fichiers pertinents se trouvent dans un sous-dossier du dépôt de modèle sur huggingface.co (par exemple pour facebook/rag-token-base), spécifiez-le ici.
  • inputs (arguments positionnels supplémentaires, facultatifs) — Seront transmis à la méthode __init__ du Tokenizer.
  • trust_remote_code (bool, facultatif, valeur par défaut False) — Indique s'il faut autoriser les modèles personnalisés définis sur le Hub dans leurs propres fichiers de modélisation. Cette option ne doit être définie sur True que pour les dépôts de confiance dont vous avez lu le code, car cela exécutera le code présent sur le Hub sur votre machine locale.
  • kwargs (arguments supplémentaires par mot-clé, facultatif) — Sera transmis à la méthode __init__ du Tokenizer. Peut être utilisé pour définir des jetons spéciaux tels que bos_token, eos_token, unk_token, sep_token, pad_token, cls_token, mask_token, extra_special_tokens. Consultez les paramètres de __init__ pour plus de détails.

Instanciez un PreTrainedTokenizerBase (ou une classe dérivée) à partir d'un tokenizer prédéfini.

Passer token=True est obligatoire lorsque vous souhaitez utiliser un modèle privé.

Exemples :

# We can't instantiate directly the base class *PreTrainedTokenizerBase* so let's show our examples on a derived class: BertTokenizer
# Download vocabulary from huggingface.co and cache.
tokenizer = BertTokenizer.from_pretrained("google-bert/bert-base-uncased")

# Download vocabulary from huggingface.co (user-uploaded) and cache.
tokenizer = BertTokenizer.from_pretrained("dbmdz/bert-base-german-cased")

# If vocabulary files are in a directory (e.g. tokenizer was saved using *save_pretrained('./test/saved_model/')*)
tokenizer = BertTokenizer.from_pretrained("./test/saved_model/")

# If the tokenizer uses a single vocabulary file, you can point directly to this file
tokenizer = BertTokenizer.from_pretrained("./test/saved_model/my_vocab.txt")

# You can link tokens to special vocabulary when instantiating
tokenizer = BertTokenizer.from_pretrained("google-bert/bert-base-uncased", unk_token="<unk>")
# You should be sure '<unk>' is in the vocabulary when doing that.
# Otherwise use tokenizer.add_special_tokens({'unk_token': '<unk>'}) instead)
assert tokenizer.unk_token == "<unk>"

get_chat_template

< >

( chat_template: str | None = Nonetools: list[dict] | None = None ) → str

Paramètres

  • chat_template (str, facultatif) — Un modèle Jinja ou le nom d’un modèle à 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.
  • tools (list[Dict], facultatif) — Une liste d’outils (fonctions appelables) qui seront accessibles au modèle. Si le modèle de dialogue ne prend pas en charge l’appel de fonctions, cet argument n’aura aucun effet. Chaque outil doit être transmis sous forme de schéma JSON, indiquant le nom, la description et les types d’arguments de l’outil. Consultez notre guide sur les modèles de dialogue pour plus d’informations.

Retourne

str

La chaîne de caractères du modèle de discussion.

Récupère la chaîne de modèle de conversation utilisée pour la tokenisation des messages de chat. Ce modèle est utilisé internalement par la méthode apply_chat_template et peut également être utilisé en externe pour récupérer le modèle de conversation du modèle afin de mieux suivre la génération.

get_response_parser

< >

( response_template: dict | None = Noneprefix: str | list[int] | np.ndarray | torch.Tensor | None = Nonetools: list[dict | Callable] | None = None )

Retourne un ResponseParser avec état pour l’analyse incrémentale d’une réponse diffusée en continu. Utilise l’attribut response_template du tokenizer, sauf en cas de remplacement.

prefix (une chaîne de caractères, une liste d’identifiants de jetons ou un tenseur 1D) est obligatoire : le flux est initialisé dans l’état implicite du contexte de la requête de discussion (tronqué à droite au-delà de l’start_anchor de la spécification), de sorte que les fragments générés fournis via stream.feed() sont classés correctement, même lorsque le modèle de discussion a émis du contenu de tour d’assistant (par exemple, <think>\n) à partir duquel le modèle continue. L’omission de ce paramètre provoque une erreur ; si le flux démarre réellement d’un tour d’assistant propre, passez prefix="" pour désactiver ce comportement.

tools (list[Union[Dict, Callable]], facultatif) : outils disponibles pour le modèle, au même format que celui accepté par apply_chat_template. Lorsqu’ils sont définis, les arguments d’appel d’outil sont convertis en utilisant le schéma JSON de l’outil appelé à la fermeture de chaque région, de sorte que les événements de streaming region_close contiennent des arguments typés.

get_special_tokens_mask

< >

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

Paramètres

  • token_ids_0 — Liste des identifiants de la séquence (éventuellement déjà formatée).
  • token_ids_1 — Non utilisé lorsque already_has_special_tokens=True. Doit être None dans ce cas.
  • already_has_special_tokens — Indique si la séquence est déjà formatée avec des jetons spéciaux.

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érer les identifiants de séquences à partir d'une liste de jetons à laquelle aucun jeton spécial n'a été ajouté.

Pour les tokenizers rapides, les data collators appellent cette fonction avec already_has_special_tokens=True pour construire un masque sur une séquence déjà formatée. Dans ce cas, nous calculons le masque en vérifiant l’appartenance à all_special_ids.

get_vocab

< >

( ) → dict[str, int]

Retourne

dict[str, int]

Le vocabulaire.

Retourne le vocabulaire sous forme de dictionnaire associant chaque jeton à son index.

tokenizer.get_vocab()[token] est équivalent à tokenizer.convert_tokens_to_ids(token) lorsque token est dans le vocabulaire.

pad

< >

( encoded_inputs: BatchEncoding | list[BatchEncoding] | dict[str, EncodedInput] | dict[str, list[EncodedInput]] | list[dict[str, EncodedInput]]padding: bool | str | PaddingStrategy = Truemax_length: int | None = Nonepad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_attention_mask: bool | None = Nonereturn_tensors: str | TensorType | None = Noneverbose: bool = True )

Paramètres

  • encoded_inputs (BatchEncoding, liste de BatchEncoding, dict[str, list[int]], dict[str, list[list[int]] ou list[dict[str, list[int]]]) — Entrées tokenisées. Peut représenter une seule entrée (BatchEncoding ou dict[str, list[int]]) ou un lot d'entrées tokenisées (liste de BatchEncoding, dict[str, list[list[int]]] ou list[dict[str, list[int]]]) afin que vous puissiez utiliser cette méthode lors de la prétraitement ainsi que dans une fonction de collation de PyTorch Dataloader.

    Au lieu de list[int], vous pouvez avoir des tenseurs (tableaux numpy ou tenseurs PyTorch), voir la note ci-dessus pour le type de retour.

  • padding (bool, str ou PaddingStrategy, facultatif, défaut : True) — 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' (par défaut) : Rembourrer jusqu'à la séquence la plus longue du lot (ou aucun rembourrage 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' : aucun padding (c’est-à-dire, peut produire un lot avec des séquences de longueurs différentes).
  • max_length (int, facultatif) — Longueur maximale de la liste renvoyée et, le cas échéant, longueur du bourrage (voir ci-dessus).
  • pad_to_multiple_of (int, facultatif) — Si défini, la séquence est rembourrée jusqu'à un multiple de la valeur fournie.

    C'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_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_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.
  • verbose (bool, facultatif, par défaut True) — Indique s'il faut afficher plus d'informations et d'avertissements.

Rembourrer une seule entrée encodée ou un lot d’entrées encodées jusqu’à une longueur prédéfinie ou jusqu’à la longueur de séquence maximale du lot.

Les identifiants de jetons de bourrage (côté gauche/droite) sont définis au niveau du tokeniseur (avec self.padding_side, self.pad_token_id et self.pad_token_type_id).

Veuillez noter qu’avec un tokenizer rapide, l’utilisation de la méthode __call__ est plus rapide que l’utilisation d’une méthode pour encoder le texte suivie d’un appel à la méthode pad pour obtenir un encodage avec bourrage.

Si les encoded_inputs transmis sont un dictionnaire de tableaux numpy ou de tenseurs PyTorch, le résultat utilisera le même type, sauf si vous spécifiez un type de tenseur différent avec return_tensors. Dans le cas des tenseurs PyTorch, vous perdrez toutefois l’appareil spécifique de vos tenseurs.

parse_response

< >

( response: str | list[int] | list[str] | list[list[int]] | np.ndarray | torch.Tensorschema: dict | None = Noneprefix: str | list[int] | list[str] | list[list[int]] | np.ndarray | torch.Tensor | None = Nonetools: list[dict | Callable] | None = None )

Paramètres

  • response (str, identifiants de jetons, tenseur 1D/2D ou une liste de ces éléments) — La sortie générée par le modèle. Soit du texte décodé, soit des identifiants de jetons, sous forme d'une seule séquence (str / list[int] / tableau 1D / tenseur 1D) ou d'un lot (list[str] / list[list[int]] / tableau 2D / tenseur 2D). Notez que cela doit contenir uniquement la sortie du modèle, et non le texte du prompt précédent (celui-ci se trouve dans prefix).
  • schema (dict, facultatif) — Un modèle de réponse qui indique le format de sortie attendu et la manière dont l’analyse doit être effectuée. S’il n’est pas fourni, l’attribut response_template du tokenizer sera utilisé.
  • prefix (str, identifiants de jetons, tenseur 1D/2D ou une liste de ces éléments) — Le prompt qui précédait la génération. Cela est nécessaire car de nombreux modèles de chat pré-écrivent une partie du message, il faut donc voir le prompt pour l’analyser correctement. Pour un response par lot, passez soit un préfixe unique (diffusé à chaque élément), soit un préfixe par élément.
  • tools (list[Union[Dict, Callable]], facultatif) — Outils disponibles pour le modèle, dans le même format que celui accepté par apply_chat_template. Lorsqu’ils sont fournis, les arguments d’appel d’outil sont convertis en utilisant le schéma JSON de l’outil appelé : "7" devient 7 pour un paramètre entier, mais reste "7" pour un paramètre de type chaîne.

Convertit une chaîne de sortie créée en générant du texte à partir d'un modèle en un dictionnaire de message analysé. Cette méthode est destinée à être utilisée avec des modèles de chat et lit l'attribut response_template du tokenizer pour contrôler l'analyse, à moins qu'un argument schema ne soit passé directement.

Accepte soit une séquence unique, soit un lot. Une séquence unique (une chaîne de caractères, ou une séquence 1D d’identifiants de jetons) renvoie un message analysé dict ; un lot (une liste de chaînes de caractères, une liste de séquences d’identifiants de jetons, ou un tenseur / tableau 2D) renvoie une list de messages analysés de type dict, un par élément.

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

register_for_auto_class

< >

( auto_class = 'AutoTokenizer' )

Paramètres

  • auto_class (str ou type, facultatif, par défaut "AutoTokenizer") — La classe auto avec laquelle enregistrer ce nouveau tokenizer.

Enregistrez cette classe avec une classe auto donnée. Cela ne doit être utilisé que pour les tokenizers personnalisés, car ceux de la bibliothèque sont déjà associés à AutoTokenizer.

save_chat_templates

< >

( save_directory: str | os.PathLiketokenizer_config: dictfilename_prefix: str | Nonesave_jinja_files: bool )

Écrit les modèles de discussion dans le répertoire de sauvegarde si nous utilisons le nouveau format, et les supprime de la configuration du tokenizer s’ils y sont présents. Si nous utilisons le format hérité, il n’écrit aucun fichier et écrit à la place les modèles dans la configuration du tokenizer au format approprié.

save_pretrained

< >

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

Paramètres

  • save_directory (str ou os.PathLike) — Le chemin vers le répertoire où le tokenizer sera enregistré.
  • legacy_format (bool, facultatif) — Applicable uniquement aux tokenizers rapides. Si non défini (par défaut), le tokenizer est enregistré au format JSON unifié ainsi qu'au format legacy s'il existe, c'est-à-dire avec un vocabulaire spécifique au tokenizer et des fichiers added_tokens séparés.

    Si False, seul le tokenizer sera enregistré au format JSON unifié. Ce format est incompatible avec les tokenizers « lents » (non basés sur la bibliothèque tokenizers), de sorte que le tokenizer ne pourra pas être chargé dans le tokenizer « lent » correspondant.

    Si True, le tokenizer est enregistré au format legacy. Si le tokenizer « slow » n’existe pas, une erreur de valeur est levée.

  • filename_prefix (str, facultatif) — Un préfixe à ajouter aux noms des fichiers enregistrés par le tokenizer.
  • push_to_hub (bool, facultatif, par défaut False) — Indique s'il faut ou non pousser votre modèle sur le hub de modèles Hugging Face après l'avoir enregistré. Vous pouvez spécifier le dépôt auquel vous souhaitez pousser avec repo_id (par défaut, il s'agit du nom de save_directory dans votre espace de noms).
  • 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.

Cette méthode s’assure que le tokenizer complet peut ensuite être rechargé à l’aide de la méthode de classe ~tokenization_utils_base.PreTrainedTokenizer.from_pretrained.

Warning,None Cela n'enregistrera pas les modifications que vous avez pu apporter au tokenizer après l'instantiation (par exemple, la modification de tokenizer.do_lower_case après la création).

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.

Enregistrer uniquement le vocabulaire du tokenizer (vocabulaire + jetons ajoutés).

Cette méthode ne sauvegarde pas la configuration ni les correspondances des jetons spéciaux du tokenizer. Utilisez _save_pretrained() pour sauvegarder l’état complet du tokenizer.

tokenize

< >

( text: strpair: str | None = Noneadd_special_tokens: bool = False**kwargs ) → list[str]

Paramètres

  • text (str) — La séquence à encoder.
  • pair (str, facultatif) — Une deuxième séquence à encoder avec la première.
  • add_special_tokens (bool, facultatif, par défaut False) — Indique s'il faut ajouter les jetons spéciaux associés au modèle correspondant.
  • kwargs (arguments supplémentaires par mot-clé, facultatif) — Sera transmis à la méthode d'encodage spécifique du modèle sous-jacent. Voir les détails dans call()

Retourne

list[str]

La liste de jetons.

Convertit une chaîne de caractères en une séquence de jetons, en remplaçant les jetons inconnus par unk_token.

Énumérations et namedtuples

classe transformers.tokenization_utils_base.TruncationStrategy

< >

( valuenames = Nonemodule = Nonequalname = Nonetype = Nonestart = 1boundary = None )

Valeurs possibles pour l'argument truncation dans PreTrainedTokenizerBase.call(). Utile pour l'achèvement de code par tabulation dans un IDE.

classe transformers.CharSpan

< >

( start: ForwardRef('int')end: ForwardRef('int') )

Paramètres

  • start (int) — Index du premier caractère dans la chaîne d’origine.
  • end (int) — Index du caractère suivant le dernier caractère de la chaîne d'origine.

Portée des caractères dans la chaîne d'origine.

classe transformers.TokenSpan

< >

( start: ForwardRef('int')end: ForwardRef('int') )

Paramètres

  • start (int) — Index du premier jeton de la portée.
  • end (int) — Index du jeton suivant le dernier jeton de la portée.

Portée du jeton dans une chaîne encodée (liste de jetons).

Update on GitHub