Hub documentation

Utiliser 🤗 transformers sur Hugging Face

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Utiliser 🤗 transformers sur Hugging Face

🤗 transformers est une bibliothèque maintenue par Hugging Face et la communauté, dédiée au Machine Learning de pointe pour PyTorch, TensorFlow et JAX. Elle propose des milliers de modèles pré-entraînés pour effectuer des tâches sur différentes modalités, telles que le texte, la vision et l’audio. Nous sommes un peu partiaux, mais nous aimons vraiment 🤗 transformers !

Explorer 🤗 transformers sur le Hub

Il existe plus de 630 000 modèles transformers sur le Hub, que vous pouvez trouver en filtrant à gauche de la page des modèles.

Vous pouvez trouver des modèles pour de nombreuses tâches différentes :

Vous pouvez tester les modèles directement dans le navigateur grâce aux widgets intégrés, sans avoir à les télécharger.

Fichiers du dépôt Transformers

Un dépôt de modèle Transformers contient généralement des fichiers de modèle et des fichiers de préprocesseur.

Modèle

  • Le fichier config.json stocke les détails de l'architecture du modèle, tels que le nombre de couches cachées, la taille du vocabulaire, le nombre de têtes d'attention, les dimensions de chaque tête, et plus encore. Ces métadonnées constituent le plan du modèle.

  • Le fichier model.safetensors stocke les couches et les poids pré-entraînés des modèles. Pour les grands modèles, le fichier safetensors est découpé en plusieurs parties afin de limiter la quantité de mémoire nécessaire à son chargement. Parcourez le fichier model.safetensors.index.json pour voir depuis quel fichier safetensors les poids du modèle sont chargés.

    {
    "metadata": {
      "total_size": 16060522496
    },
    "weight_map": {
      "lm_head.weight": "model-00004-of-00004.safetensors",
      "model.embed_tokens.weight": "model-00001-of-00004.safetensors",
      ...
      }
    }

    Vous pouvez également visualiser cette correspondance en cliquant sur le bouton ↗ de la carte du modèle.

    Safetensors est un format de sérialisation plus sûr et plus rapide – par rapport à pickle – pour le stockage des poids de modèles. Vous pouvez rencontrer des poids sérialisés avec pickle dans des formats tels que bin, pth ou ckpt, mais safetensors est de plus en plus adopté dans l’écosystème des modèles comme meilleure alternative.

  • Un modèle peut également posséder un fichier generation_config.json qui stocke des détails sur la manière de générer du texte, tels que s'il faut effectuer un échantillonnage, les jetons supérieurs à partir desquels échantillonner, la température, ainsi que les jetons spéciaux pour démarrer et arrêter la génération.

Préprocesseur

  • Le fichier tokenizer_config.json stocke les jetons spéciaux ajoutés par un modèle. Ces jetons spéciaux signalent au modèle de nombreuses informations, telles que le début d'une phrase, un formatage spécifique pour les modèles de discussion, ou l'indication d'une image. Ce fichier indique également la longueur maximale de séquence d'entrée que le modèle peut accepter, la classe de préprocesseur et les sorties qu'il renvoie.
  • Le fichier tokenizer.json stocke le vocabulaire appris du modèle.
  • Le special_tokens_map.json est une correspondance des jetons spéciaux. Par exemple, dans Llama 3.1-8B-Instruct, le jeton de début de chaîne est "<|begin_of_text|>".

Pour les autres modalités, le fichier tokenizer_config.json est remplacé par preprocessor_config.json.

Utilisation de modèles existants

Tous les modèles transformer sont prêts à l'emploi ! Selon votre usage, vous pouvez utiliser l'API de haut niveau via la fonction pipeline ou recourir à AutoModel pour un contrôle plus fin.

# With pipeline, just specify the task and the model id from the Hub.
from transformers import pipeline
pipe = pipeline("text-generation", model="distilbert/distilgpt2")

# If you want more control, you will need to define the tokenizer and model.
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("distilbert/distilgpt2")
model = AutoModelForCausalLM.from_pretrained("distilbert/distilgpt2")

Vous pouvez également charger un modèle à partir d'une version spécifique (basée sur un hash de commit, un nom de tag ou une branche) comme suit :

model = AutoModel.from_pretrained(
    "julien-c/EsperBERTo-small", revision="v2.0.1"  # tag name, or branch name, or commit hash
)

Si vous souhaitez voir comment charger un modèle spécifique, vous pouvez cliquer sur Use in Transformers et un extrait de code fonctionnel vous sera fourni pour le charger ! Si vous avez besoin d’informations supplémentaires sur l’architecture du modèle, vous pouvez également cliquer sur « Read model documentation » en bas de l’extrait.

Partager vos modèles

Pour en savoir plus sur le partage de modèles avec transformers, rendez-vous dans le guide Partager un modèle de la documentation officielle.

De nombreuses classes de transformers, telles que les modèles et les tokenizers, disposent d'une méthode push_to_hub qui permet de téléverser facilement les fichiers vers un dépôt.

# Pushing model to your own account
model.push_to_hub("my-awesome-model")

# Pushing your tokenizer
tokenizer.push_to_hub("my-awesome-model")

# Pushing all things after training
trainer.push_to_hub()

Il y a beaucoup plus de choses que vous pouvez faire, nous vous suggérons donc de consulter le guide Partager un modèle.

Ressources supplémentaires

Update on GitHub