SlideShare une entreprise Scribd logo
1  sur  58
Transformer
Réalisé par :
BABZINE BAHIJA
ER-RAHMOUNY ZOHAYR
Encadré par :
Mr. El-fenaouy Reda
Mr. Gardelle Bertin
INTRODUCTION
01
Mécanisme d’Attention
03
Encoder/Decoder
02
PLAN:
Conclusion
05
Transformer
04
SEQtoSEQ
Un modèle de séquence à séquence est un modèle qui prend une séquence d’éléments (mots, lettres,
caractéristiques d’une image, etc.) et en sort une autre séquence. Un modèle entraîné fonctionnerait
comme ça :
SEQtoSEQ
Un modèle de séquence à séquence est un modèle qui prend une séquence d’éléments (mots, lettres,
caractéristiques d’une image, etc.) et en sort une autre séquence. Un modèle entraîné fonctionnerait
comme ça :
Encoder-Decoder
Encoder-Decoder
01 L' encodeur Couches d'unités récurrentes où, à chaque pas de temps, un
jeton d'entrée est reçu, collectant des informations pertinentes
et produisant un état caché. Cela dépend du type de RNN
Encoder-Decoder
02 Vecteur Contexte
souvent utilisé pour représenter le contexte environnant d'un mot spécifique
dans une phrase ou un texte. Il capture les informations sémantiques et
syntaxiques du contexte et peut être utilisé pour effectuer diverses tâches, telles
que la prédiction de mots manquants ou la détermination du sens d'un mot en se
basant sur son contexte
Encoder-Decoder
Le contexte est un vecteur de flottants. Plus loin, nous allons visualiser les vecteurs en
couleur en assignant des couleurs plus claires aux cellules avec des valeurs plus élevées.
la taille du vecteur de context 265,512,1024
03 Le décodeur
Couches d'unités récurrentes - par exemple, LSTM - où chaque unité
produit une sortie à un pas de temps t . L'état caché de la première
unité est le vecteur d'encodeur et les autres unités acceptent l'état
caché de l'unité précédente. La sortie est calculée à l'aide d'une
fonction softmax pour obtenir une probabilité pour chaque jeton
dans le vocabulaire de sortie.
Encoder-Decoder
L' encodeur
Dans un problème de question-réponse, la séquence d'entrée est une
collection de tous les mots de la question. Chaque mot est représenté
par x_i où i est l'ordre de ce mot.
les états cachés h_i sont calculés à l'aide de la formule :
Cette formule simple représente le résultat d'un réseau neuronal récurrent ordinaire. Comme vous
pouvez le voir, nous appliquons simplement les poids appropriés à l'état caché précédent h_(t-1) et au
vecteur d'entrée x_t.
Le décodeur
•Dans le problème de question-réponse, la séquence de sortie est
une collection de tous les mots de la réponse. Chaque mot est
représenté par y_i où i est l'ordre de ce mot.
•Tout état caché h_i est calculé à l'aide de la formule :
nous utilisons simplement l'état caché précédent pour calculer le suivant.
Encoder-Decoder pour RNN
RNN prend deux entrées à chaque pas de temps : une entrée (dans le cas de l’encodeur, un mot de la
phrase d’entrée), et un état caché. Le mot, cependant, doit être représenté par un vecteur. Pour transformer
un mot en vecteur, nous nous tournons vers les méthodes d’embedding. Ils transforment les mots en
espaces vectoriels qui capturent une grande partie de l’information sémantique des mots
Encoder-Decoder machine translation
Encoder-Decoder
LSTM
Encoder-Decoder machine translation
Encoder-Decoder
Encoder-Decoder
Encoder-Decoder LSTM structure for chatting
Encoder-Decoder pour RNN
Mécanisme d’Attention
Mécanisme d’Attention
Le vecteur de contexte a été identifié comme une limite pour ces types de modèles, ce qui signifie qu'il a posé un
problème ou une contrainte. En d'autres termes, le vecteur de contexte a été considéré comme une restriction ou
une difficulté pour ces modèles.
 La solution est la mécanisme d’attention qui améliora considérablement la qualité des systèmes. L’attention
