Transformers documentation
Configuration
Configuration
La classe de base PreTrainedConfig implémente les méthodes communes pour charger/enregistrer une configuration, soit depuis un fichier ou un répertoire local, soit depuis une configuration de modèle préentraîné fournie par la bibliothèque (téléchargée depuis le dépôt AWS S3 de HuggingFace).
Chaque classe de configuration dérivée implémente des attributs spécifiques au modèle. Les attributs communs présents dans toutes les classes de configuration sont : hidden_size, num_attention_heads et num_hidden_layers. Les modèles de texte implémentent en outre : vocab_size.
PreTrainedConfig
classe transformers.PreTrainedConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = None )
Paramètres
- name_or_path (
str, facultatif, par défaut"") — Stocke la chaîne de caractères transmise à PreTrainedModel.from_pretrained() en tant quepretrained_model_name_or_pathsi la configuration a été créée avec une telle méthode. - output_hidden_states (
bool, facultatif, par défautFalse) — Indique si le modèle doit retourner tous les états cachés. - output_attentions (
bool, facultatif, par défautFalse) — Indique si le modèle doit retourner toutes les attentions. - return_dict (
bool, facultatif, par défautTrue) — Indique si le modèle doit retourner un ModelOutput plutôt qu'un simple tuple. - is_encoder_decoder (
bool, facultatif, valeur par défautFalse) — Indique si le modèle est utilisé comme encodeur/décodeur ou non. - chunk_size_feed_forward (
int, facultatif, valeur par défaut0) — La taille des blocs de toutes les couches feed forward dans les blocs d'attention résiduelle. Une taille de bloc de0signifie que la couche feed forward n'est pas découpée. Une taille de bloc de n signifie que la couche feed forward traiten< sequence_length embeddings à la fois. Pour plus d'informations sur le découpage feed forward, voir Comment fonctionne le découpage Feed Forward ?. - per_layer_config (
dict[int | str, dict[str, Any]], facultatif) — Une correspondance creuse des indices de couches vers les attributs de configuration à remplacer. Chaque clé est un index de couche, et chaque valeur contient les attributs qui diffèrent de la configuration globale pour cette couche. - tie_last_hidden_states (
bool, facultatif) — Indique sihidden_states[-1]doit être lelast_hidden_stateaprès la normalisation finale plutôt que l’état caché avant la normalisation finale. Si non défini, la valeur par défaut intégrée au modèle est utilisée.
Paramètres pour les tâches de fine-tuning
- architectures (
list[str], facultatif) — Architectures de modèles pouvant être utilisées avec les poids pré-entraînés du modèle. - id2label (
dict[int, str], facultatif) — Une correspondance entre un index (par exemple, l’index de prédiction ou l’index cible) et une étiquette. - label2id (
dict[str, int], facultatif) — Une correspondance entre étiquette et index pour le modèle. - num_labels (
int, facultatif) — Nombre d'étiquettes à utiliser dans la dernière couche ajoutée au modèle, généralement pour une tâche de classification. - problem_type (
str, facultatif) — Type de problème pour les modèlesXxxForSequenceClassification. Peut être"regression","single_label_classification"ou"multi_label_classification".
Paramètres spécifiques à PyTorch
- dtype (
str, facultatif) — Ledtypedes poids. Cet attribut permet d’initialiser le modèle avec undtypenon par défaut (normalementfloat32) afin d’optimiser l’allocation de la mémoire. Par exemple, si le modèle enregistré est enfloat16, il est idéal de le recharger en utilisant la quantité minimale de mémoire nécessaire pour charger des poidsfloat16.
Classe de base pour toutes les classes de configuration. Gère plusieurs paramètres communs à toutes les configurations de modèles ainsi que des méthodes pour charger/télécharger/enregistrer les configurations.
Un fichier de configuration peut être chargé et enregistré sur le disque. Le chargement du fichier de configuration et l'utilisation de ce fichier pour initialiser un modèle ne chargent pas les poids du modèle. Cela n'affecte que la configuration du modèle.
Attributs de classe (réécrits par les classes dérivées) :
- model_type (
str) — Un identifiant pour le type de modèle, sérialisé dans le fichier JSON et utilisé pour recréer l'objet correct dans AutoConfig. - attribute_map (
dict[str, str]) — Un dictionnaire qui associe les noms d'attributs spécifiques au modèle à la nomenclature standardisée des attributs. - base_model_tp_plan (
dict[str, Any]) — Un dictionnaire qui associe les FQN des sous-modules d'un modèle de base à un plan de parallélisme tensoriel appliqué au sous-module lorsquemodel.tensor_parallelest appelé. - base_model_fsdp_plan (
dict[Any, str]) — Un dictionnaire qui associe les sous-modules d'un modèle de base à une stratégie de fractionnement FSDP2 (par ex."free_full_weight"/"keep_full_weight"). Les clés peuvent être des chemins de modules avec des caractères jokers (par ex."layers.*") ou des tuples de chemins (regroupés dans un seul appelfully_shard). - base_model_pp_plan (
dict[str, tuple[list[str]]]) — Un dictionnaire qui associe les sous-modules d'un modèle de base à un plan de parallélisme par pipeline permettant aux utilisateurs de placer le sous-module sur l'appareil approprié.
Attributs communs (présents dans toutes les sous-classes) :
- vocab_size (
int) — Le nombre de jetons dans le vocabulaire, qui correspond également à la première dimension de la matrice d’incorporations (cet attribut peut être absent pour les modèles qui n’ont pas de modalité texte, comme ViT). - hidden_size (
int) — La taille cachée du modèle. - num_attention_heads (
int) — Le nombre de têtes d'attention utilisées dans les couches d'attention multi-têtes du modèle. - num_hidden_layers (
int) — Le nombre de blocs dans le modèle.
Définir les paramètres de génération de séquences dans la configuration du modèle est obsolète. Pour des raisons de compatibilité ascendante, le chargement de certains d’entre eux restera possible, mais toute tentative de les écraser déclenchera une exception — vous devez les définir dans un [~transformers.GenerationConfig]. Consultez la documentation de [~transformers.GenerationConfig] pour plus d’informations sur les paramètres individuels.
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 configuration. Il doit contenir le nom de votre organisation lors d’une poussée vers une organisation donnée. - commit_message (
str, facultatif) — Message à committer lors de la poussée. La valeur par défaut est"Upload config". - 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échargez le fichier de configuration sur le 🤗 Model Hub.
Exemples :
from transformers import AutoConfig
config = AutoConfig.from_pretrained("google-bert/bert-base-cased")
# Push the config to your namespace with the name "my-finetuned-bert".
config.push_to_hub("my-finetuned-bert")
# Push the config to an organization with the name "my-finetuned-bert".
config.push_to_hub("huggingface/my-finetuned-bert")Récupère les valeurs par défaut de chaque champ annoté dans une dataclass, utilisé pour enregistrer le diff-dict.
Pour les configurations créées en v4 avec un __init__ personnalisé, il renvoie
un dictionnaire vide, enregistrant ainsi toutes les clés de self.__dict__. Pour les configurations plus récentes, il renvoie
les clés qui ont des valeurs par défaut déclarées en tant que champs, plutôt que dans __post_init__,
ce qui filtre uniquement ces champs spécifiques du fichier json sérialisé.
Vérifie si le dictionnaire passé et ses dictionnaires imbriqués possèdent une clé dtype et, si elle n’est pas None, convertit torch.dtype en une chaîne de caractères contenant uniquement le type. Par exemple, torch.float32 est converti en la chaîne “float32”, qui peut ensuite être stockée au format json.
from_dict
< source >( config_dict: dict[str, Any]**kwargs ) → PreTrainedConfig
Paramètres
- config_dict (
dict[str, Any]) — Dictionnaire qui sera utilisé pour instancier l’objet de configuration. Un tel dictionnaire peut être récupéré à partir d’un point de contrôle préentraîné en utilisant la méthode get_config_dict(). - kwargs (
dict[str, Any]) — Paramètres supplémentaires à partir desquels initialiser l'objet de configuration.
Retourne
L'objet de configuration instancié à partir de ces paramètres.
Instancie un PreTrainedConfig à partir d'un dictionnaire Python de paramètres.
from_json_file
< source >( json_file: str | os.PathLike ) → PreTrainedConfig
Paramètres
Retourne
L'objet de configuration instancié à partir de ce fichier JSON.
Instancie un PreTrainedConfig à partir du chemin d'accès vers un fichier JSON de paramètres.
from_pretrained
< source >( pretrained_model_name_or_path: str | os.PathLikecache_dir: str | os.PathLike | None = Noneforce_download: bool = Falselocal_files_only: bool = Falsetoken: str | bool | None = Nonerevision: str = 'main'**kwargs ) → PreTrainedConfig
Paramètres
- pretrained_model_name_or_path (
strouos.PathLike) — Cela peut être soit :- une chaîne de caractères, l'identifiant du modèle d'une configuration de modèle pré-entraîné hébergée dans un dépôt de modèles sur huggingface.co.
- un chemin vers un dossier contenant un fichier de configuration enregistré à l’aide de la méthode save_pretrained(), par exemple
./my_model_directory/. - un chemin vers un fichier JSON de configuration enregistré fichier, par exemple
./my_model_directory/configuration.json.
- cache_dir (
strouos.PathLike, facultatif) — Chemin vers un répertoire dans lequel la configuration d'un modèle pré-entraîné téléchargé doit être mise en cache si le cache standard ne doit pas être utilisé. - force_download (
bool, facultatif, par défautFalse) — Indique s'il faut forcer le (re)téléchargement des fichiers de configuration et remplacer les versions en cache si elles existent. - proxies (
dict[str, str], facultatif) — Un dictionnaire de serveurs proxy à utiliser par protocole ou point de terminaison, par exemple{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}.Les proxys sont utilisés pour chaque requête. - token (
stroubool, facultatif) — Le jeton à utiliser comme autorisation bearer HTTP pour les fichiers distants. SiTrue, ou non spécifié, utilisera le jeton généré lors de l’exécution dehf auth login(stocké dans~/.huggingface). - revision (
str, facultatif, par défaut"main") — La version spécifique du modèle à utiliser. Il peut s'agir d'un nom de branche, d'un nom de tag ou d'un identifiant de commit, car nous utilisons un système basé sur git pour stocker les modèles et autres artefacts sur huggingface.co, doncrevisionpeut être n'importe quel identifiant autorisé par git.Pour tester une pull request que vous avez créée sur le Hub, vous pouvez passer
revision="refs/pr/<pr_number>". - return_unused_kwargs (
bool, facultatif, défautFalse) — SiFalse, alors cette fonction renvoie uniquement l'objet de configuration final.Si
True, cette fonction renvoie unTuple(config, unused_kwargs)où unused_kwargs est un dictionnaire composé des paires clé/valeur dont les clés ne sont pas des attributs de configuration : c'est-à-dire la partie dekwargsqui n'a pas été utilisée pour mettre à jourconfiget qui est autrement ignorée. - subfolder (
str, facultatif, par défaut"") — Si les fichiers pertinents se trouvent dans un sous-dossier du dépôt de modèle sur huggingface.co, vous pouvez spécifier le nom du dossier ici. - kwargs (
dict[str, Any], facultatif) — Les valeurs de kwargs correspondant à des attributs de configuration sont utilisées pour remplacer les valeurs chargées. Le comportement concernant les paires clé/valeur dont les clés ne sont pas des attributs de configuration est contrôlé par le paramètre mot-cléreturn_unused_kwargs.
Retourne
L'objet de configuration instancié à partir de ce modèle pré-entraîné.
Instanciez un PreTrainedConfig (ou une classe dérivée) à partir de la configuration d'un modèle pré-entraîné.
Exemples :
# We can't instantiate directly the base class *PreTrainedConfig* so let's show the examples on a
# derived class: BertConfig
config = BertConfig.from_pretrained(
"google-bert/bert-base-uncased"
) # Download configuration from huggingface.co and cache.
config = BertConfig.from_pretrained(
"./test/saved_model/"
) # E.g. config (or model) was saved using *save_pretrained('./test/saved_model/')*
config = BertConfig.from_pretrained("./test/saved_model/my_configuration.json")
config = BertConfig.from_pretrained("google-bert/bert-base-uncased", output_attentions=True, foo=False)
assert config.output_attentions == True
config, unused_kwargs = BertConfig.from_pretrained(
"google-bert/bert-base-uncased", output_attentions=True, foo=False, return_unused_kwargs=True
)
assert config.output_attentions == True
assert unused_kwargs == {"foo": False}get_config_dict
< source >( pretrained_model_name_or_path: str | os.PathLike**kwargs ) → tuple[Dict, Dict]
À partir d’un pretrained_model_name_or_path, résout en un dictionnaire de paramètres, à utiliser pour instancier un PreTrainedConfig à l’aide de from_dict.
Retourne la configuration de texte mtp à utiliser pour créer le modèle MTP. Étant donné que les couches MTP sont créées en instanciant les mêmes classes que le modèle principal, il est nécessaire de réécrire les propriétés spécifiques à l’index de la configuration, telles que layer_types ou mtp_layer_types, afin de créer les couches mtp correctes et d’éviter les problèmes d’indexation dans les couches (car les couches MTP repartent l’indexation des couches à 0).
get_text_config
< source >( decoder = Noneencoder = None )
Retourne la configuration de texte associée à l'entrée de texte (encodeur) ou à la sortie de texte (décodeur) du modèle. Les arguments d'entrée decoder et encoder peuvent être utilisés pour spécifier quelle extrémité du modèle nous intéresse, ce qui est utile pour les modèles qui disposent à la fois de modalités d'entrée et de sortie de texte.
Il existe trois résultats possibles à l'utilisation de cette méthode :
- Sur la plupart des modèles, il renvoie l'instance de configuration d'origine elle-même.
- Sur les modèles composites plus récents (2024+), il renvoie la section texte de la configuration, qui est imbriquée sous un ensemble de noms valides.
- Sur les modèles composites plus anciens (2023-), il supprime les paramètres uniquement décodeur lorsque
encoder=Trueet inversement.
Indique si la configuration actuelle est du code personnalisé, c'est-à-dire soit du code chargé depuis le hub, soit défini dans un module/session spécifique à l'utilisateur.
Indique si la configuration actuelle est du code personnalisé, c'est-à-dire du code chargé depuis le hub, ou une classe que nous venons d'enregistrer via register_for_auto_class.
register_for_auto_class
< source >( auto_class = 'AutoConfig' )
Enregistrez cette classe avec une classe auto donnée. Cela ne doit être utilisé que pour les configurations personnalisées, car celles de la bibliothèque sont déjà associées à AutoConfig.
save_pretrained
< source >( save_directory: str | os.PathLikepush_to_hub: bool = False**kwargs )
Paramètres
- save_directory (
strouos.PathLike) — Répertoire où le fichier JSON de configuration sera enregistré (il sera créé s'il n'existe pas). - push_to_hub (
bool, facultatif, par défautFalse) — Indique s'il faut ou non pousser votre modèle sur le hub de modèles Hugging Face après l'avoir enregistré. Vous pouvez spécifier le dépôt auquel vous souhaitez pousser avecrepo_id(par défaut, il s'agit du nom desave_directorydans votre espace de noms). - kwargs (
dict[str, Any], facultatif) — Arguments supplémentaires passés à la méthode push_to_hub().
Enregistrer un objet de configuration dans le répertoire save_directory afin qu'il puisse être rechargé à l'aide de la méthode de classe from_pretrained().
to_dict
< source >( ) → dict[str, Any]
Retourne
dict[str, Any]
Dictionnaire de tous les attributs qui composent cette instance de configuration.
Sérialise cette instance en dictionnaire Python.
to_diff_dict
< source >( ) → dict[str, Any]
Retourne
dict[str, Any]
Dictionnaire de tous les attributs qui composent cette instance de configuration.
Supprime tous les attributs de la configuration qui correspondent aux attributs de la configuration par défaut pour une meilleure lisibilité, tout en conservant toujours l'attribut config de la classe. Sérialise en dictionnaire Python.
to_json_file
< source >( json_file_path: str | os.PathLikeuse_diff: bool = True )
Paramètres
- json_file_path (
strouos.PathLike) — Chemin du fichier JSON dans lequel les paramètres de cette instance de configuration seront enregistrés. - use_diff (
bool, facultatif, valeur par défautTrue) — Si défini surTrue, seule la différence entre l'instance de configuration et la configuration par défautPreTrainedConfig()est sérialisée dans le fichier JSON.
Enregistrez cette instance dans un fichier JSON.
to_json_string
< source >( use_diff: bool = True ) → str
Paramètres
- use_diff (
bool, facultatif, valeur par défautTrue) — Si défini surTrue, seule la différence entre l'instance de configuration et la configuration par défautPreTrainedConfig()est sérialisée en chaîne JSON.
Retourne
str
Chaîne de caractères contenant tous les attributs qui composent cette instance de configuration au format JSON.
Sérialise cette instance en chaîne JSON.
update
< source >( config_dict: dict[str, Any] )
Met à jour les attributs de cette classe avec les attributs de config_dict.
update_from_string
< source >( update_str: str )
Met à jour les attributs de cette classe avec les attributs de update_str.
Le format attendu est des entiers, des flottants et des chaînes de caractères tels quels, et pour les booléens, utilisez true ou false. Par exemple :
“n_embd=10,resid_pdrop=0.2,scale_attn_weights=false,summary_type=cls_index”
Les clés à modifier doivent déjà exister dans l'objet de configuration.
Exécuter les validateurs de classe sur l'instance.
Fait partie de la validation basée sur @strict. Valide l'architecture de la configuration.
Vérifiez que mlp_layer_types et layer_types sont correctement définis.
Fait partie de la validation alimentée par @strict. Valide le contenu des jetons spéciaux.