1
00:00:05,540 --> 00:00:07,870
Comment instancier un transformer ?

2
00:00:07,870 --> 00:00:14,800
Dans cette vidéo, nous verrons comment créer et utiliser un modèle de la bibliothèque Transformers.

3
00:00:14,800 --> 00:00:20,130
Comme nous l'avons vu précédemment, la classe TFAutoModel vous permet d'instancier un modèle pré-entraîné à

4
00:00:20,130 --> 00:00:23,490
partir de n'importe quel checkpoint sur le Hub d'Hugging Face.

5
00:00:23,490 --> 00:00:27,740
Elle choisira la bonne classe de modèle dans la bibliothèque pour instancier l'architecture appropriée

6
00:00:27,740 --> 00:00:31,310
et charger les poids du modèle pré-entraîné à l'intérieur.

7
00:00:31,310 --> 00:00:36,630
Comme nous pouvons le voir, lorsqu'on nous donne un checkpoint BERT, nous nous retrouvons avec un TFBertModel, et de même

8
00:00:36,630 --> 00:00:39,890
pour GPT-2 ou BART.

9
00:00:39,890 --> 00:00:44,489
En coulisse, cette API peut prendre le nom d'un checkpoint sur le Hub, auquel cas

10
00:00:44,489 --> 00:00:49,649
elle téléchargera et mettra en cache le fichier de configuration ainsi que le fichier de poids du modèle.

11
00:00:49,649 --> 00:00:54,059
Vous pouvez également spécifier le chemin d'accès à un dossier local qui contient un fichier de configuration valide et

12
00:00:54,059 --> 00:00:56,739
un fichier de poids de modèle.

13
00:00:56,739 --> 00:01:02,480
Pour instancier le modèle pré-entraîné, l'API AutoModel ouvre d'abord le fichier de configuration

14
00:01:02,480 --> 00:01:06,409
pour examiner la classe de configuration à utiliser.

15
00:01:06,409 --> 00:01:13,509
La classe de configuration dépend du type de modèle (BERT, GPT-2 ou BART par exemple).

16
00:01:13,509 --> 00:01:18,130
Une fois qu'il a la classe de configuration appropriée, il peut instancier cette configuration, qui

17
00:01:18,130 --> 00:01:20,420
est un plan pour savoir comment créer le modèle.

18
00:01:20,420 --> 00:01:25,420
Il utilise également cette classe de configuration pour trouver la classe de modèle appropriée, qui est combinée

19
00:01:25,420 --> 00:01:28,470
avec la configuration chargée, pour charger le modèle.

20
00:01:28,470 --> 00:01:34,759
Ce modèle n'est pas encore notre modèle pré-entraîné car il vient d'être initialisé avec des poids aléatoires.

21
00:01:34,759 --> 00:01:40,299
La dernière étape consiste à charger les poids du fichier de modèle à l'intérieur de ce modèle.

22
00:01:40,299 --> 00:01:44,659
Pour charger facilement la configuration d'un modèle à partir de n'importe quel checkpoint ou d'un dossier contenant

23
00:01:44,659 --> 00:01:48,100
le dossier de configuration, nous pouvons utiliser la classe AutoConfig.

24
00:01:48,100 --> 00:01:54,270
Comme la classe TFAutoModel, elle choisira la bonne classe de configuration dans la bibliothèque.

25
00:01:54,270 --> 00:01:58,869
Nous pouvons également utiliser la classe spécifique correspondant à un checkpoint, mais nous devrons changer

26
00:01:58,869 --> 00:02:03,280
le code chaque fois que nous voudrons essayer un modèle différent.

27
00:02:03,280 --> 00:02:07,490
Comme nous l'avons dit précédemment, la configuration d'un modèle est un plan qui contient toutes les

28
00:02:07,490 --> 00:02:11,190
informations nécessaires pour créer l'architecture du modèle.

29
00:02:11,190 --> 00:02:14,629
Par exemple, le modèle BERT associé au checkpoint basé sur bert a 12 couches,

30
00:02:14,629 --> 00:02:21,790
une taille cachée de 768 et une taille de vocabulaire de 28 996.

31
00:02:21,790 --> 00:02:28,959
Une fois que nous avons la configuration, nous pouvons créer un modèle qui a la même architecture que

32
00:02:28,959 --> 00:02:31,420
notre checkpoint mais qui est initialisé de manière aléatoire.

33
00:02:31,420 --> 00:02:36,080
Nous pouvons ensuite l'entraîner à partir de zéro comme n'importe quel module PyTorch/modèle TensorFlow.

34
00:02:36,080 --> 00:02:40,870
Nous pouvons également modifier n'importe quelle partie de la configuration en utilisant des arguments de mots clés.

35
00:02:40,870 --> 00:02:48,379
Le deuxième extrait de code instancie un modèle BERT initialisé de manière aléatoire avec dix couches au lieu de 12.

36
00:02:48,379 --> 00:02:53,019
Enregistrer un modèle une fois qu'il est entraîné ou finetuné est très simple : il suffit d'utiliser la

37
00:02:53,019 --> 00:02:54,019
méthode `save_pretrained`.

38
00:02:54,019 --> 00:03:00,510
Ici, le modèle sera enregistré dans un dossier nommé `my-bert-model` dans le répertoire de travail actuel.

39
00:03:00,510 --> 00:03:13,120
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`.