permet au modèle de se concentrer sur les parties pertinentes de la séquence d’entrée si nécessaire.
Mécanisme d’Attention
Les mécanismes d'attention dans l'apprentissage en profondeur sont utilisés pour
aider le modèle à se concentrer sur les parties les plus pertinentes de l'entrée lors
de la réalisation d'une prédiction. Dans de nombreux problèmes, les données
d'entrée peuvent être très volumineuses et complexes , et il peut être difficile
pour le modèle de tout traiter. Les mécanismes d'attention permettent au modèle
de se concentrer sélectivement sur les parties de l'entrée qui sont les plus
importantes pour faire une prédiction, et d'ignorer les parties les moins
pertinentes. Cela peut aider le modèle à faire des prédictions plus précises et à
fonctionner plus efficacement.
Mécanisme d’Attention
Exemple:
dans les tâches de traitement du langage naturel telles que la traduction, le
mécanisme d'attention peut aider le modèle à comprendre le sens des mots
dans leur contexte. Au lieu de simplement traiter chaque mot
individuellement, le mécanisme d'attention permet au modèle de
considérer les mots concernant les autres mots de la phrase, ce qui peut
l'aider à comprendre sa signification globale.
Mécanisme d’Attention
Transformer
Je suis étudiant I am a student
Input Output
Transformer
Transformer
Transformer
Transformer
Encoder :
Transformer
Une couche qui aide l'encodeur
à regarder d'autres mots dans la
phrase d'entrée lorsqu'il encode
un mot spécifique.
Encoder :
Transformer
une couche de neurones qui traite les entrées
indépendamment les unes des autres, sans
prendre en compte la séquence ou la position
des données. Cette couche est utilisée pour
transformer les représentations de la couche
précédente en des représentations plus riches
et plus utiles pour la tâche en cours.
Encoder :
Transformer
Décoder :
Transformer
transformer chaque mot d'entrée en un vecteur à l'aide d'un algorithme d’embedding.
X1
Je suis
X3
X2
étudiant
Chaque mot est
incorporé dans un
vecteur de taille 512
Transformer
Remarque
dépendances entre ces
chemins dans la couche
d’auto-attention.
Feed Foward Neural Network
n’a pas ces dépendances et
donc les différents chemins
peuvent être exécutés en
parallèle lors de cette couche.
Transformer
L’encodage
Transformer
Self-Attention
” The animal didn't cross the street because it was too tired”
Transformer
Self-Attention
calcul de Self-Attention dans un transformateur consiste à :
Transformer
Self-Attention
calcul de Self-Attention dans un transformateur consiste à :
Étape 1 : créez trois vecteurs à partir de chacun des
vecteurs d'entrée de l'encodeur :
Query, Key, Value
en multipliant l’embedding par trois matrices que
nous avons entraînées pendant le processus
d'entraînement (1x512).
xi (64x512):
qi = xi WQ
Ki = xi WK
Vi = xi WV
Transformer
Étape 2 : calculer maintenant le score pour
déterminer comment d'attention à
accorder à d'autres Parties de l'entrée.
Prenons le produit scalaire Query avec Key
Exemple :pour le mot « Thinking" en
position 1, le premier score serait le produit
scalaire de q1 et k1. Le deuxième score
serait le produit scalaire de q1 et k2.
,
Transformer
Étape 3 : diviser les scores par la racine carrée
de la dimension des vecteurs clés (gradients
plus stables).
Etape 4 : passe le résultat par une opération
softmax (normalise les scores)
Transformer
Étape 5 : multiplier chaque vecteur de valeur
par le score softmax
Étape 6 : consiste à sommer les vecteurs de
valeur pondérés. Cela produit la sortie de la
couche d'auto-attention à cette position (pour
le premier mot).
Transformer
Tableau pour le traitement du mot « Bonjour »
Transformer
Tableau pour le traitement du mot « Je »
Transformer
Tableau pour le traitement du mot « suis »
Transformer
Calcul matriciel de Self-Attention
Calculer les matrices Query , Key et Value. Pour ce faire,
nous regroupons nos embedding dans une matrice X ,
et multiplions par les matrices de poids que nous avons
entrainées ( WQ , WK , WV
Transformer
les sorties de la couche Self-Attention
Calcul matriciel de Self-Attention
Transformer
La bête à plusieurs têtes
Au lieu d’exécuter une seule fonction d’attention il est avantageux de projeter linéairement les requêtes, les
clés et les valeurs h fois avec différentes projections linéaires apprises sur les dimensions dk, dk et dv,
respectivement.
Ce mécanisme est appelé « attention multi-têtes ». Cela améliore les performances de
la couche d’attention de deux façons :
Transformer
La bête à plusieurs têtes
Ce mécanisme est appelé « attention multi-têtes ». Cela améliore les performances de la
couche d’attention de deux façons :
1. Élargissement de la capacité du modèle à se concentrer sur différentes positions : L'attention multi-
têtes permet au modèle de considérer différentes relations et positions dans une phrase.
1. Il donne à la couche d’attention de multiples « sous-espaces de représentation ». Comme nous le
verrons plus loin, avec l’attention à plusieurs têtes, nous n’avons pas seulement un, mais plusieurs
ensembles de matrices de poids Query/Key/Value (le transformer utilise huit têtes d’attention, donc
nous obtenons huit ensembles pour chaque encodeur/décodeur). Chacun de ces ensembles est
initialisé au hasard. Ensuite, après l’entraînement, chaque ensemble est utilisé pour projeter les
enchâssements d’entrée (ou les vecteurs des encodeurs/décodeurs inférieurs) dans un sous-espace
de représentation différent.
Exemple: "Marie a donné des roses à Susane"
Transformer
La bête à plusieurs têtes
Transformer
La bête à plusieurs têtes
Si nous faisons le même calcul d’auto-attention que nous avons décrit ci-dessus, huit fois
avec des matrices de poids différentes, nous obtenons huit matrices Z différente
On obtient 8 matrices Zi de dimension 64 et 8×64 = 512
Transformer
La bête à plusieurs têtes
En concaténant les matrices puis les multipliant par une matrice de poids supplémentaire WO.
Transformer
La bête à plusieurs têtes
Résumons l’ensemble des étapes sous la forme d’un unique graphique récapitulatif :
Transformer
La bête à plusieurs têtes
Donc le mot « *it* », une tête d’attention
(traits en orange) se concentre sur « *the
animal* », tandis qu’une autre (traits en
vert) se concentre sur « *tired* ».
Transformer
L’encodage positionnel
Pour régler ça, le transformer ajoute un vecteur à chaque embedding d’entrée. Ces vecteurs suivent un
forme particulière que le modèle apprend ce qui l’aide à déterminer la position de chaque mot (ou la
distance entre les différents mots dans la séquence).
Transformer
L’encodage positionnel
Si nous supposons que l’enchâssement a une dimension de 4, les encodages positionnels
ressembleraient à ceci :
Transformer
L’encodage positionnel
La formule d’encodage positionnel est :
Transformer
côté décodeur
Transformer
côté décodeur
Transformer
Les couches finales : linéaire et softmax
Transformer
https://jalammar.github.io/illustrated-transformer/
https://ledatascientist.com/amp/a-la-decouverte-du-transformer/
https://france.devoteam.com/paroles-dexperts/attention-is-all-you-need-comprendre-
le-traitement-naturel-du-langage-avec-les-modeles-transformers/
https://blent.ai/blog/a/transformers-deep-learning
https://vaclavkosar.com/ml/Feed-Forward-Self-Attendion-Key-Value-Memory
https://nlp.seas.harvard.edu/2018/04/03/attention.html
https://deepfrench.gitlab.io/deep-learning-project/
https://www.exxactcorp.com/blog/Deep-Learning/a-deep-dive-into-the-transformer-
architecture-the-development-of-transformer-models
Merci pour
votre
attention

Contenu connexe

Similaire à To_understand_transformers_together presentation

Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite completChahrawoods Dmz
 
Cours algorithmique et complexite
Cours algorithmique et complexite Cours algorithmique et complexite
Cours algorithmique et complexite Saddem Chikh
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite completChahrawoods Dmz
 
Généralités sur la notion d’Algorithme
Généralités sur la notion d’AlgorithmeGénéralités sur la notion d’Algorithme
Généralités sur la notion d’AlgorithmeInforMatica34
 
Convolutional Neural Networks (CNNs)
Convolutional Neural Networks (CNNs)Convolutional Neural Networks (CNNs)
Convolutional Neural Networks (CNNs)Hajar Bouchriha
 
Eléments du langage Java.pdf
Eléments du langage  Java.pdfEléments du langage  Java.pdf
Eléments du langage Java.pdfAabidiHafid
 
Les fonction recursives en Programation C.pptx
Les fonction recursives en Programation C.pptxLes fonction recursives en Programation C.pptx
Les fonction recursives en Programation C.pptxAgnawpin
 
Les bases de la programmation en JAVA
Les bases de la programmation  en JAVA   Les bases de la programmation  en JAVA
Les bases de la programmation en JAVA Asmaa BENGUEDDACH
 
Fondements du machine learning
Fondements du machine learningFondements du machine learning
Fondements du machine learningFrederic Simard
 
Les réseaux de neurones convolutifs CNN
Les réseaux de neurones convolutifs CNNLes réseaux de neurones convolutifs CNN
Les réseaux de neurones convolutifs CNNSALMARACHIDI1
 
Initiation à l'algorithmique
Initiation à l'algorithmiqueInitiation à l'algorithmique
Initiation à l'algorithmiqueAbdoulaye Dieng
 
Rapport-du-projet CNN.docx
Rapport-du-projet CNN.docxRapport-du-projet CNN.docx
Rapport-du-projet CNN.docxkhalil Ismail
 
Introduction to Machine learning
Introduction to Machine learningIntroduction to Machine learning
Introduction to Machine learningQuentin Ambard
 
Visual Transformer Overview
Visual Transformer OverviewVisual Transformer Overview
Visual Transformer OverviewDr Hajji Hicham
 
Qualité logicielle
Qualité logicielleQualité logicielle
Qualité logiciellecyrilgandon
 
Fondamentaux java
Fondamentaux javaFondamentaux java
Fondamentaux javaInes Ouaz
 

Similaire à To_understand_transformers_together presentation (20)

Comparaison
ComparaisonComparaison
Comparaison
 
langage C++
langage C++langage C++
langage C++
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite complet
 
Cours algorithmique et complexite
Cours algorithmique et complexite Cours algorithmique et complexite
Cours algorithmique et complexite
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite complet
 
Généralités sur la notion d’Algorithme
Généralités sur la notion d’AlgorithmeGénéralités sur la notion d’Algorithme
Généralités sur la notion d’Algorithme
 
Convolutional Neural Networks (CNNs)
Convolutional Neural Networks (CNNs)Convolutional Neural Networks (CNNs)
Convolutional Neural Networks (CNNs)
 
Eléments du langage Java.pdf
Eléments du langage  Java.pdfEléments du langage  Java.pdf
Eléments du langage Java.pdf
 
Les fonction recursives en Programation C.pptx
Les fonction recursives en Programation C.pptxLes fonction recursives en Programation C.pptx
Les fonction recursives en Programation C.pptx
 
POO en C++: Les fonctions
POO en C++: Les fonctionsPOO en C++: Les fonctions
POO en C++: Les fonctions
 
Les bases de la programmation en JAVA
Les bases de la programmation  en JAVA   Les bases de la programmation  en JAVA
Les bases de la programmation en JAVA
 
Fondements du machine learning
Fondements du machine learningFondements du machine learning
Fondements du machine learning
 
Les réseaux de neurones convolutifs CNN
Les réseaux de neurones convolutifs CNNLes réseaux de neurones convolutifs CNN
Les réseaux de neurones convolutifs CNN
 
Initiation à l'algorithmique
Initiation à l'algorithmiqueInitiation à l'algorithmique
Initiation à l'algorithmique
 
Rapport-du-projet CNN.docx
Rapport-du-projet CNN.docxRapport-du-projet CNN.docx
Rapport-du-projet CNN.docx
 
Introduction to Machine learning
Introduction to Machine learningIntroduction to Machine learning
Introduction to Machine learning
 
Apprentissage du java
Apprentissage du javaApprentissage du java
Apprentissage du java
 
Visual Transformer Overview
Visual Transformer OverviewVisual Transformer Overview
Visual Transformer Overview
 
Qualité logicielle
Qualité logicielleQualité logicielle
Qualité logicielle
 
Fondamentaux java
Fondamentaux javaFondamentaux java
Fondamentaux java
 

Plus de bahija babzine

Bidirectional Encoder Representations from Transformers
Bidirectional Encoder Representations from TransformersBidirectional Encoder Representations from Transformers
Bidirectional Encoder Representations from Transformersbahija babzine
 
Bidirectional Encoder Representations from Transformers
Bidirectional Encoder Representations from TransformersBidirectional Encoder Representations from Transformers
Bidirectional Encoder Representations from Transformersbahija babzine
 
Recurrent neural network_PresentationRNN.pptx
Recurrent neural network_PresentationRNN.pptxRecurrent neural network_PresentationRNN.pptx
Recurrent neural network_PresentationRNN.pptxbahija babzine
 
Introduction aux systèmes de recommandation part 3.pptx
Introduction aux systèmes  de recommandation part 3.pptxIntroduction aux systèmes  de recommandation part 3.pptx
Introduction aux systèmes de recommandation part 3.pptxbahija babzine
 
Introduction aux systèmes de recommandation part 2.pptx
Introduction aux systèmes  de recommandation part 2.pptxIntroduction aux systèmes  de recommandation part 2.pptx
Introduction aux systèmes de recommandation part 2.pptxbahija babzine
 
Introduction aux systèmes de recommandation.pptx
Introduction aux systèmes  de recommandation.pptxIntroduction aux systèmes  de recommandation.pptx
Introduction aux systèmes de recommandation.pptxbahija babzine
 

Plus de bahija babzine (6)

Bidirectional Encoder Representations from Transformers
Bidirectional Encoder Representations from TransformersBidirectional Encoder Representations from Transformers
Bidirectional Encoder Representations from Transformers
 
Bidirectional Encoder Representations from Transformers
Bidirectional Encoder Representations from TransformersBidirectional Encoder Representations from Transformers
Bidirectional Encoder Representations from Transformers
 
Recurrent neural network_PresentationRNN.pptx
Recurrent neural network_PresentationRNN.pptxRecurrent neural network_PresentationRNN.pptx
Recurrent neural network_PresentationRNN.pptx
 
Introduction aux systèmes de recommandation part 3.pptx
Introduction aux systèmes  de recommandation part 3.pptxIntroduction aux systèmes  de recommandation part 3.pptx
Introduction aux systèmes de recommandation part 3.pptx
 
Introduction aux systèmes de recommandation part 2.pptx
Introduction aux systèmes  de recommandation part 2.pptxIntroduction aux systèmes  de recommandation part 2.pptx
Introduction aux systèmes de recommandation part 2.pptx
 
Introduction aux systèmes de recommandation.pptx
Introduction aux systèmes  de recommandation.pptxIntroduction aux systèmes  de recommandation.pptx
Introduction aux systèmes de recommandation.pptx
 

To_understand_transformers_together presentation

  • 1. Transformer Réalisé par : BABZINE BAHIJA ER-RAHMOUNY ZOHAYR Encadré par : Mr. El-fenaouy Reda Mr. Gardelle Bertin
  • 3. SEQtoSEQ Un modèle de séquence à séquence est un modèle qui prend une séquence d’éléments (mots, lettres, caractéristiques d’une image, etc.) et en sort une autre séquence. Un modèle entraîné fonctionnerait comme ça :
  • 4. SEQtoSEQ Un modèle de séquence à séquence est un modèle qui prend une séquence d’éléments (mots, lettres, caractéristiques d’une image, etc.) et en sort une autre séquence. Un modèle entraîné fonctionnerait comme ça :
  • 7. 01 L' encodeur Couches d'unités récurrentes où, à chaque pas de temps, un jeton d'entrée est reçu, collectant des informations pertinentes et produisant un état caché. Cela dépend du type de RNN Encoder-Decoder
  • 8. 02 Vecteur Contexte souvent utilisé pour représenter le contexte environnant d'un mot spécifique dans une phrase ou un texte. Il capture les informations sémantiques et syntaxiques du contexte et peut être utilisé pour effectuer diverses tâches, telles que la prédiction de mots manquants ou la détermination du sens d'un mot en se basant sur son contexte Encoder-Decoder Le contexte est un vecteur de flottants. Plus loin, nous allons visualiser les vecteurs en couleur en assignant des couleurs plus claires aux cellules avec des valeurs plus élevées. la taille du vecteur de context 265,512,1024
  • 9. 03 Le décodeur Couches d'unités récurrentes - par exemple, LSTM - où chaque unité produit une sortie à un pas de temps t . L'état caché de la première unité est le vecteur d'encodeur et les autres unités acceptent l'état caché de l'unité précédente. La sortie est calculée à l'aide d'une fonction softmax pour obtenir une probabilité pour chaque jeton dans le vocabulaire de sortie. Encoder-Decoder
  • 10. L' encodeur Dans un problème de question-réponse, la séquence d'entrée est une collection de tous les mots de la question. Chaque mot est représenté par x_i où i est l'ordre de ce mot. les états cachés h_i sont calculés à l'aide de la formule : Cette formule simple représente le résultat d'un réseau neuronal récurrent ordinaire. Comme vous pouvez le voir, nous appliquons simplement les poids appropriés à l'état caché précédent h_(t-1) et au vecteur d'entrée x_t.
  • 11. Le décodeur •Dans le problème de question-réponse, la séquence de sortie est une collection de tous les mots de la réponse. Chaque mot est représenté par y_i où i est l'ordre de ce mot. •Tout état caché h_i est calculé à l'aide de la formule : nous utilisons simplement l'état caché précédent pour calculer le suivant.
  • 12. Encoder-Decoder pour RNN RNN prend deux entrées à chaque pas de temps : une entrée (dans le cas de l’encodeur, un mot de la phrase d’entrée), et un état caché. Le mot, cependant, doit être représenté par un vecteur. Pour transformer un mot en vecteur, nous nous tournons vers les méthodes d’embedding. Ils transforment les mots en espaces vectoriels qui capturent une grande partie de l’information sémantique des mots
  • 16. Encoder-Decoder LSTM structure for chatting Encoder-Decoder pour RNN
  • 18. Mécanisme d’Attention Le vecteur de contexte a été identifié comme une limite pour ces types de modèles, ce qui signifie qu'il a posé un problème ou une contrainte. En d'autres termes, le vecteur de contexte a été considéré comme une restriction ou une difficulté pour ces modèles.  La solution est la mécanisme d’attention qui améliora considérablement la qualité des systèmes. L’attention permet au modèle de se concentrer sur les parties pertinentes de la séquence d’entrée si nécessaire.
  • 19. Mécanisme d’Attention Les mécanismes d'attention dans l'apprentissage en profondeur sont utilisés pour aider le modèle à se concentrer sur les parties les plus pertinentes de l'entrée lors de la réalisation d'une prédiction. Dans de nombreux problèmes, les données d'entrée peuvent être très volumineuses et complexes , et il peut être difficile pour le modèle de tout traiter. Les mécanismes d'attention permettent au modèle de se concentrer sélectivement sur les parties de l'entrée qui sont les plus importantes pour faire une prédiction, et d'ignorer les parties les moins pertinentes. Cela peut aider le modèle à faire des prédictions plus précises et à fonctionner plus efficacement.
  • 20. Mécanisme d’Attention Exemple: dans les tâches de traitement du langage naturel telles que la traduction, le mécanisme d'attention peut aider le modèle à comprendre le sens des mots dans leur contexte. Au lieu de simplement traiter chaque mot individuellement, le mécanisme d'attention permet au modèle de considérer les mots concernant les autres mots de la phrase, ce qui peut l'aider à comprendre sa signification globale.
  • 22. Transformer Je suis étudiant I am a student Input Output Transformer
  • 26. Transformer Une couche qui aide l'encodeur à regarder d'autres mots dans la phrase d'entrée lorsqu'il encode un mot spécifique. Encoder :
  • 27. Transformer une couche de neurones qui traite les entrées indépendamment les unes des autres, sans prendre en compte la séquence ou la position des données. Cette couche est utilisée pour transformer les représentations de la couche précédente en des représentations plus riches et plus utiles pour la tâche en cours. Encoder :
  • 29. Transformer transformer chaque mot d'entrée en un vecteur à l'aide d'un algorithme d’embedding. X1 Je suis X3 X2 étudiant Chaque mot est incorporé dans un vecteur de taille 512
  • 30. Transformer Remarque dépendances entre ces chemins dans la couche d’auto-attention. Feed Foward Neural Network n’a pas ces dépendances et donc les différents chemins peuvent être exécutés en parallèle lors de cette couche.
  • 32. Transformer Self-Attention ” The animal didn't cross the street because it was too tired”
  • 33. Transformer Self-Attention calcul de Self-Attention dans un transformateur consiste à :
  • 34. Transformer Self-Attention calcul de Self-Attention dans un transformateur consiste à : Étape 1 : créez trois vecteurs à partir de chacun des vecteurs d'entrée de l'encodeur : Query, Key, Value en multipliant l’embedding par trois matrices que nous avons entraînées pendant le processus d'entraînement (1x512). xi (64x512): qi = xi WQ Ki = xi WK Vi = xi WV
  • 35. Transformer Étape 2 : calculer maintenant le score pour déterminer comment d'attention à accorder à d'autres Parties de l'entrée. Prenons le produit scalaire Query avec Key Exemple :pour le mot « Thinking" en position 1, le premier score serait le produit scalaire de q1 et k1. Le deuxième score serait le produit scalaire de q1 et k2. ,
  • 36. Transformer Étape 3 : diviser les scores par la racine carrée de la dimension des vecteurs clés (gradients plus stables). Etape 4 : passe le résultat par une opération softmax (normalise les scores)
  • 37. Transformer Étape 5 : multiplier chaque vecteur de valeur par le score softmax Étape 6 : consiste à sommer les vecteurs de valeur pondérés. Cela produit la sortie de la couche d'auto-attention à cette position (pour le premier mot).
  • 38. Transformer Tableau pour le traitement du mot « Bonjour »
  • 39. Transformer Tableau pour le traitement du mot « Je »
  • 40. Transformer Tableau pour le traitement du mot « suis »
  • 41. Transformer Calcul matriciel de Self-Attention Calculer les matrices Query , Key et Value. Pour ce faire, nous regroupons nos embedding dans une matrice X , et multiplions par les matrices de poids que nous avons entrainées ( WQ , WK , WV
  • 42. Transformer les sorties de la couche Self-Attention Calcul matriciel de Self-Attention
  • 43. Transformer La bête à plusieurs têtes Au lieu d’exécuter une seule fonction d’attention il est avantageux de projeter linéairement les requêtes, les clés et les valeurs h fois avec différentes projections linéaires apprises sur les dimensions dk, dk et dv, respectivement. Ce mécanisme est appelé « attention multi-têtes ». Cela améliore les performances de la couche d’attention de deux façons :
  • 44. Transformer La bête à plusieurs têtes Ce mécanisme est appelé « attention multi-têtes ». Cela améliore les performances de la couche d’attention de deux façons : 1. Élargissement de la capacité du modèle à se concentrer sur différentes positions : L'attention multi- têtes permet au modèle de considérer différentes relations et positions dans une phrase. 1. Il donne à la couche d’attention de multiples « sous-espaces de représentation ». Comme nous le verrons plus loin, avec l’attention à plusieurs têtes, nous n’avons pas seulement un, mais plusieurs ensembles de matrices de poids Query/Key/Value (le transformer utilise huit têtes d’attention, donc nous obtenons huit ensembles pour chaque encodeur/décodeur). Chacun de ces ensembles est initialisé au hasard. Ensuite, après l’entraînement, chaque ensemble est utilisé pour projeter les enchâssements d’entrée (ou les vecteurs des encodeurs/décodeurs inférieurs) dans un sous-espace de représentation différent. Exemple: "Marie a donné des roses à Susane"
  • 45. Transformer La bête à plusieurs têtes
  • 46. Transformer La bête à plusieurs têtes Si nous faisons le même calcul d’auto-attention que nous avons décrit ci-dessus, huit fois avec des matrices de poids différentes, nous obtenons huit matrices Z différente On obtient 8 matrices Zi de dimension 64 et 8×64 = 512
  • 47. Transformer La bête à plusieurs têtes En concaténant les matrices puis les multipliant par une matrice de poids supplémentaire WO.
  • 48. Transformer La bête à plusieurs têtes Résumons l’ensemble des étapes sous la forme d’un unique graphique récapitulatif :
  • 49. Transformer La bête à plusieurs têtes Donc le mot « *it* », une tête d’attention (traits en orange) se concentre sur « *the animal* », tandis qu’une autre (traits en vert) se concentre sur « *tired* ».
  • 50. Transformer L’encodage positionnel Pour régler ça, le transformer ajoute un vecteur à chaque embedding d’entrée. Ces vecteurs suivent un forme particulière que le modèle apprend ce qui l’aide à déterminer la position de chaque mot (ou la distance entre les différents mots dans la séquence).
  • 51. Transformer L’encodage positionnel Si nous supposons que l’enchâssement a une dimension de 4, les encodages positionnels ressembleraient à ceci :
  • 52. Transformer L’encodage positionnel La formule d’encodage positionnel est :
  • 55. Transformer Les couches finales : linéaire et softmax

Notes de l'éditeur

  1. L’encodeur traite chaque élément de la séquence d’entrée. Il compile les informations qu’il capture dans un vecteur (appelé context). Après avoir traité toute la séquence d’entrée, l’encodeur envoie le contexte au décodeur, qui commence à produire la séquence de sortie item par item.
  2. Nous devons transformer les mots d’entrée en vecteurs avant de les traiter. Cette transformation se fait à l’aide d’un algorithme de word embedding
  3. Dans la visualisation suivante, chaque « impulsion » pour l’encodeur et le décodeur représente le traitement des entrées par le RNN et la génération de la sortie. Comme l’encodeur et le décodeur sont tous deux des RNNs, chaque fois que l’une des deux étapes effectue un certain traitement, elle met à jour son état caché en fonction de ses entrées et des entrées précédentes qu’elle a vues
  4. Le décodeur maintient également un état caché qu’il passe d’une étape à l’autre. Nous ne l’avons tout simplement pas visualisé dans ce graphique car nous nous préoccupons des principales parties du modèle pour le moment. Voyons maintenant une autre façon de visualiser un modèle de séquence à séquence. Cette animation facilitera la compréhension des graphiques statiques qui décrivent ces modèles. C’est ce qu’on appelle une vue « déroulée » où au lieu de montrer le décodeur, on en montre une copie pour chaque pas de temps. De cette façon, nous pouvons examiner les entrées et les sorties de chaque étape
  5. A l’étape 7, le mécanisme d’attention permet au décodeur de se concentrer sur le mot « étudiant » avant de générer la traduction anglaise. Cette capacité d’amplifier le signal de la partie pertinente de la séquence d’entrée permet aux modèles d’attention de produire de meilleurs résultats que les modèles sans attention.
  6. Commençons par considérer le modèle comme une boîte noire. Dans une application de traduction automatique, il prend une phrase dans une langue et la traduirait dans une autre.
  7. En ouvrant la boite, nous voyons un composant d’encodage, un composant de décodage et des connexions entre eux.
  8. Le composant d’encodage est une pile d’encodeurs six encodeurs les uns sur les autres,). Le composant de décodage est une pile de décodeurs du même nombre.
  9. Les encodeurs sont tous identiques mais ils ne partagent pas leurs poids. Chacun est divisé en deux sous-couches :
  10. Nous examinerons plus end détails la question de l’auto-attention ensuite
  11. Le décodeur a ces deux couches, mais entre elles se trouve une couche d'attention qui aide le décodeur à se concentrer sur les parties pertinentes de la phrase d'entrée,
  12. Maintenant que nous avons vu les principaux composants du modèle, commençons à examiner les différents vecteurs et comment ils circulent entre ces composants pour transformer l'entrée d'un modèle entraîné en une sortie. nous commençons.
  13. Après avoir intégré les mots dans notre séquence d'entrée, Chaque mots vas passer par les deux couche de l’encodeur Est je veut bien noter que chaque mots il va suivie sans propre chemin dans l’encodeur donc en dit que il y a un
  14. Comme nous l'avons déjà mentionné, un encodeur reçoit une liste de vecteurs en entrée. Il traite cette liste en faisant passer ces vecteurs dans une couche "d'auto-attention", puis dans un réseau de neurones à ffnn, puis envoie la sortie vers le codeur suivant.
  15. A quoi se réfère « it » dans cette phrase ? Est-ce qu’il fait référence à la rue ou à l’animal ? C’est une question simple pour un humain, mais pas pour un algorithme.
  16. Voyons d’abord comment calculer l’auto-attention à l’aide de vecteurs, puis comment elle est réellement mise en œuvre à l’aide de matrices. Lors du traitement de chaque mot, cela permet de regarder d'autres positions dans la séquence d'entrée pour trouver des indices permettant de construire un meilleur encodage pour ce mot.
  17. Lors du traitement de chaque mot, cela permet de regarder d'autres positions dans la séquence d'entrée pour trouver des indices permettant de construire un meilleur encodage pour ce mot.
  18. Donc résumer toutes ces étapes sous la forme d’un tableau et itérons le processus sur plusieurs mots :
  19. Donc résumer toutes ces étapes sous la forme d’un tableau et itérons le processus sur plusieurs mots :
  20. Voilà qui conclut le calcul de l’auto-attention. Les vecteurs zi résultants peuvent être envoyés au réseau feed-forward. En pratique cependant, ce calcul est effectué sous forme de matrice pour un traitement plus rapide. Maintenant que nous avons vu l’intuition du calcul au niveau d’un vecteur, regardons donc comment cela se déroule au niveau matriciel.
  21. La première étape consiste à calculer les matrices Requête, Clé et Valeur. Pour ce faire, nous concaténons nos embedding dans une matrice X et nous la multiplions par les matrices de poids que nous avons entraînés (WQ, WK, WV). Chaque ligne de la matrice X correspond à un mot de la phrase d’entrée. Nous voyons à nouveau la différence de taille entre le vecteur d’enchâssement (512, ou 4 cases dans la figure), et les vecteurs q/k/v (64, ou 3 cases dans la figure).
  22. Prenons l'exemple de la phrase "Marie a donné des roses à Susane". Dans cette phrase, le mot "donné" est lié à différentes parties de la phrase. "Marie" indique qui fait le don, "roses" indique ce qui est donné, et "Susane" indique qui est le destinat Grâce à l'attention multi-têtes, le modèle peut prendre en compte ces différentes relations en effectuant plusieurs opérations d'auto-attention. Chaque tête d'attention se concentre sur une combinaison spécifique de mots dans la phrase, permettant ainsi au modèle de capturer les différentes informations et relations. Par conséquent, plutôt que de simplement additionner les informations dans une seule opération d'auto-attention, l'attention multi-têtes permet au modèle de prendre en compte les relations spécifiques entre les mots et de produire des représentations plus riches et contextuelles.
  23. Par exemple, dans la phrase "Marie a donné des roses à Susane", le mot "donné" a des relations différentes avec différents mots de la phrase. L'attention multi-têtes permet de capturer ces relations en effectuant plusieurs opérations d'auto-attention, où chaque opération se concentre sur une combinaison spécifique de mots. Cela permet d'ajouter différentes informations provenant de différentes positions.
  24. Avec plusieurs têtes d’attention, nous avons maintenons des matrices de poids Q/K/V distinctes pour chaque tête, ce qui donne des matrices Q/K/V différentes. Comme nous l’avons fait auparavant, nous multiplions X par les matrices WQ/WK/WV pour produire des matrices Q/K/V.
  25. Il nous reste donc un petit défi à relever. La couche feed-forward n’attend pas huit matrices : elle n’attend qu’une seule (un vecteur pour chaque mot). Nous avons donc besoin d’un moyen de condenser ces huit éléments en une seule matrice.
  26. Il nous reste donc un petit défi à relever. La couche feed-forward n’attend pas huit matrices : elle n’attend qu’une seule (un vecteur pour chaque mot). Nous avons donc besoin d’un moyen de condenser ces huit éléments en une seule matrice.
  27. Il nous reste donc un petit défi à relever. La couche feed-forward n’attend pas huit matrices : elle n’attend qu’une seule (un vecteur pour chaque mot). Nous avons donc besoin d’un moyen de condenser ces huit éléments en une seule matrice.
  28. revoyons notre exemple pour voir où les différentes têtes d’attention se concentrent alors que nous codons le mot « it » dans notre phrase d’exemple :
  29. Une chose qui manque dans le modèle tel que nous l’avons décrit jusqu’à présent, est une façon de rendre compte de l’ordre des mots dans la séquence d’entrée.
  30. Dans la figure suivante, chaque ligne correspond à l’encodage positionnel d’un vecteur. Ainsi, la première ligne est le vecteur que nous ajoutons à l’enchâssement du premier mot dans une séquence d’entrée. Chaque ligne contient 512 valeurs, chacune ayant une valeur comprise entre 1 et -1. Nous les avons codés par couleur pour que le motif soit visible.
  31. Dans la figure suivante, chaque ligne correspond à l’encodage positionnel d’un vecteur. Ainsi, la première ligne est le vecteur que nous ajoutons à l’enchâssement du premier mot dans une séquence d’entrée. Chaque ligne contient 512 valeurs, chacune ayant une valeur comprise entre 1 et -1. Nous les avons codés par couleur pour que le motif soit visible.
  32. L'encodeur commence par traiter la séquence d'entrée. La sortie du codeur supérieur est ensuite transformée en un ensemble de vecteurs d'attention K et V. Ceux-ci doivent être utilisés par chaque décodeur dans sa couche "attention codeur-décodeur" qui aide le décodeur à se concentrer sur les endroits appropriés dans la séquence d'entrée :
  33. L'encodeur commence par traiter la séquence d'entrée. La sortie du codeur supérieur est ensuite transformée en un ensemble de vecteurs d'attention K et V. Ceux-ci doivent être utilisés par chaque décodeur dans sa couche "attention codeur-décodeur" qui aide le décodeur à se concentrer sur les endroits appropriés dans la séquence d'entrée :
  34. Lorsque la pile de décodeurs dans le modèle Transformer génère un vecteur de nombres décimaux (float), il doit être converti en mots compréhensibles. C'est le rôle de la couche linéaire suivie d'une couche softmax. La couche linéaire est un réseau neuronal simple et entièrement connecté qui prend le vecteur de sortie de la pile de décodeurs et le projette dans un vecteur beaucoup plus grand appelé vecteur de logits. Ce vecteur de logits est dimensionné en fonction du nombre de mots uniques dans le vocabulaire de sortie du modèle (par exemple, 10 000 mots anglais). Ensuite, la couche softmax est appliquée sur le vecteur de logits. La fonction softmax transforme les scores dans le vecteur de logits en probabilités, en s'assurant que toutes les valeurs sont positives et que leur somme totale est égale à 1. Chaque cellule du vecteur de logits correspond à un mot unique, et la probabilité associée à chaque mot indique à quel point il est probable d'être le mot correct à ce moment donné. Enfin, le mot ayant la probabilité la plus élevée est sélectionné comme sortie pour ce pas de temps. C'est le mot que le modèle génère et produit comme résultat final à partir du vecteur de sortie.