Hub documentation
Utiliser 🤗 transformers sur Hugging Face
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 :
- Extraction de la réponse à partir d'un contexte (question-answering).
- Créer des résumés à partir d'un long texte (summarization).
- Classer du texte (par exemple, en spam ou non spam, text-classification).
- Générer un nouveau texte avec des modèles tels que GPT (text-generation).
- Identifier les parties du discours (verbe, sujet, etc.) ou les entités (pays, organisation, etc.) dans une phrase (token-classification).
- Transcrire des fichiers audio en texte (automatic-speech-recognition).
- Classifiez le locuteur ou la langue dans un fichier audio (audio-classification).
- Détecter des objets dans une image (object-detection).
- Segmenter une image (image-segmentation).
- Faites de l'apprentissage par renforcement (reinforcement-learning) !
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.jsonstocke 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.safetensorsstocke 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 fichiermodel.safetensors.index.jsonpour 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,pthouckpt, maissafetensorsest 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.jsonqui 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.jsonstocke 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.jsonstocke le vocabulaire appris du modèle. - Le
special_tokens_map.jsonest 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.jsonest remplacé parpreprocessor_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
- Bibliothèque Transformers.
- Documentation de Transformers.
- Partager un guide de modèle.