Transformers documentation
Utilitaires pour les tokenizers
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
< source >( **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é dansmax_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 (
stroutokenizers.AddedToken, facultatif) — Un jeton spécial représentant le début d'une phrase. - eos_token (
stroutokenizers.AddedToken, facultatif) — Un jeton spécial représentant la fin d'une phrase. - unk_token (
stroutokenizers.AddedToken, facultatif) — Un jeton spécial représentant un jeton hors vocabulaire. - sep_token (
stroutokenizers.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 (
stroutokenizers.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 (
stroutokenizers.AddedToken, facultatif) — Un jeton spécial représentant la classe de l’entrée (utilisé par BERT, par exemple). - mask_token (
stroutokenizers.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_tokenetself.mask_token_id. - extra_special_tokens (liste de
stroutokenizers.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 lorsqueskip_special_tokensest 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éfautFalse) — 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 lebos_token, alorstokenizer.tokenize("<s>") = ['<s>]. Sinon, sisplit_special_tokens=True, alorstokenizer.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 lesshort-cut-namesdes modèles pré-entraînés, avec, en valeurs associées, l'urldu 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__
< source >( 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éfiniris_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éfiniris_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éfiniris_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éfiniris_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éfautTrue) — Indique s'il faut ajouter des jetons spéciaux lors de l'encodage des séquences. Cela utilise la fonction sous-jacentePretrainedTokenizerBase.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 jetonsbosoueos. - padding (
bool,strou PaddingStrategy, facultatif, défaut :False) — Active et contrôle le padding. Accepte les valeurs suivantes :Trueou'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'argumentmax_lengthou jusqu'à la longueur d'entrée maximale acceptable pour le modèle si cet argument n'est pas fourni.Falseou'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,strou TruncationStrategy, facultatif, défaut :False) — Active et contrôle la troncature. Accepte les valeurs suivantes :Trueou'longest_first': Tronquer à une longueur maximale spécifiée avec l’argumentmax_lengthou à 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'argumentmax_lengthou à 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'argumentmax_lengthou à 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.Falseou'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 avecmax_length, les jetons en dépassement renvoyés lorsquereturn_overflowing_tokens=Truecontiendront 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éfautFalse) — 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 depadding. 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 (
strou TensorType, facultatif) — Si défini, renvoie des tenseurs au lieu d'une liste d'entiers Python. Les valeurs acceptées sont :'pt': Renvoie des objetstorch.Tensorde PyTorch.'np': Renvoie des objets Numpynp.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'attributreturn_outputs. - 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'attributreturn_outputs. - return_overflowing_tokens (
bool, facultatif, par défautFalse) — 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 avectruncation_strategy = longest_firstouTrue, une erreur est levée au lieu de retourner les jetons en dépassement. - return_special_tokens_mask (
bool, facultatif, par défautFalse) — Indique s'il faut ou non retourner les informations du masque des jetons spéciaux. - return_offsets_mapping (
bool, facultatif, par défautFalse) — 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éfautFalse) — Indique s'il faut retourner les longueurs des entrées encodées. - verbose (
bool, facultatif, par défautTrue) — Indique s'il faut afficher plus d'informations et d'avertissements. - **kwargs — transmis à la méthode
self.tokenize()
Retourne
Un BatchEncoding avec les champs suivants :
-
input_ids — Liste des identifiants de jetons à fournir à un modèle.
-
token_type_ids — Liste des identifiants de type de jeton à fournir à un modèle (lorsque
return_token_type_ids=Trueou si “token_type_ids” est présent dansself.model_input_names). -
attention_mask — Liste d’indices spécifiant les jetons auxquels le modèle doit prêter attention (lorsque
return_attention_mask=Trueou si “attention_mask” est présent dansself.model_input_names). -
overflowing_tokens — Liste des séquences de jetons en dépassement (lorsqu'une
max_lengthest spécifiée etreturn_overflowing_tokens=True). -
num_truncated_tokens — Nombre de jetons tronqués (lorsqu'une
max_lengthest spécifiée etreturn_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=Trueetreturn_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
< source >( 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, ouSequence[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éfautTrue) — SiTrue, la liste existante des jetons spéciaux supplémentaires sera remplacée par la liste fournie dansspecial_tokens_dict. Sinon,extra_special_tokenssera é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 leadded_tokens_encoderet leadded_tokens_decoder. Cela signifie que lesextra_special_tokenspré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
< source >( new_tokens: str | AddedToken | Sequence[str | AddedToken]special_tokens: bool = False ) → int
Paramètres
- new_tokens (
str,tokenizers.AddedTokenou une séquence de str outokenizers.AddedToken) — Les jetons ne sont ajoutés que s’ils ne figurent pas déjà dans le vocabulaire.tokenizers.AddedTokenencapsule 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éfautFalse) — Indique si le jeton est spécial. Cela modifie principalement le comportement de normalisation. Voir les détails detokenizers.AddedTokendans 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
Metaspaceutilisantprepend_scheme="always"(par ex. NLLB) ajoutent"▁"au texte qui suit un jeton ajouté. Aprèstokenizer.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
< source >( 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éfautTrue) — Indique s'il faut tokeniser la sortie. SiFalse, la sortie sera une chaîne de caractères. - sanitize_control_tokens (
bool, par défautFalse) — 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 danstokenizer.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,strou 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 :Trueou'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'argumentmax_lengthou jusqu'à la longueur d'entrée maximale acceptable pour le modèle si cet argument n'est pas fourni.Falseou'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éfautFalse) — Indique s'il faut tronquer les séquences à la longueur maximale. N'a aucun effet si tokenize estFalse. - max_length (
int, facultatif) — Longueur maximale (en jetons) à utiliser pour le bourrage ou la troncature. N’a aucun effet si tokenize estFalse. Si non spécifié, l’attributmax_lengthdu tokeniseur sera utilisé par défaut. - return_tensors (
strou TensorType, facultatif) — Si défini, renvoie des tenseurs d'un framework particulier. N'a aucun effet si tokenize estFalse. Les valeurs acceptables sont :'pt': Renvoie des objetstorch.Tensorde PyTorch.'np': Renvoie des objets NumPynp.ndarray.
- return_dict (
bool, par défautTrue) — Indique s'il faut retourner un dictionnaire avec des sorties nommées. N'a aucun effet si tokenize estFalse. - tokenizer_kwargs (
dict[str -- Any], facultatif) : Arguments supplémentaires à passer au tokenizer. - return_assistant_tokens_mask (
bool, par défautFalse) — 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
< source >( 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éfautFalse) — 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. SiNone, la valeur par défaut estself.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.
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
< source >( ids: int | list[int]skip_special_tokens: bool = False ) → str or list[str]
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
< source >( tokens: str | list[str] ) → int or list[int]
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
< source >( tokens: list[str] ) → str
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
< source >( 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éfautFalse) — 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
< source >( 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]oulist[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éthodetokenize) ou d’une liste d’entiers (identifiants de tokens d’une chaîne tokenisée à l’aide de la méthodeconvert_tokens_to_ids). - text_pair (
str,list[str]oulist[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éthodetokenize) ou d’une liste d’entiers (identifiants de tokens d’une chaîne tokenisée à l’aide de la méthodeconvert_tokens_to_ids). - add_special_tokens (
bool, facultatif, par défautTrue) — Indique s'il faut ajouter des jetons spéciaux lors de l'encodage des séquences. Cela utilise la fonction sous-jacentePretrainedTokenizerBase.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 jetonsbosoueos. - padding (
bool,strou PaddingStrategy, facultatif, défaut :False) — Active et contrôle le padding. Accepte les valeurs suivantes :Trueou'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'argumentmax_lengthou jusqu'à la longueur d'entrée maximale acceptable pour le modèle si cet argument n'est pas fourni.Falseou'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,strou TruncationStrategy, facultatif, défaut :False) — Active et contrôle la troncature. Accepte les valeurs suivantes :Trueou'longest_first': Tronquer à une longueur maximale spécifiée avec l’argumentmax_lengthou à 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'argumentmax_lengthou à 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'argumentmax_lengthou à 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.Falseou'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 avecmax_length, les jetons en dépassement renvoyés lorsquereturn_overflowing_tokens=Truecontiendront 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éfautFalse) — 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 depadding. 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 (
strou TensorType, facultatif) — Si défini, renvoie des tenseurs au lieu d'une liste d'entiers Python. Les valeurs acceptées sont :'pt': Renvoie des objetstorch.Tensorde PyTorch.'np': Renvoie des objets Numpynp.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
< source >( 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
< source >( 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 (
strouos.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 (
strouos.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éfautFalse) — 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 (
strou bool, facultatif) — Le jeton à utiliser comme autorisation bearer HTTP pour les fichiers distants. SiTrue, utilise le jeton généré lors de l’exécution dehf auth login(stocké dans~/.huggingface). - local_files_only (
bool, facultatif, valeur par défautFalse) — 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 querevisionpeut ê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éfautFalse) — 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 surTrueque 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 quebos_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=Trueest 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
< source >( 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
< source >( 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
< source >( 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.
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
< source >( 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]]oulist[dict[str, list[int]]]) — Entrées tokenisées. Peut représenter une seule entrée (BatchEncoding oudict[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,strou 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 :Trueou'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'argumentmax_lengthou jusqu'à la longueur d'entrée maximale acceptable pour le modèle si cet argument n'est pas fourni.Falseou'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'attributreturn_outputs. - return_tensors (
strou TensorType, facultatif) — Si défini, renvoie des tenseurs au lieu d'une liste d'entiers Python. Les valeurs acceptées sont :'pt': Renvoie des objetstorch.Tensorde PyTorch.'np': Renvoie des objets Numpynp.ndarray.
- verbose (
bool, facultatif, par défautTrue) — 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_inputstransmis 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 avecreturn_tensors. Dans le cas des tenseurs PyTorch, vous perdrez toutefois l’appareil spécifique de vos tenseurs.
parse_response
< source >( 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 dansprefix). - 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’attributresponse_templatedu 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 unresponsepar 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é parapply_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"devient7pour 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
< source >( 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é. SiNone(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 (
booloustr, facultatif) — Le jeton à utiliser comme autorisation bearer HTTP pour les fichiers distants. SiTrue(par défaut), le jeton généré lors de l’exécution dehf 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éfautFalse) — Indique s'il faut créer une PR avec les fichiers téléversés ou effectuer un commit direct. - max_shard_size (
intoustr, 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
< source >( auto_class = 'AutoTokenizer' )
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
< source >( 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
< source >( 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 (
strouos.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éfautFalse) — 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 avecrepo_id(par défaut, il s'agit du nom desave_directorydans 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
< source >( save_directory: strfilename_prefix: str | None = None ) → tuple(str)
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
< source >( 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éfautFalse) — 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
< source >( 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
< source >( start: ForwardRef('int')end: ForwardRef('int') )
Portée des caractères dans la chaîne d'origine.
classe transformers.TokenSpan
< source >( start: ForwardRef('int')end: ForwardRef('int') )
Portée du jeton dans une chaîne encodée (liste de jetons).