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.