subtitles/fr/11_instantiate-a-transformers-model-(tensorflow).srt (117 lines of code) (raw):
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`.