Transformers documentation

Configuration

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

and get access to the augmented documentation experience

to get started

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

< >

( 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 que pretrained_model_name_or_path si la configuration a été créée avec une telle méthode.
  • output_hidden_states (bool, facultatif, par défaut False) — Indique si le modèle doit retourner tous les états cachés.
  • output_attentions (bool, facultatif, par défaut False) — Indique si le modèle doit retourner toutes les attentions.
  • return_dict (bool, facultatif, par défaut True) — Indique si le modèle doit retourner un ModelOutput plutôt qu'un simple tuple.
  • is_encoder_decoder (bool, facultatif, valeur par défaut False) — Indique si le modèle est utilisé comme encodeur/décodeur ou non.
  • chunk_size_feed_forward (int, facultatif, valeur par défaut 0) — La taille des blocs de toutes les couches feed forward dans les blocs d'attention résiduelle. Une taille de bloc de 0 signifie que la couche feed forward n'est pas découpée. Une taille de bloc de n signifie que la couche feed forward traite n < 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 si hidden_states[-1] doit être le last_hidden_state aprè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èles XxxForSequenceClassification. Peut être "regression", "single_label_classification" ou "multi_label_classification".

Paramètres spécifiques à PyTorch

  • dtype (str, facultatif) — Le dtype des poids. Cet attribut permet d’initialiser le modèle avec un dtype non par défaut (normalement float32) afin d’optimiser l’allocation de la mémoire. Par exemple, si le modèle enregistré est en float16, il est idéal de le recharger en utilisant la quantité minimale de mémoire nécessaire pour charger des poids float16.

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 lorsque model.tensor_parallel est 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 appel fully_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

< >

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

Télé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")

default_config_fields

< >

( )

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

dict_dtype_to_str

< >

( d: dict[str, Any] )

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

< >

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

L'objet de configuration instancié à partir de ces paramètres.

Instancie un PreTrainedConfig à partir d'un dictionnaire Python de paramètres.

from_json_file

< >

( json_file: str | os.PathLike ) → PreTrainedConfig

Paramètres

  • json_file (str ou os.PathLike) — Chemin vers le fichier JSON contenant les paramètres.

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

< >

( 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 (str ou os.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 (str ou os.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éfaut False) — 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 (str ou bool, facultatif) — Le jeton à utiliser comme autorisation bearer HTTP pour les fichiers distants. Si True, ou non spécifié, utilisera le jeton généré lors de l’exécution de hf 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, donc revision peut ê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éfaut False) — Si False, alors cette fonction renvoie uniquement l'objet de configuration final.

    Si True, cette fonction renvoie un Tuple(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 de kwargs qui n'a pas été utilisée pour mettre à jour config et 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.

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

< >

( pretrained_model_name_or_path: str | os.PathLike**kwargs ) → tuple[Dict, Dict]

Paramètres

  • pretrained_model_name_or_path (str ou os.PathLike) — L'identifiant du point de contrôle pré-entraîné à partir duquel nous voulons obtenir le dictionnaire des paramètres.

Retourne

tuple[Dict, Dict]

Le(s) dictionnaire(s) qui sera(ont) utilisé(s) pour instancier l'objet de configuration.

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

get_mtp_config

< >

( )

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

< >

( decoder = Noneencoder = None )

Paramètres

  • decoder (Optional[bool], facultatif) — Si défini sur True, recherche uniquement les noms de configuration de décodeur.
  • encoder (Optional[bool], facultatif) — Si défini sur True, recherche uniquement les noms de configuration d’encodeur.

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 :

  1. Sur la plupart des modèles, il renvoie l'instance de configuration d'origine elle-même.
  2. 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.
  3. Sur les modèles composites plus anciens (2023-), il supprime les paramètres uniquement décodeur lorsque encoder=True et inversement.

is_custom_code

< >

( )

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.

is_remote_code

< >

( )

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

< >

( auto_class = 'AutoConfig' )

Paramètres

  • auto_class (str ou type, facultatif, par défaut "AutoConfig") — La classe auto auprès de laquelle enregistrer cette nouvelle configuration.

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

< >

( save_directory: str | os.PathLikepush_to_hub: bool = False**kwargs )

Paramètres

  • save_directory (str ou os.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éfaut False) — Indique s'il faut ou non pousser votre modèle sur le hub de modèles Hugging Face après l'avoir enregistré. Vous pouvez spécifier le dépôt auquel vous souhaitez pousser avec repo_id (par défaut, il s'agit du nom de save_directory dans votre espace de noms).
  • kwargs (dict[str, Any], facultatif) — Arguments supplémentaires passés à la méthode push_to_hub().

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

< >

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

< >

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

< >

( json_file_path: str | os.PathLikeuse_diff: bool = True )

Paramètres

  • json_file_path (str ou os.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éfaut True) — Si défini sur True, seule la différence entre l'instance de configuration et la configuration par défaut PreTrainedConfig() est sérialisée dans le fichier JSON.

Enregistrez cette instance dans un fichier JSON.

to_json_string

< >

( use_diff: bool = True ) → str

Paramètres

  • use_diff (bool, facultatif, valeur par défaut True) — Si défini sur True, seule la différence entre l'instance de configuration et la configuration par défaut PreTrainedConfig() 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

< >

( config_dict: dict[str, Any] )

Paramètres

  • config_dict (dict[str, Any]) — Dictionnaire des attributs à mettre à jour pour cette classe.

Met à jour les attributs de cette classe avec les attributs de config_dict.

update_from_string

< >

( update_str: str )

Paramètres

  • update_str (str) — Chaîne contenant les attributs à mettre à jour pour cette classe.

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.

validate

< >

( )

Exécuter les validateurs de classe sur l'instance.

validate_architecture

< >

( )

Fait partie de la validation basée sur @strict. Valide l'architecture de la configuration.

validate_layer_type

< >

( )

Vérifiez que mlp_layer_types et layer_types sont correctement définis.

validate_token_ids

< >

( )

Fait partie de la validation alimentée par @strict. Valide le contenu des jetons spéciaux.

Update on GitHub