Transformers documentation
Tokenizer
Tokenizer
Un tokenizer est chargé de préparer les entrées pour un modèle. La bibliothèque contient des tokenizers pour tous les modèles. La plupart des tokenizers sont disponibles en deux versions : une implémentation Python complète et une implémentation « Fast » basée sur la bibliothèque Rust 🤗 Tokenizers. Les implémentations « Fast » permettent :
- un gain de vitesse significatif, en particulier lors de la tokenisation par lots et
- méthodes supplémentaires pour effectuer la correspondance entre la chaîne de caractères d'origine (caractères et mots) et l'espace des jetons (par exemple, obtenir l'index du jeton contenant un caractère donné ou la plage de caractères correspondant à un jeton donné).
Les classes de base PreTrainedTokenizer et PreTrainedTokenizerFast implémentent les méthodes communes pour encoder les entrées de type chaîne en entrées de modèle (voir ci-dessous) et pour instancier/enregistrer des tokenizers Python et « Fast », que ce soit à partir d’un fichier ou d’un répertoire local, ou à partir d’un tokenizer pré-entraîné fourni par la bibliothèque (téléchargé depuis le dépôt AWS S3 de HuggingFace). Les deux reposent sur PreTrainedTokenizerBase, qui contient les méthodes communes.
PreTrainedTokenizer et PreTrainedTokenizerFast implémentent ainsi les principales méthodes pour utiliser tous les tokenizers :
- La tokenisation (découpage des chaînes en sous-mots), la conversion des chaînes de jetons en identifiants et inversement, ainsi que l’encodage/décodage (c’est-à-dire la tokenisation et la conversion en entiers).
- Ajout de nouveaux jetons au vocabulaire de manière indépendante de la structure sous-jacente (BPE, SentencePiece…).
- Gérer les jetons spéciaux (comme mask, beginning-of-sentence, etc.) : les ajouter, leur attribuer des attributs dans le tokenizer pour un accès facile et s'assurer qu'ils ne sont pas fractionnés lors de la tokenization.
BatchEncoding contient la sortie des méthodes d’encodage de PreTrainedTokenizerBase (__call__, encode_plus et batch_encode_plus) et est dérivée d’un dictionnaire Python. Lorsque le tokenizer est un tokenizer en Python pur, cette classe se comporte comme un dictionnaire Python standard et contient les différentes entrées du modèle calculées par ces méthodes (input_ids, attention_mask…). Lorsque le tokenizer est un tokenizer « Fast » (c’est-à-dire basé sur la tokenizers library de HuggingFace), cette classe fournit en outre plusieurs méthodes avancées d’alignement qui permettent de mapper entre la chaîne de caractères d’origine (caractères et mots) et l’espace des jetons (par exemple, obtenir l’index du jeton contenant un caractère donné ou l’étendue de caractères correspondant à un jeton donné).
Tokeniseur multimodal
En dehors de cela, chaque tokenizer peut être un tokenizer « multimodal », ce qui signifie que le tokenizer conservera tous les jetons spéciaux pertinents en tant qu'attributs du tokenizer pour un accès plus facile. Par exemple, si le tokenizer est chargé à partir d'un modèle vision-langage comme LLaVA, vous pourrez accéder à tokenizer.image_token_id pour obtenir le jeton d'image spécial utilisé comme espace réservé.
Pour activer des jetons spéciaux supplémentaires pour tout type de tokenizer, vous devez ajouter les lignes suivantes et enregistrer le tokenizer. Les jetons spéciaux supplémentaires n'ont pas à être liés à une modalité et peuvent être tout ce dont le modèle a souvent besoin. Dans le code ci-dessous, le tokenizer situé dans output_dir aura un accès direct à trois jetons spéciaux supplémentaires.
vision_tokenizer = AutoTokenizer.from_pretrained(
"llava-hf/llava-1.5-7b-hf",
extra_special_tokens={"image_token": "<image>", "boi_token": "<image_start>", "eoi_token": "<image_end>"}
)
print(vision_tokenizer.image_token, vision_tokenizer.image_token_id)
("<image>", 32000)PreTrainedTokenizer
classe transformers.PythonBackend
< 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 tokeniseurs lents.
Hérite de PreTrainedTokenizerBase.
Gère toutes les méthodes partagées pour la tokenisation et les jetons spéciaux, ainsi que les méthodes de téléchargement, de mise en cache et de chargement des tokeniseurs pré-entraînés, et l’ajout de jetons au vocabulaire.
Cette classe contient également les jetons ajoutés de manière unifiée au-dessus de tous les tokenizers, afin de ne pas avoir à gérer les méthodes spécifiques d’augmentation du vocabulaire des différentes structures de dictionnaire sous-jacentes (BPE, sentencepiece…).
Attributs de classe (réécrits par les classes dérivées)
- vocab_files_names (
dict[str, str]) — Un dictionnaire dont les clés sont les noms des mots-clés de__init__de chaque fichier de vocabulaire requis par le modèle, et dont les valeurs associées sont les noms de fichiers pour enregistrer le fichier associé (chaîne de caractères). - pretrained_vocab_files_map (
dict[str, dict[str, str]]) — Un dictionnaire de dictionnaires, dont les clés de haut niveau sont les noms de mots-clés__init__de chaque fichier de vocabulaire requis par le modèle, et les clés de bas niveau sont 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_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))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>"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.
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)).
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")build_inputs_with_special_tokens
< source >( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]
Construire les entrées du modèle à partir d'une séquence ou d'une paire de séquences en ajoutant des jetons spéciaux.
Cette méthode construit dynamiquement les entrées en fonction de special_tokens_pattern du tokenizer :
"none": aucun jeton spécial"cls_sep": [CLS] seq0 [SEP] ou [CLS] seq0 [SEP] seq1 [SEP]"eos": seq0 [EOS] ou seq0 [EOS] seq1 [EOS]"bos": [BOS] seq0 ou [BOS] seq0 [BOS] seq1"bos_eos": [BOS] seq0 [EOS] ou [BOS] seq0 [EOS] seq1 [EOS]"cls_double_sep": [CLS] seq0 [SEP] ou [CLS] seq0 [SEP] [SEP] seq1 [SEP]"prefix_suffix":<prefix_tokens> seq0 [seq1] <suffix_tokens>(préfixe/suffixe personnalisé stocké sur le tokenizer)
create_token_type_ids_from_sequences
< source >( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]
Créez un masque à partir des deux séquences passées, à utiliser dans une tâche de classification de paires de séquences.
Cette méthode construit dynamiquement les identifiants de type de jeton en fonction des attributs de configuration du tokeniseur :
token_type_ids_pattern: Motif à utiliser (« all_zeros » ou « bert_style »)token_type_ids_include_special_tokens: Indique s'il faut prendre en compte les jetons spéciaux dans le calcul de la longueur
Exemples :
# All zeros pattern (default, used by RoBERTa, BART, etc.)
tokenizer.token_type_ids_pattern = "all_zeros"
# Returns: [0, 0, 0, ...] for both sequences
# BERT-style pattern (first sequence gets 0s, second gets 1s)
tokenizer.token_type_ids_pattern = "bert_style"
# Returns: [0, 0, 0, ..., 1, 1, 1, ...] for sequence pairsRetourne les jetons ajoutés au vocabulaire sous forme d'un dictionnaire associant chaque jeton à son index. Les résultats peuvent différer de ceux de l'appel rapide, car pour l'instant nous ajoutons toujours les jetons, même s'ils sont déjà présents dans le vocabulaire. C'est un point que nous devrions corriger.
get_special_tokens_mask
< source >( token_ids_0: listtoken_ids_1: list | None = Nonealready_has_special_tokens: bool = False ) → A list of integers in the range [0, 1]
Paramètres
- token_ids_0 (
list[int]) — Liste des identifiants de la première séquence. - token_ids_1 (
list[int], facultatif) — Liste des identifiants de la deuxième séquence. - already_has_special_tokens (
bool, facultatif, par défautFalse) — Indique si la liste de jetons est déjà formatée avec les jetons spéciaux du modèle.
Retourne
Une liste d'entiers dans l'intervalle [0, 1]
1 pour un jeton spécial, 0 pour un jeton de séquence.
Récupère les identifiants de séquences à partir d'une liste de jetons qui ne contient pas de jetons spéciaux ajoutés. Cette méthode est appelée lors de l'ajout de jetons spéciaux à l'aide des méthodes prepare_for_model ou encode_plus du tokenizer.
Cette méthode construit dynamiquement le masque des jetons spéciaux en fonction de special_tokens_pattern du tokeniseur :
"none": aucun jeton spécial (par défaut, renvoie des 0)"cls_sep": [CLS] seq0 [SEP] ou [CLS] seq0 [SEP] seq1 [SEP]"eos": seq0 [EOS] ou seq0 [EOS] seq1 [EOS]"bos": [BOS] seq0 ou [BOS] seq0 [BOS] seq1"bos_eos": [BOS] seq0 [EOS] ou [BOS] seq0 [EOS] seq1 [EOS]"cls_double_sep": [CLS] seq0 [SEP] ou [CLS] seq0 [SEP] [SEP] seq1 [SEP]"prefix_suffix":<prefix_tokens> seq0 [seq1] <suffix_tokens>
num_special_tokens_to_add
< source >( pair: bool = False ) → int
Retourne le nombre de jetons ajoutés lors de l’encodage d’une séquence avec des jetons spéciaux.
Cela encode une entrée factice et vérifie le nombre de jetons ajoutés, ce qui n'est donc pas efficace. Ne placez pas cela dans votre boucle d'entraînement.
prepare_for_model
< source >( ids: listpair_ids: list[int] | None = Noneadd_special_tokens: bool = Truepadding: bool | str | transformers.utils.generic.PaddingStrategy = Falsetruncation: bool | str | transformers.tokenization_utils_base.TruncationStrategy = Falsemax_length: int | None = Nonestride: int = 0pad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = Nonereturn_token_type_ids: bool | None = Nonereturn_attention_mask: bool | None = Nonereturn_overflowing_tokens: bool = Falsereturn_special_tokens_mask: bool = Falsereturn_length: bool = Falseverbose: bool = Trueprepend_batch_axis: bool = False**kwargs )
Prépare une séquence d'identifiants d'entrée afin qu'elle puisse être utilisée par le modèle. Ajoute des jetons spéciaux, tronque et remplit.
prepare_for_tokenization
< source >( text: stris_split_into_words: bool = False**kwargs ) → tuple[str, dict[str, Any]]
Paramètres
- text (
str) — Le texte à préparer. - is_split_into_words (
bool, facultatif, par dé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. - kwargs (
dict[str, Any], facultatif) — Arguments par mot-clé à utiliser pour la tokenisation.
Retourne
tuple[str, dict[str, Any]]
Le texte préparé et les kwargs non utilisés.
Effectue les transformations nécessaires avant la tokenization.
Cette méthode doit extraire les arguments de kwargs et retourner également les kwargs restants. Nous vérifions les kwargs à la fin du processus d’encodage pour nous assurer que tous les arguments ont été utilisés.
save_vocabulary
< source >( save_directory: strfilename_prefix: str | None = None ) → tuple[str, ...]
Implémentation par défaut pour les motifs courants de sauvegarde du vocabulaire. Enregistre self.encoder/self.vocab au format JSON, éventuellement avec self.bpe_ranks en tant que fusions. Retourne un tuple vide si aucun vocabulaire n'existe.
Écrasez cette méthode si votre tokenizer nécessite une logique de sauvegarde personnalisée (par exemple, des modèles SentencePiece, plusieurs fichiers de vocabulaire ou des formats de fichiers spéciaux).
tokenize
< source >( text: str**kwargs )
Convertit une chaîne de caractères en une séquence de jetons, en utilisant le tokeniseur.
truncate_sequences
< source >( ids: listpair_ids: list[int] | None = Nonenum_tokens_to_remove: int = 0truncation_strategy: str | transformers.tokenization_utils_base.TruncationStrategy = 'longest_first'stride: int = 0 )
Tronque les séquences selon la stratégie spécifiée.
PreTrainedTokenizerFast
Le PreTrainedTokenizerFast dépend de la bibliothèque tokenizers. Les tokenizers obtenus à partir de la bibliothèque 🤗 tokenizers peuvent être chargés très simplement dans 🤗 transformers. Consultez la page Utiliser les tokenizers de 🤗 tokenizers pour comprendre comment cela se fait.
classe transformers.TokenizersBackend
< source >( *args**kwargs )
Paramètres
- model_max_length (
int, facultatif) — La longueur maximale (en nombre de jetons) des entrées pour le modèle transformer. Lorsque le tokeniseur est chargé avec from_pretrained(), cette valeur est définie sur la valeur stockée pour le modèle associé 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', '>']. - tokenizer_object (
tokenizers.Tokenizer) — Un objettokenizers.Tokenizerde 🤗 tokenizers à instancier. Voir Utiliser des tokenizers de 🤗 tokenizers pour plus d’informations. - tokenizer_file (
str) — Chemin vers un fichier JSON local représentant un objettokenizers.Tokenizerprécédemment sérialisé de 🤗 tokenizers.
Classe de base pour tous les tokenizers rapides (encapsulant la bibliothèque HuggingFace tokenizers).
Hérite de PreTrainedTokenizerBase.
Gère toutes les méthodes partagées pour la tokenisation et les jetons spéciaux, ainsi que les méthodes de téléchargement/mise en cache/chargement des tokeniseurs pré-entraînés, et l’ajout de jetons au vocabulaire.
Cette classe contient également les jetons ajoutés de manière unifiée au-dessus de tous les tokenizers, afin de ne pas avoir à gérer les méthodes spécifiques d’augmentation du vocabulaire des différentes structures de dictionnaire sous-jacentes (BPE, sentencepiece…).
Attributs de classe (réécrits par les classes dérivées)
- vocab_files_names (
dict[str, str]) — Un dictionnaire dont les clés sont les noms des mots-clés de__init__de chaque fichier de vocabulaire requis par le modèle, et dont les valeurs associées sont les noms de fichiers pour enregistrer le fichier associé (chaîne de caractères). - pretrained_vocab_files_map (
dict[str, dict[str, str]]) — Un dictionnaire de dictionnaires, dont les clés de haut niveau sont les noms de mots-clés__init__de chaque fichier de vocabulaire requis par le modèle, et les clés de bas niveau sont 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_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))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>"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.
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)).
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")Construire un backend tokenizers.Tokenizer à partir des fichiers de sérialisation disponibles (tokenizer.json, modèles sentencepiece, tekken.json, vocab/merges).
Retourne les jetons ajoutés au vocabulaire sous forme d'un dictionnaire associant chaque jeton à son index.
num_special_tokens_to_add
< source >( pair: bool = False ) → int
Retourne le nombre de jetons ajoutés lors de l’encodage d’une séquence avec des jetons spéciaux.
Cela encode une entrée factice et vérifie le nombre de jetons ajoutés, ce qui n'est donc pas efficace. Ne placez pas cela dans votre boucle d'entraînement.
save_pretrained
< source >( save_directory: str | os.PathLikelegacy_format: bool | None = Nonefilename_prefix: str | None = Nonepush_to_hub: bool = Falsesave_format: str | None = None**kwargs ) → A tuple of str
Paramètres
- save_format (
str, facultatif) —"mistral"pour enregistrer au format natiftekken.jsonen copiant le fichier d’origine (nécessite que le fichier de vocabulaire tekken d’origine soit disponible). Le nom est normalisé entekken.jsonlors de l’enregistrement, et le tokenizer instancié doit toujours correspondre exactement à ce fichier."hf"ouNonepour le format HuggingFace par défaut. - kwargs (
dict[str, Any], facultatif) — Arguments supplémentaires passés à la méthode push_to_hub().
Retourne
Un tuple de str
Les fichiers enregistrés.
Enregistrer l'état complet du tokenizer.
Étend save_pretrained() avec la prise en charge de save_format, pour les tokenizers convertis depuis un fichier de vocabulaire natif (par ex. tekken.json de Mistral). Consultez la méthode de base pour legacy_format, filename_prefix et push_to_hub.
set_truncation_and_padding
< source >( padding_strategy: PaddingStrategytruncation_strategy: TruncationStrategymax_length: intstride: intpad_to_multiple_of: int | Nonepadding_side: str | None )
Paramètres
- padding_strategy (PaddingStrategy) — Le type de bourrage qui sera appliqué à l'entrée
- truncation_strategy (TruncationStrategy) — Le type de troncature qui sera appliqué à l'entrée
- max_length (
int) — La taille maximale d'une séquence. - stride (
int) — Le pas à utiliser lors du traitement du dépassement. - pad_to_multiple_of (
int, facultatif) — Si défini, la séquence sera rembourdée jusqu'à un multiple de la valeur fournie. Cela est particulièrement utile pour permettre l'utilisation des Tensor Cores sur le matériel NVIDIA avec une capacité de calcul>= 7.5(Volta). - padding_side (
str, facultatif) — Le côté sur lequel le modèle doit appliquer le bourrage. Doit être choisi parmi [‘right’, ‘left’]. La valeur par défaut est choisie à partir de l’attribut de classe du même nom.
Définir les stratégies de troncature et de bourrage pour les tokenizers rapides (fournis par la bibliothèque HuggingFace tokenizers) et restaurer les paramètres du tokenizer par la suite.
Le tokenizer fourni n'a pas de stratégie de padding / troncature avant la section gérée. Si votre tokenizer avait défini une stratégie de padding / troncature auparavant, celle-ci sera réinitialisée à l'absence de padding / troncature lors de la sortie de la section gérée.
train_new_from_iterator
< source >( text_iteratorvocab_sizelength = Nonenew_special_tokens = Nonespecial_tokens_map = None**kwargs ) → PreTrainedTokenizerFast
Paramètres
- text_iterator (générateur de
list[str]) — Le corpus d'entraînement. Doit être un générateur de lots de textes, par exemple une liste de listes de textes si tout est en mémoire. - vocab_size (
int) — La taille du vocabulaire souhaitée pour votre tokenizer. - length (
int, facultatif) — Le nombre total de séquences dans l'itérateur. Cela est utilisé pour fournir un suivi de progression significatif - new_special_tokens (liste de
strouAddedToken, facultatif) — Une liste de nouveaux jetons spéciaux à ajouter au tokenizer que vous entraînez. - special_tokens_map (
dict[str, str], facultatif) — Si vous souhaitez renommer certains des jetons spéciaux utilisés par ce tokeniseur, transmettez dans cet argument un mapping du nom de l’ancien jeton spécial vers le nom du nouveau jeton spécial. - kwargs (
dict[str, Any], facultatif) — Arguments supplémentaires passés au formateur par la bibliothèque 🤗 Tokenizers.
Retourne
Un nouveau tokenizer du même type que l'original, entraîné sur
text_iterator.
Entraîne un tokenizer sur un nouveau corpus avec les mêmes valeurs par défaut (en termes de jetons spéciaux ou de pipeline de tokenization) que le tokenizer actuel.
Met à jour le post-processeur sous-jacent avec les bos_token et eos_token actuels.
PythonBackend
classe transformers.PythonBackend
< 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 tokeniseurs lents.
Hérite de PreTrainedTokenizerBase.
Gère toutes les méthodes partagées pour la tokenisation et les jetons spéciaux, ainsi que les méthodes de téléchargement, de mise en cache et de chargement des tokeniseurs pré-entraînés, et l’ajout de jetons au vocabulaire.
Cette classe contient également les jetons ajoutés de manière unifiée au-dessus de tous les tokenizers, afin de ne pas avoir à gérer les méthodes spécifiques d’augmentation du vocabulaire des différentes structures de dictionnaire sous-jacentes (BPE, sentencepiece…).
Attributs de classe (réécrits par les classes dérivées)
- vocab_files_names (
dict[str, str]) — Un dictionnaire dont les clés sont les noms des mots-clés de__init__de chaque fichier de vocabulaire requis par le modèle, et dont les valeurs associées sont les noms de fichiers pour enregistrer le fichier associé (chaîne de caractères). - pretrained_vocab_files_map (
dict[str, dict[str, str]]) — Un dictionnaire de dictionnaires, dont les clés de haut niveau sont les noms de mots-clés__init__de chaque fichier de vocabulaire requis par le modèle, et les clés de bas niveau sont 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'.
build_inputs_with_special_tokens
< source >( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]
Construire les entrées du modèle à partir d'une séquence ou d'une paire de séquences en ajoutant des jetons spéciaux.
Cette méthode construit dynamiquement les entrées en fonction de special_tokens_pattern du tokenizer :
"none": aucun jeton spécial"cls_sep": [CLS] seq0 [SEP] ou [CLS] seq0 [SEP] seq1 [SEP]"eos": seq0 [EOS] ou seq0 [EOS] seq1 [EOS]"bos": [BOS] seq0 ou [BOS] seq0 [BOS] seq1"bos_eos": [BOS] seq0 [EOS] ou [BOS] seq0 [EOS] seq1 [EOS]"cls_double_sep": [CLS] seq0 [SEP] ou [CLS] seq0 [SEP] [SEP] seq1 [SEP]"prefix_suffix":<prefix_tokens> seq0 [seq1] <suffix_tokens>(préfixe/suffixe personnalisé stocké sur le tokenizer)
create_token_type_ids_from_sequences
< source >( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]
Créez un masque à partir des deux séquences passées, à utiliser dans une tâche de classification de paires de séquences.
Cette méthode construit dynamiquement les identifiants de type de jeton en fonction des attributs de configuration du tokeniseur :
token_type_ids_pattern: Motif à utiliser (« all_zeros » ou « bert_style »)token_type_ids_include_special_tokens: Indique s'il faut prendre en compte les jetons spéciaux dans le calcul de la longueur
Exemples :
# All zeros pattern (default, used by RoBERTa, BART, etc.)
tokenizer.token_type_ids_pattern = "all_zeros"
# Returns: [0, 0, 0, ...] for both sequences
# BERT-style pattern (first sequence gets 0s, second gets 1s)
tokenizer.token_type_ids_pattern = "bert_style"
# Returns: [0, 0, 0, ..., 1, 1, 1, ...] for sequence pairsRetourne les jetons ajoutés au vocabulaire sous forme d'un dictionnaire associant chaque jeton à son index. Les résultats peuvent différer de ceux de l'appel rapide, car pour l'instant nous ajoutons toujours les jetons, même s'ils sont déjà présents dans le vocabulaire. C'est un point que nous devrions corriger.
get_special_tokens_mask
< source >( token_ids_0: listtoken_ids_1: list | None = Nonealready_has_special_tokens: bool = False ) → A list of integers in the range [0, 1]
Paramètres
- token_ids_0 (
list[int]) — Liste des identifiants de la première séquence. - token_ids_1 (
list[int], facultatif) — Liste des identifiants de la deuxième séquence. - already_has_special_tokens (
bool, facultatif, par défautFalse) — Indique si la liste de jetons est déjà formatée avec les jetons spéciaux du modèle.
Retourne
Une liste d'entiers dans l'intervalle [0, 1]
1 pour un jeton spécial, 0 pour un jeton de séquence.
Récupère les identifiants de séquences à partir d'une liste de jetons qui ne contient pas de jetons spéciaux ajoutés. Cette méthode est appelée lors de l'ajout de jetons spéciaux à l'aide des méthodes prepare_for_model ou encode_plus du tokenizer.
Cette méthode construit dynamiquement le masque des jetons spéciaux en fonction de special_tokens_pattern du tokeniseur :
"none": aucun jeton spécial (par défaut, renvoie des 0)"cls_sep": [CLS] seq0 [SEP] ou [CLS] seq0 [SEP] seq1 [SEP]"eos": seq0 [EOS] ou seq0 [EOS] seq1 [EOS]"bos": [BOS] seq0 ou [BOS] seq0 [BOS] seq1"bos_eos": [BOS] seq0 [EOS] ou [BOS] seq0 [EOS] seq1 [EOS]"cls_double_sep": [CLS] seq0 [SEP] ou [CLS] seq0 [SEP] [SEP] seq1 [SEP]"prefix_suffix":<prefix_tokens> seq0 [seq1] <suffix_tokens>
num_special_tokens_to_add
< source >( pair: bool = False ) → int
Retourne le nombre de jetons ajoutés lors de l’encodage d’une séquence avec des jetons spéciaux.
Cela encode une entrée factice et vérifie le nombre de jetons ajoutés, ce qui n'est donc pas efficace. Ne placez pas cela dans votre boucle d'entraînement.
prepare_for_model
< source >( ids: listpair_ids: list[int] | None = Noneadd_special_tokens: bool = Truepadding: bool | str | transformers.utils.generic.PaddingStrategy = Falsetruncation: bool | str | transformers.tokenization_utils_base.TruncationStrategy = Falsemax_length: int | None = Nonestride: int = 0pad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = Nonereturn_token_type_ids: bool | None = Nonereturn_attention_mask: bool | None = Nonereturn_overflowing_tokens: bool = Falsereturn_special_tokens_mask: bool = Falsereturn_length: bool = Falseverbose: bool = Trueprepend_batch_axis: bool = False**kwargs )
Prépare une séquence d'identifiants d'entrée afin qu'elle puisse être utilisée par le modèle. Ajoute des jetons spéciaux, tronque et remplit.
prepare_for_tokenization
< source >( text: stris_split_into_words: bool = False**kwargs ) → tuple[str, dict[str, Any]]
Paramètres
- text (
str) — Le texte à préparer. - is_split_into_words (
bool, facultatif, par dé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. - kwargs (
dict[str, Any], facultatif) — Arguments par mot-clé à utiliser pour la tokenisation.
Retourne
tuple[str, dict[str, Any]]
Le texte préparé et les kwargs non utilisés.
Effectue les transformations nécessaires avant la tokenization.
Cette méthode doit extraire les arguments de kwargs et retourner également les kwargs restants. Nous vérifions les kwargs à la fin du processus d’encodage pour nous assurer que tous les arguments ont été utilisés.
save_vocabulary
< source >( save_directory: strfilename_prefix: str | None = None ) → tuple[str, ...]
Implémentation par défaut pour les motifs courants de sauvegarde du vocabulaire. Enregistre self.encoder/self.vocab au format JSON, éventuellement avec self.bpe_ranks en tant que fusions. Retourne un tuple vide si aucun vocabulaire n'existe.
Écrasez cette méthode si votre tokenizer nécessite une logique de sauvegarde personnalisée (par exemple, des modèles SentencePiece, plusieurs fichiers de vocabulaire ou des formats de fichiers spéciaux).
tokenize
< source >( text: str**kwargs )
Convertit une chaîne de caractères en une séquence de jetons, en utilisant le tokeniseur.
truncate_sequences
< source >( ids: listpair_ids: list[int] | None = Nonenum_tokens_to_remove: int = 0truncation_strategy: str | transformers.tokenization_utils_base.TruncationStrategy = 'longest_first'stride: int = 0 )
Tronque les séquences selon la stratégie spécifiée.
TokenizersBackend
classe transformers.TokenizersBackend
< source >( *args**kwargs )
Paramètres
- model_max_length (
int, facultatif) — La longueur maximale (en nombre de jetons) des entrées pour le modèle transformer. Lorsque le tokeniseur est chargé avec from_pretrained(), cette valeur est définie sur la valeur stockée pour le modèle associé 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', '>']. - tokenizer_object (
tokenizers.Tokenizer) — Un objettokenizers.Tokenizerde 🤗 tokenizers à instancier. Voir Utiliser des tokenizers de 🤗 tokenizers pour plus d’informations. - tokenizer_file (
str) — Chemin vers un fichier JSON local représentant un objettokenizers.Tokenizerprécédemment sérialisé de 🤗 tokenizers.
Classe de base pour tous les tokenizers rapides (encapsulant la bibliothèque HuggingFace tokenizers).
Hérite de PreTrainedTokenizerBase.
Gère toutes les méthodes partagées pour la tokenisation et les jetons spéciaux, ainsi que les méthodes de téléchargement/mise en cache/chargement des tokeniseurs pré-entraînés, et l’ajout de jetons au vocabulaire.
Cette classe contient également les jetons ajoutés de manière unifiée au-dessus de tous les tokenizers, afin de ne pas avoir à gérer les méthodes spécifiques d’augmentation du vocabulaire des différentes structures de dictionnaire sous-jacentes (BPE, sentencepiece…).
Attributs de classe (réécrits par les classes dérivées)
- vocab_files_names (
dict[str, str]) — Un dictionnaire dont les clés sont les noms des mots-clés de__init__de chaque fichier de vocabulaire requis par le modèle, et dont les valeurs associées sont les noms de fichiers pour enregistrer le fichier associé (chaîne de caractères). - pretrained_vocab_files_map (
dict[str, dict[str, str]]) — Un dictionnaire de dictionnaires, dont les clés de haut niveau sont les noms de mots-clés__init__de chaque fichier de vocabulaire requis par le modèle, et les clés de bas niveau sont 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'.
Construire un backend tokenizers.Tokenizer à partir des fichiers de sérialisation disponibles (tokenizer.json, modèles sentencepiece, tekken.json, vocab/merges).
Retourne les jetons ajoutés au vocabulaire sous forme d'un dictionnaire associant chaque jeton à son index.
num_special_tokens_to_add
< source >( pair: bool = False ) → int
Retourne le nombre de jetons ajoutés lors de l’encodage d’une séquence avec des jetons spéciaux.
Cela encode une entrée factice et vérifie le nombre de jetons ajoutés, ce qui n'est donc pas efficace. Ne placez pas cela dans votre boucle d'entraînement.
save_pretrained
< source >( save_directory: str | os.PathLikelegacy_format: bool | None = Nonefilename_prefix: str | None = Nonepush_to_hub: bool = Falsesave_format: str | None = None**kwargs ) → A tuple of str
Paramètres
- save_format (
str, facultatif) —"mistral"pour enregistrer au format natiftekken.jsonen copiant le fichier d’origine (nécessite que le fichier de vocabulaire tekken d’origine soit disponible). Le nom est normalisé entekken.jsonlors de l’enregistrement, et le tokenizer instancié doit toujours correspondre exactement à ce fichier."hf"ouNonepour le format HuggingFace par défaut. - kwargs (
dict[str, Any], facultatif) — Arguments supplémentaires passés à la méthode push_to_hub().
Retourne
Un tuple de str
Les fichiers enregistrés.
Enregistrer l'état complet du tokenizer.
Étend save_pretrained() avec la prise en charge de save_format, pour les tokenizers convertis depuis un fichier de vocabulaire natif (par ex. tekken.json de Mistral). Consultez la méthode de base pour legacy_format, filename_prefix et push_to_hub.
set_truncation_and_padding
< source >( padding_strategy: PaddingStrategytruncation_strategy: TruncationStrategymax_length: intstride: intpad_to_multiple_of: int | Nonepadding_side: str | None )
Paramètres
- padding_strategy (PaddingStrategy) — Le type de bourrage qui sera appliqué à l'entrée
- truncation_strategy (TruncationStrategy) — Le type de troncature qui sera appliqué à l'entrée
- max_length (
int) — La taille maximale d'une séquence. - stride (
int) — Le pas à utiliser lors du traitement du dépassement. - pad_to_multiple_of (
int, facultatif) — Si défini, la séquence sera rembourdée jusqu'à un multiple de la valeur fournie. Cela est particulièrement utile pour permettre l'utilisation des Tensor Cores sur le matériel NVIDIA avec une capacité de calcul>= 7.5(Volta). - padding_side (
str, facultatif) — Le côté sur lequel le modèle doit appliquer le bourrage. Doit être choisi parmi [‘right’, ‘left’]. La valeur par défaut est choisie à partir de l’attribut de classe du même nom.
Définir les stratégies de troncature et de bourrage pour les tokenizers rapides (fournis par la bibliothèque HuggingFace tokenizers) et restaurer les paramètres du tokenizer par la suite.
Le tokenizer fourni n'a pas de stratégie de padding / troncature avant la section gérée. Si votre tokenizer avait défini une stratégie de padding / troncature auparavant, celle-ci sera réinitialisée à l'absence de padding / troncature lors de la sortie de la section gérée.
train_new_from_iterator
< source >( text_iteratorvocab_sizelength = Nonenew_special_tokens = Nonespecial_tokens_map = None**kwargs ) → PreTrainedTokenizerFast
Paramètres
- text_iterator (générateur de
list[str]) — Le corpus d'entraînement. Doit être un générateur de lots de textes, par exemple une liste de listes de textes si tout est en mémoire. - vocab_size (
int) — La taille du vocabulaire souhaitée pour votre tokenizer. - length (
int, facultatif) — Le nombre total de séquences dans l'itérateur. Cela est utilisé pour fournir un suivi de progression significatif - new_special_tokens (liste de
strouAddedToken, facultatif) — Une liste de nouveaux jetons spéciaux à ajouter au tokenizer que vous entraînez. - special_tokens_map (
dict[str, str], facultatif) — Si vous souhaitez renommer certains des jetons spéciaux utilisés par ce tokeniseur, transmettez dans cet argument un mapping du nom de l’ancien jeton spécial vers le nom du nouveau jeton spécial. - kwargs (
dict[str, Any], facultatif) — Arguments supplémentaires passés au formateur par la bibliothèque 🤗 Tokenizers.
Retourne
Un nouveau tokenizer du même type que l'original, entraîné sur
text_iterator.
Entraîne un tokenizer sur un nouveau corpus avec les mêmes valeurs par défaut (en termes de jetons spéciaux ou de pipeline de tokenization) que le tokenizer actuel.
Met à jour le post-processeur sous-jacent avec les bos_token et eos_token actuels.
SentencePieceBackend
classe transformers.SentencePieceBackend
< 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 les tokeniseurs basés sur SentencePiece qui chargent depuis des fichiers sentencepiece.model.
Hérite de PreTrainedTokenizer.
Gère toutes les méthodes partagées pour la tokenisation et les jetons spéciaux, ainsi que les méthodes de téléchargement, de mise en cache et de chargement des tokeniseurs pré-entraînés, et l’ajout de jetons au vocabulaire.
Cette classe contient également les jetons ajoutés de manière unifiée au-dessus de tous les tokenizers, afin de ne pas avoir à gérer les méthodes spécifiques d’augmentation du vocabulaire des différentes structures de dictionnaire sous-jacentes (BPE, sentencepiece…).
Attributs de classe (réécrits par les classes dérivées)
- vocab_files_names (
dict[str, str]) — Un dictionnaire dont les clés sont les noms des mots-clés de__init__de chaque fichier de vocabulaire requis par le modèle, et dont les valeurs associées sont les noms de fichiers pour enregistrer le fichier associé (chaîne de caractères). - pretrained_vocab_files_map (
dict[str, dict[str, str]]) — Un dictionnaire de dictionnaires, dont les clés de haut niveau sont les noms de mots-clés__init__de chaque fichier de vocabulaire requis par le modèle, et les clés de bas niveau sont 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'.
Convertit une séquence de jetons (chaîne de caractères) en une seule chaîne.
Retourne le vocabulaire sous forme de dictionnaire
save_vocabulary
< source >( save_directory: strfilename_prefix: str | None = None ) → tuple(str)
Enregistrez le vocabulaire sentencepiece (copie du fichier d'origine) dans un répertoire.
BatchEncoding
classe transformers.BatchEncoding
< source >( data: dict[str, Any] | None = Noneencoding: EncodingFast | Sequence[EncodingFast] | None = Nonetensor_type: None | str | TensorType = Noneprepend_batch_axis: bool = Falsen_sequences: int | None = None )
Paramètres
- data (
dict, facultatif) — Dictionnaire de listes/tableaux/tenseurs renvoyé par les méthodes__call__/encode_plus/batch_encode_plus(‘input_ids’, ‘attention_mask’, etc.). - encoding (
tokenizers.EncodingouSequence[tokenizers.Encoding], facultatif) — Si le tokenizer est un fast tokenizer qui fournit des informations supplémentaires, comme la correspondance entre l’espace des mots/caractères et l’espace des jetons, l’instancetokenizers.Encodingou la liste d’instances (pour les lots) contient ces informations. - tensor_type (
Union[None, str, TensorType], facultatif) — Vous pouvez indiquer un tensor_type ici pour convertir les listes d'entiers en Tensors PyTorch/Numpy lors de l'initialisation. - prepend_batch_axis (
bool, facultatif, par défautFalse) — Indique s'il faut ajouter un axe de lot lors de la conversion en tenseurs (voirtensor_typeci-dessus). Notez que ce paramètre a un effet si le paramètretensor_typeest défini, sinon il n'a aucun effet. - n_sequences (
Optional[int], facultatif) — Le nombre de séquences d'entrée représentées par chaque encodage (Nonepour inconnu,1pour une séquence unique et2pour une paire de séquences).
Contient la sortie des méthodes call(), ~tokenization_utils_base.PreTrainedTokenizerBase.encode_plus et ~tokenization_utils_base.PreTrainedTokenizerBase.batch_encode_plus (jetons, attention_masks, etc.).
Cette classe est dérivée d'un dictionnaire Python et peut être utilisée comme tel. En outre, cette classe expose des méthodes utilitaires pour passer de l'espace des mots/caractères à l'espace des jetons.
char_to_token
< source >( batch_or_char_index: intchar_index: int | None = Nonesequence_index: int = 0 ) → int
Paramètres
- batch_or_char_index (
int) — Index de la séquence dans le lot. Si le lot ne comprend qu'une seule séquence, il peut s'agir de l'index du caractère dans la séquence - char_index (
int, facultatif) — Si un index de lot est fourni dans batch_or_char_index, il peut s’agir de l’index du caractère dans la séquence. - sequence_index (
int, facultatif, valeur par défaut 0) — Si une paire de séquences est encodée dans le lot, ce paramètre peut être utilisé pour spécifier à quelle séquence de la paire (0 ou 1) appartient l’indice de caractère fourni.
Retourne
int
Index du jeton, ou None si l'index du caractère fait référence à un jeton composé uniquement d'espaces et que les espaces sont supprimés avec trim_offsets=True.
Obtenir l'index du jeton dans la sortie encodée contenant un caractère de la chaîne originale pour une séquence du lot.
Peut être appelé de la manière suivante :
self.char_to_token(char_index)si la taille du lot est de 1self.char_to_token(batch_index, char_index)si la taille du lot est supérieure ou égale à 1
Cette méthode est particulièrement adaptée lorsque les séquences d'entrée sont fournies sous forme de séquences pré-tokenisées (c'est-à-dire que les mots sont définis par l'utilisateur). Dans ce cas, elle permet d'associer facilement les jetons encodés aux mots tokenisés fournis.
char_to_word
< source >( batch_or_char_index: intchar_index: int | None = Nonesequence_index: int = 0 ) → int
Paramètres
- batch_or_char_index (
int) — Index de la séquence dans le lot. Si le lot ne comprend qu'une seule séquence, il peut s'agir de l'index du caractère dans la chaîne d'origine. - char_index (
int, facultatif) — Si un index de lot est fourni dans batch_or_char_index, il peut s’agir de l’index du caractère dans la chaîne d’origine. - sequence_index (
int, facultatif, valeur par défaut 0) — Si une paire de séquences est encodée dans le lot, ce paramètre peut être utilisé pour spécifier à quelle séquence de la paire (0 ou 1) appartient l’indice de caractère fourni.
Retourne
int
Index du mot contenant le caractère.
Obtenir le mot de la chaîne d'origine correspondant à un caractère de la chaîne d'origine d'une séquence du lot.
Peut être appelé de la manière suivante :
self.char_to_word(char_index)si la taille du lot est de 1self.char_to_word(batch_index, char_index)si la taille du lot est supérieure à 1
Cette méthode est particulièrement adaptée lorsque les séquences d'entrée sont fournies sous forme de séquences pré-tokenisées (c'est-à-dire que les mots sont définis par l'utilisateur). Dans ce cas, elle permet d'associer facilement les jetons encodés aux mots tokenisés fournis.
convert_to_tensors
< source >( tensor_type: str | TensorType | None = Noneprepend_batch_axis: bool = False )
Paramètres
- tensor_type (
strou TensorType, facultatif) — Le type de tenseurs à utiliser. Sistr, doit être l’une des valeurs de l’enum TensorType. SiNone, aucune modification n’est effectuée. - prepend_batch_axis (
bool, facultatif, par défautFalse) — Indique s'il faut ou non ajouter la dimension de lot lors de la conversion.
Convertir le contenu interne en tenseurs.
sequence_ids
< source >( batch_index: int = 0 ) → list[Optional[int]]
Paramètres
Retourne
list[Optional[int]]
Une liste indiquant l'identifiant de séquence correspondant à chaque jeton. Les jetons spéciaux ajoutés par le tokeniseur sont mappés sur None et les autres jetons sont mappés sur l'index de leur séquence correspondante.
Retourne une liste associant les jetons à l'identifiant de leurs phrases d'origine :
Nonepour les jetons spéciaux ajoutés autour ou entre les séquences,0pour les jetons correspondant aux mots de la première séquence,1pour les jetons correspondant aux mots de la deuxième séquence lorsqu’une paire de séquences a été encodée conjointement.
à
< source >( device: str | torch.device | intnon_blocking: bool = False ) → BatchEncoding
Envoyez toutes les valeurs vers l'appareil en appelant v.to(device, non_blocking=non_blocking) (PyTorch uniquement).
token_to_chars
< source >( batch_or_token_index: inttoken_index: int | None = None ) → CharSpan
Paramètres
- batch_or_token_index (
int) — Index de la séquence dans le lot. Si le lot ne comprend qu'une seule séquence, il peut s'agir de l'index du jeton dans la séquence. - token_index (
int, facultatif) — Si un index de lot est fourni dans batch_or_token_index, il peut s’agir de l’index du ou des jetons dans la séquence.
Retourne
Portée des caractères dans la chaîne d’origine, ou None, si le jeton
(p. ex. , ) ne correspond à aucun caractère de la chaîne d’origine.
Obtenir l'étendue de caractères correspondant à un jeton encodé dans une séquence du lot.
Les portées de caractères sont renvoyées sous forme de CharSpan avec :
- start — Index du premier caractère de la chaîne d'origine associé au jeton.
- end — Index du caractère suivant le dernier caractère de la chaîne d’origine associée au jeton.
Peut être appelé de la manière suivante :
self.token_to_chars(token_index)si la taille du lot est de 1self.token_to_chars(batch_index, token_index)si la taille du lot est supérieure ou égale à 1
token_to_sequence
< source >( batch_or_token_index: inttoken_index: int | None = None ) → int
Paramètres
- batch_or_token_index (
int) — Index de la séquence dans le lot. Si le lot ne comprend qu'une seule séquence, il peut s'agir de l'index du jeton dans la séquence. - token_index (
int, facultatif) — Si un index de lot est fourni dans batch_or_token_index, il peut s’agir de l’index du jeton dans la séquence.
Retourne
int
Index de la séquence d'entrée contenant le jeton (0 pour la première séquence ou 1 pour la deuxième séquence d'une paire).
Obtient l'index de la séquence représentée par le jeton donné. Dans le cas d'utilisation général, cette méthode renvoie 0 pour une séquence unique ou la première séquence d'une paire, et 1 pour la deuxième séquence d'une paire
Peut être appelé de la manière suivante :
self.token_to_sequence(token_index)si la taille du lot est de 1self.token_to_sequence(batch_index, token_index)si la taille du lot est supérieure à 1
Cette méthode est particulièrement adaptée lorsque les séquences d'entrée sont fournies sous forme de séquences pré-tokenisées (c'est-à-dire que les mots sont définis par l'utilisateur). Dans ce cas, elle permet d'associer facilement les jetons encodés aux mots tokenisés fournis.
token_to_word
< source >( batch_or_token_index: inttoken_index: int | None = None ) → int
Paramètres
- batch_or_token_index (
int) — Index de la séquence dans le lot. Si le lot ne comprend qu'une seule séquence, il peut s'agir de l'index du jeton dans la séquence. - token_index (
int, facultatif) — Si un index de lot est fourni dans batch_or_token_index, il peut s’agir de l’index du jeton dans la séquence.
Retourne
int
Index du mot dans la séquence d'entrée.
Obtenir l'index du mot correspondant (c'est-à-dire contenant) à un jeton encodé dans une séquence du lot.
Peut être appelé de la manière suivante :
self.token_to_word(token_index)si la taille du lot est de 1self.token_to_word(batch_index, token_index)si la taille du lot est supérieure à 1
Cette méthode est particulièrement adaptée lorsque les séquences d'entrée sont fournies sous forme de séquences pré-tokenisées (c'est-à-dire que les mots sont définis par l'utilisateur). Dans ce cas, elle permet d'associer facilement les jetons encodés aux mots tokenisés fournis.
jets
< source >( batch_index: int = 0 ) → list[str]
Retourne la liste des jetons (sous-parties des chaînes d’entrée après le découpage en mots/sous-mots et avant la conversion en indices entiers) à un index de lot donné (ne fonctionne que pour la sortie d’un tokeniseur rapide).
word_ids
< source >( batch_index: int = 0 ) → list[Optional[int]]
Paramètres
Retourne
list[Optional[int]]
Une liste indiquant le mot correspondant à chaque jeton. Les jetons spéciaux ajoutés par le
tokeniseur sont mappés sur None et les autres jetons sont mappés sur l'index de leur mot correspondant
(plusieurs jetons seront mappés sur le même index de mot s'ils en sont des parties).
Retourne une liste associant les jetons à leur mot réel dans la phrase initiale pour un tokenizer rapide.
word_to_chars
< source >( batch_or_word_index: intword_index: int | None = Nonesequence_index: int = 0 ) → CharSpan
Paramètres
- batch_or_word_index (
int) — Index de la séquence dans le lot. Si le lot ne comprend qu'une seule séquence, il peut s'agir de l'index du mot dans la séquence - word_index (
int, facultatif) — Si un index de lot est fourni dans batch_or_word_index, il peut s’agir de l’index du mot dans la séquence. - sequence_index (
int, facultatif, valeur par défaut 0) — Si une paire de séquences est encodée dans le lot, ce paramètre peut être utilisé pour spécifier à laquelle des séquences de la paire (0 ou 1) appartient l’index de mot fourni.
Retourne
CharSpan
Portée du ou des caractères associés dans la chaîne. CharSpan est un NamedTuple avec :
- start : index du premier caractère associé au mot dans la chaîne d'origine
- end : index du caractère suivant le dernier caractère associé au mot dans la chaîne d'origine
Obtenir l'étendue de caractères dans la chaîne d'origine correspondant au mot donné dans une séquence du lot.
Les portées de caractères sont renvoyées sous forme de NamedTuple CharSpan avec :
- start : index du premier caractère dans la chaîne d'origine
- end : index du caractère suivant le dernier caractère de la chaîne d'origine
Peut être appelé de la manière suivante :
self.word_to_chars(word_index)si la taille du lot est de 1self.word_to_chars(batch_index, word_index)si la taille du lot est supérieure ou égale à 1
word_to_tokens
< source >( batch_or_word_index: intword_index: int | None = Nonesequence_index: int = 0 ) → (TokenSpan, optional)
Paramètres
- batch_or_word_index (
int) — Index de la séquence dans le lot. Si le lot ne comprend qu'une seule séquence, il peut s'agir de l'index du mot dans la séquence. - word_index (
int, facultatif) — Si un index de lot est fourni dans batch_or_word_index, il peut s’agir de l’index du mot dans la séquence. - sequence_index (
int, facultatif, valeur par défaut 0) — Si une paire de séquences est encodée dans le lot, ce paramètre peut être utilisé pour spécifier à laquelle des séquences de la paire (0 ou 1) appartient l’index de mot fourni.
Retourne
(TokenSpan, facultatif)
Portée des jetons dans la séquence encodée. Renvoie
None si aucun jeton ne correspond au mot. Cela peut se produire en particulier lorsque le jeton est un jeton spécial
utilisé pour formater la tokenisation. Par exemple, lorsque nous ajoutons un jeton de classe au tout début
de la tokenisation.
Obtenir l'étendue de jetons encodés correspondant à un mot dans une séquence du lot.
Les plages de jetons sont renvoyées sous forme de TokenSpan avec :
- start — Index du premier jeton.
- end — Index du jeton suivant le dernier jeton.
Peut être appelé de la manière suivante :
self.word_to_tokens(word_index, sequence_index: int = 0)si la taille du lot est de 1self.word_to_tokens(batch_index, word_index, sequence_index: int = 0)si la taille du lot est supérieure ou égale à 1
Cette méthode est particulièrement adaptée lorsque les séquences d'entrée sont fournies sous forme de séquences pré-tokenisées (c'est-à-dire que les mots sont définis par l'utilisateur). Dans ce cas, elle permet d'associer facilement les jetons encodés aux mots tokenisés fournis.