Transformer : un réseau de neurones taillé pour le NLP
Modèle d'apprentissage profond, le transformeur ou transformer est une technologie de réseau de neurones open source introduite par Google en 2017. Elle est devenue depuis une référence dans le traitement automatique du langage.
Un transformer en machine learning, c'est quoi ?
Un transformer ou transformeur est un modèle d'apprentissage profond qui appartient au domaine du machine learning (apprentissage automatique) et plus précisément du deep learning. Taillé pour le traitement automatique des langues (TAL) ou natural language processing (NLP), le transformer est un réseau de neurones profonds conçu pour ingérer des données d'apprentissage séquentielles en utilisant des mécanismes d’attention.
Le transformer permet à la machine d’apprendre des séquences informatiques de manière automatique, sans avoir été programmés spécifiquement à cet effet. Cette technologie a été publiée en open source par Google en 2017.
Comment fonctionne un transformer ?
Comme un réseau de neurones récurrents (RNN), un transformeur est taillé pour ingérer des données séquentielles. Il est par conséquent particulièrement bien adapté au traitement du langage naturel. A la différence d'un RNN, il n'implique pas cependant de traiter les informations sous forme de flux continu, respectant par exemple l'ordre des mots dans une phrase.
Partant de là, un modèle de type transformer peut paralléliser les calculs de la phase learning, ce qui lui permet d'ingérer des volumes massifs de données d'apprentissage en un temps réduit.
Qu'est-ce qu'un transformer NLP ?
Les transformers sont utilisés principalement en NLP ou natural language processing (traitement automatique des langues en français). Dans le NLP, les transformers les plus connus sont Bert (pour bidirectional encoder representations from transformers) qui est développé par Google ou encore GPT-3 (pour generative pre-trained Transformer 3) mis au point par la société OpenAI.
Pourquoi utiliser un Transformeur ?
Traitant les données de manière séquentielle, un transformeur est utilisé principalement pour la traduction et la synthèse de texte. Il est par exemple utilisé par les traducteurs en ligne pour traiter de manière automatique du langage naturel.
Contrairement aux anciens traducteurs en ligne utilisant des RNN, les traducteurs modernes basés sur des transformers ont la capacité de lier les mots entre eux (notion d’interdépendance). Cela leur permet notamment d’obtenir des tournures de phrases bien plus proches du langage écrit ou parlé, et de donner le bon sens à un mot qui peut en avoir plusieurs. Les transformeurs peuvent également être utilisés dans d’autres domaines comme le traitement d’images.
Quelques exemples de modèles transformers
- BERT (Bidirectional Encoder Representations from Transformers) introduit en 2019 par Google ;
- GPT-3 (Generative Pre-trained Transformer 3) introduit en 2019 par OpenAI.
Réseau transformer tutoriels : quelques liens
- BERT : Le "Transformer model" qui s’entraîne et qui représente, article par LesDieuxDuCode.com ;
- Coder un Transformer, vidéo par Thibault Neveu.