subtitles/fr/05_transformer-models-encoders.srt (135 lines of code) (raw):
1
00:00:04,320 --> 00:00:09,120
Dans cette vidéo, nous allons étudier l'architecture de l'encodeur. Un exemple d'architecture populaire
2
00:00:09,120 --> 00:00:13,120
composée uniquement d'un encodeur est BERT, qui est le modèle le plus populaire de ce type.
3
00:00:14,400 --> 00:00:20,880
Commençons d'abord par comprendre comment cela fonctionne. Nous allons utiliser un petit exemple, en utilisant trois mots. Nous les
4
00:00:20,880 --> 00:00:27,040
utilisons comme entrées et les transmettons via l'encodeur. Nous récupérons une représentation numérique
5
00:00:27,040 --> 00:00:34,160
de chaque mot. Ici, par exemple, l'encodeur convertit les trois mots « Welcome to NYC »
6
00:00:34,160 --> 00:00:40,880
en ces trois séquences de chiffres. L'encodeur génère exactement une séquence de nombres par
7
00:00:40,880 --> 00:00:46,880
mot d'entrée. Cette représentation numérique peut également être appelée « vecteur de caractéristiques » ou « tenseur de caractéristiques ».
8
00:00:48,880 --> 00:00:53,680
Plongeons dans cette représentation. Elle contient un vecteur par mot passé dans l'encodeur.
9
00:00:53,680 --> 00:00:59,680
Chacun de ces vecteurs est une représentation numérique du mot en question.
10
00:01:00,880 --> 00:01:06,400
La dimension de ce vecteur est définie par l'architecture du modèle, pour le modèle BERT de base,
11
00:01:06,400 --> 00:01:15,280
elle est de 768. Ces représentations contiennent la valeur d'un mot mais contextualisé.
12
00:01:15,280 --> 00:01:21,280
Par exemple, le vecteur attribué au mot « to », n'est pas la représentation du seul mot « to ».
13
00:01:22,160 --> 00:01:29,680
Il prend aussi en compte les mots qui l'entourent, que nous appelons le « contexte ». Il regarde le
14
00:01:29,680 --> 00:01:34,960
contexte de gauche, le mot à gauche de celui que nous étudions (ici le mot « Welcome ») et
15
00:01:34,960 --> 00:01:41,120
le context à droite (ici le mot « NYC ») et génère une valeur pour le mot, dans son contexte.
16
00:01:41,840 --> 00:01:49,280
Il s'agit donc d'une valeur contextualisée. On pourrait dire que le vecteur de 768 valeurs contient le
17
00:01:49,280 --> 00:01:55,840
« sens » de ce mot dans le texte. C'est grâce au mécanisme d'auto-attention.
18
00:01:57,120 --> 00:02:02,240
Le mécanisme d'auto-attention concerne différentes positions (ou différents mots) dans une seule
19
00:02:02,240 --> 00:02:08,320
séquence, afin de calculer une représentation de cette séquence. Comme nous l'avons vu précédemment, cela
20
00:02:08,320 --> 00:02:13,600
signifie que la représentation résultante d'un mot a été affectée par d'autres mots dans la séquence.
21
00:02:15,600 --> 00:02:20,160
Nous n'entrerons pas dans les détails ici, mais nous vous proposerons d'autres lectures si vous
22
00:02:20,160 --> 00:02:26,480
souhaitez mieux comprendre ce qui se passe sous le capot. Alors quand faut-il utiliser un encodeur ?
23
00:02:27,040 --> 00:02:33,680
Les encodeurs peuvent être utilisés comme modèles autonomes dans une grande variété de tâches. Par exemple, BERT, sans doute
24
00:02:33,680 --> 00:02:38,800
le modèle de transformer le plus célèbre, est un modèle encodeur et, au moment de sa sortie,
25
00:02:38,800 --> 00:02:44,000
surpassait l'état de l'art dans de nombreuses tâches de classification de séquences, tâches de questions-réponses
26
00:02:44,000 --> 00:02:50,240
et modélisation de langage masqué, pour n'en citer que quelques-unes. L'idée est que les encodeurs sont très puissants
27
00:02:50,240 --> 00:02:55,920
pour extraire des vecteurs contenant des informations significatives sur une séquence. Ce vecteur peut
28
00:02:55,920 --> 00:02:59,680
ensuite être géré par des couches supplémentaires de neurones pour leur donner un sens.
29
00:03:01,200 --> 00:03:04,240
Examinons quelques exemples où les encodeurs brillent vraiment.
30
00:03:06,080 --> 00:03:11,760
Tout d'abord, « Masked Language Modeling » ou MLM. Il s'agit de prédire un mot caché
31
00:03:11,760 --> 00:03:18,560
dans une séquence de mots. Ici, par exemple, nous avons masqué le mot entre « My » et « is ». C'est l'un
32
00:03:18,560 --> 00:03:24,000
des objectifs avec lesquels le BERT a été entraîné : il a été entraîné pour prédire les mots cachés dans une séquence.
33
00:03:25,040 --> 00:03:30,160
Les encodeurs brillent dans ce scénario en particulier car les informations bidirectionnelles sont cruciales ici.
34
00:03:30,960 --> 00:03:35,520
Si nous n'avions pas les mots à droite (« is », « Sylvain. » et « . »), il y a très peu de
35
00:03:35,520 --> 00:03:41,200
chances que BERT ait pu identifier « name » comme le mot correct. L'encodeur doit
36
00:03:41,200 --> 00:03:46,720
avoir une bonne compréhension de la séquence afin de prédire un mot masqué, car même si le texte est
37
00:03:46,720 --> 00:03:52,080
grammaticalement correct, il n'a pas nécessairement de sens dans le contexte de la séquence.
38
00:03:54,960 --> 00:03:58,720
Comme mentionné précédemment, les encodeurs sont efficaces pour effectuer la classification des séquences.
39
00:03:59,360 --> 00:04:03,560
L'analyse des sentiments est un exemple de tâche de classification de séquences.
40
00:04:04,240 --> 00:04:11,040
L'objectif du modèle est d'identifier le sentiment d'une séquence. Cela peut aller de l'attribution
41
00:04:11,040 --> 00:04:16,720
d'une note d'1 à 5 étoiles à une séquence si vous effectuez une analyse d'avis, à l'attribution d'une note positive ou négative
42
00:04:16,720 --> 00:04:22,800
à une séquence, comme c'est le cas ici. Par exemple ici, étant donné les deux séquences,
43
00:04:22,800 --> 00:04:28,800
nous utilisons le modèle pour calculer une prédiction et classer les séquences parmi ces deux classes :
44
00:04:28,800 --> 00:04:35,040
positive et négative. Bien que les deux séquences sont très similaires, contenant les mêmes mots,
45
00:04:35,040 --> 00:04:41,840
la signification est différente et le modèle d'encodeur est capable de saisir cette différence.