NLP Course documentation

Utilisation de modèles pré-entraînés

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Utilisation de modèles pré-entraînés

Ask a Question

Le Hub rend simple la sélection d’un modèle et permet alors que celui-ci puisse être utilisé dans toute bibliothèque en aval en seulement quelques lignes de code. Voyons comment utiliser concrètement l’un de ces modèles et comment contribuer au développement de la communauté.

Supposons que nous recherchions un modèle basé sur le français, capable de remplir des masques.

Selecting the Camembert model.

Nous choisissons le checkpoint camembert-base pour essayer. L’identifiant camembert-base est tout ce dont nous avons besoin pour commencer à utiliser le modèle ! Comme vous l’avez vu dans les chapitres précédents, nous pouvons l’instancier en utilisant la fonction pipeline() :

from transformers import pipeline

camembert_fill_mask = pipeline("fill-mask", model="camembert-base")
results = camembert_fill_mask("Le camembert est <mask> :)")
[
  {'sequence': 'Le camembert est délicieux :)', 'score': 0.49091005325317383, 'token': 7200, 'token_str': 'délicieux'}, 
  {'sequence': 'Le camembert est excellent :)', 'score': 0.1055697426199913, 'token': 2183, 'token_str': 'excellent'}, 
  {'sequence': 'Le camembert est succulent :)', 'score': 0.03453313186764717, 'token': 26202, 'token_str': 'succulent'}, 
  {'sequence': 'Le camembert est meilleur :)', 'score': 0.0330314114689827, 'token': 528, 'token_str': 'meilleur'}, 
  {'sequence': 'Le camembert est parfait :)', 'score': 0.03007650189101696, 'token': 1654, 'token_str': 'parfait'}
]

Comme vous pouvez le constater, le chargement d’un modèle dans un pipeline est extrêmement simple. La seule chose à laquelle vous devez faire attention est que le checkpoint choisi soit adapté à la tâche pour laquelle il va être utilisé. Par exemple, ici nous chargeons le checkpoint camembert-base dans le pipeline fill-mask, ce qui est tout à fait correct. Mais si nous chargerions ce checkpoint dans le pipeline text-classification, les résultats n’auraient aucun sens car la tête de camembert-base n’est pas adaptée à cette tâche ! Nous recommandons d’utiliser le sélecteur de tâche dans l’interface du Hub afin de sélectionner les checkpoints appropriés :

The task selector on the web interface.

Vous pouvez également instancier le checkpoint en utilisant directement l’architecture du modèle :

from transformers import CamembertTokenizer, CamembertForMaskedLM

tokenizer = CamembertTokenizer.from_pretrained("camembert-base")
model = CamembertForMaskedLM.from_pretrained("camembert-base")

Cependant, nous recommandons d’utiliser les classes Auto* à la place, car elles sont par conception indépendantes de l’architecture. Alors que l’exemple de code précédent limite les utilisateurs aux checkpoints chargeables dans l’architecture CamemBERT, l’utilisation des classes Auto* facilite le changement de checkpoint :

from transformers import AutoTokenizer, AutoModelForMaskedLM

tokenizer = AutoTokenizer.from_pretrained("camembert-base")
model = AutoModelForMaskedLM.from_pretrained("camembert-base")
Lorsque vous utilisez un modèle pré-entraîné, assurez-vous de vérifier comment il a été entraîné, sur quels jeux de données, ses limites et ses biais. Toutes ces informations doivent être indiquées dans sa carte.