Comment instancier un transformer ?
Dans cette vidéo, nous verrons comment créer et utiliser un modèle de la bibliothèque Transformers.
Comme nous l'avons vu précédemment, la classe TFAutoModel vous permet d'instancier un modèle pré-entraîné à
partir de n'importe quel checkpoint sur le Hub d'Hugging Face.
Elle choisira la bonne classe de modèle dans la bibliothèque pour instancier l'architecture appropriée
et charger les poids du modèle pré-entraîné à l'intérieur.
Comme nous pouvons le voir, lorsqu'on nous donne un checkpoint BERT, nous nous retrouvons avec un TFBertModel, et de même
pour GPT-2 ou BART.
En coulisse, cette API peut prendre le nom d'un checkpoint sur le Hub, auquel cas
elle téléchargera et mettra en cache le fichier de configuration ainsi que le fichier de poids du modèle.
Vous pouvez également spécifier le chemin d'accès à un dossier local qui contient un fichier de configuration valide et
un fichier de poids de modèle.
Pour instancier le modèle pré-entraîné, l'API AutoModel ouvre d'abord le fichier de configuration
pour examiner la classe de configuration à utiliser.
La classe de configuration dépend du type de modèle (BERT, GPT-2 ou BART par exemple).
Une fois qu'il a la classe de configuration appropriée, il peut instancier cette configuration, qui
est un plan pour savoir comment créer le modèle.
Il utilise également cette classe de configuration pour trouver la classe de modèle appropriée, qui est combinée
avec la configuration chargée, pour charger le modèle.
Ce modèle n'est pas encore notre modèle pré-entraîné car il vient d'être initialisé avec des poids aléatoires.
La dernière étape consiste à charger les poids du fichier de modèle à l'intérieur de ce modèle.
Pour charger facilement la configuration d'un modèle à partir de n'importe quel checkpoint ou d'un dossier contenant
le dossier de configuration, nous pouvons utiliser la classe AutoConfig.
Comme la classe TFAutoModel, elle choisira la bonne classe de configuration dans la bibliothèque.
Nous pouvons également utiliser la classe spécifique correspondant à un checkpoint, mais nous devrons changer
le code chaque fois que nous voudrons essayer un modèle différent.
Comme nous l'avons dit précédemment, la configuration d'un modèle est un plan qui contient toutes les
informations nécessaires pour créer l'architecture du modèle.
Par exemple, le modèle BERT associé au checkpoint basé sur bert a 12 couches,
une taille cachée de 768 et une taille de vocabulaire de 28 996.
Une fois que nous avons la configuration, nous pouvons créer un modèle qui a la même architecture que
notre checkpoint mais qui est initialisé de manière aléatoire.
Nous pouvons ensuite l'entraîner à partir de zéro comme n'importe quel module PyTorch/modèle TensorFlow.
Nous pouvons également modifier n'importe quelle partie de la configuration en utilisant des arguments de mots clés.
Le deuxième extrait de code instancie un modèle BERT initialisé de manière aléatoire avec dix couches au lieu de 12.
Enregistrer un modèle une fois qu'il est entraîné ou finetuné est très simple : il suffit d'utiliser la
méthode `save_pretrained`.
Ici, le modèle sera enregistré dans un dossier nommé `my-bert-model` dans le répertoire de travail actuel.
Un tel modèle peut ensuite être rechargé à l'aide de la méthode `from_pretrained`. Pour apprendre comment envoyer ce modèle sur le Hub, regardez la vidéo sur l'API `push_to_hub`.