Pytorch
TensorFlow

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

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.

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 :

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.