DataTalk#39 -- BERT et l'avancement du traitement des langues

DataTalk#39 -- BERT et l'avancement du traitement des langues

Au cours de l'année passée, les modèles génériques (modèles pré-appris et ré-utilisables pour plusieurs taches) de traitement automatique des langues ont connu un saut inhabituel de performances. De la même manière que word2vec pour les mots, un changement de paradigme se profile pour le traitement des phrases/paragraphes.
Dans cette présentation, nous allons aborder les défis actuels du traitement des langues puis montrer ce que les modèles récents basés sur les Transformers et les modèles de langue (BERT, GPT, XLnet) apportent de nouveau (et d'ancien).

Bio : Damien Sileo est doctorant en 3eme année à Synapse Développement et à l'Université de Toulouse. Il est spécialisé dans la compréhension automatique du langage naturel et s'intéresse particulièrement à la notion de sens dans les représentations neuronales, ainsi qu'à la composition d'embeddings et aux modèles d'encodage (RNN/CNN/Transformers).

6aa4f3c589d3108830b371d0310bc4da?s=128

Toulouse Data Science

October 15, 2019
Tweet

Transcript

  1. 1 Damien Sileo Philippe Muller Tim Van de Cruys Camille

    Pradel BERT et l’avancement du traitement des langues
  2. • Introduction: traitement automatique des langues et paradigmes ◦ Tâches

    du NLP ◦ Notion d'encodeur généralisable ◦ Apprentissage par transfert ◦ Evaluation, évolution des scores ◦ Modèle de langue comme signal d’apprentissage • Encodeurs de texte ◦ Anatomie d’un encodeur de texte ◦ Problématiques de la composition de séquences: analyse syntaxique, composition ◦ Modèles de composition: average pooling, RNN, Transformers ◦ Instanciations : GPT/BERT • Conclusion: ◦ Utiliser BERT : librairies et modèles pré-entrainés ◦ Poursuite de la course aux données/moyens de calculs, génération de texte Plan 2
  3. 3 Traitement Automatique du Langage Naturel et paradigmes

  4. Traitement Automatique du Langage Naturel 4 TALN Sortie (classe, texte,

    scalaire...) Entrée (classe, texte, scalaire...)
  5. 5 TALN Sortie (classe, texte, scalaire...) Entrée (texte) Traitement Automatique

    du Langage Naturel
  6. 6 Analyse de sentiment y ∈ {positif, négatif} “Ma souris

    ne marche pas ! :(” Traitement Automatique du Langage Naturel
  7. 7 Analyse de sentiment y ∈ {positif, négatif} “It was

    2 minutes from the beach.” vs. “It was 2 hours from the beach.” “It was un-fricking-believable.” “It was awesoooome.” “It’s not my cup of tea.” “I love it when people yell at me first thing in the morning.” Traitement Automatique du Langage Naturel
  8. 8 Similarité sémantique y ∈ [0,1] “Ma souris ne marche

    pas ! :(” “Mon pointeur est bloqué” (moteur de recherche, clustering, détection de plagiat...) Traitement Automatique du Langage Naturel
  9. 9 Slot-Filling “trouve moi un train pour demain vers Paris”

    Traitement Automatique du Langage Naturel “trouve moi un train pour demain vers Paris” DATE DESTINATION
  10. 10 Chatbot y ∈ {“branchez votre souris”} U textes “Ma

    souris ne marche pas ! :(” Traitement Automatique du Langage Naturel
  11. 11 Chatbot y ∈ {“branchez votre souris”} U textes “Ma

    souris ne marche pas ! :(” Traitement Automatique du Langage Naturel mon pointeur ne bouge pas branchez votre souris historique
  12. -la souris doit être branchée -la souris permet de sélectionner

    [...] 12 Chatbotby Synapse y ∈ {“la souris doit être branchée”} U textes “Ma souris ne marche pas ! :(” Traitement Automatique du Langage Naturel base de documents
  13. 13 TALN Sortie (classe, texte, scalaire...) Entrée (texte) Traitement Automatique

    du Langage Naturel {Translation, Grammaticality, Similarity estimation, Sentiment analysis, Topic prediction, Word tagging, Question answering, Indexation, Relation Extraction, Summarization}∈TALN
  14. 14 encodeur de texte Sortie (classe, texte, scalaire...) Entrée (texte)

    modèle de la tâche Encodeur de texte généralisable TALN
  15. 15 encodeur de texte Sortie (classe, texte, scalaire...) Entrée (texte)

    modèle de la tâche COMMENT résoudre les tâches QUOI résoudre Encodeur généralisable de texte
  16. 16 encodeur de texte (initialisation aléatoire) Sortie (classe, texte, scalaire...)

    Entrée (texte) tâche “source” (init aléatoire) Apprentissage par transfert
  17. 17 encodeur de texte (après avoir appris la tâche source)

    Sortie (classe, texte, scalaire...) Entrée (texte) tâche “source” (appris) Apprentissage par transfert
  18. 18 encodeur de texte (après avoir appris la tâche source)

    Sortie (classe, texte, scalaire...) Entrée (texte) tâche “cible” (init aléatoire) Apprentissage par transfert
  19. 19 BERT Sortie (classe, texte, scalaire...) Entrée (texte) tâche “cible”

    (init aléatoire) Exemple BERT
  20. Evaluation: exemple de tâches (GLUE) 20 dataset phrase1 phrase2 classe

    SST a quiet , pure , elliptical film - positive sentiment CoLA They drank the pub. - not acceptable MNLI they renewed inquiries they asked again entailment STS a man is running a man is mooing low similarity QQP Is there a soul? what is soul? non-duplicate
  21. Evolution de performances GLUE (Bowman) 21 2018 2014 4 ans

    11.4%
  22. Evolution de performances GLUE (Bowman) 22 2018 2014 état de

    l’art fin 2018 - travail dédié aux taches ! 4 ans 11.4%
  23. Evolution de performances GLUE (Bowman) 23 2018 2019 2014 état

    de l’art pre-GPT 4 ans 11.4%
  24. Evolution de performances GLUE (Bowman) 24 2018 2019 2014 état

    de l’art pre-GPT 4 ans 11.4%
  25. Evolution de performances GLUE (Bowman) 25 2018 2019 2014 état

    de l’art pre-GPT 4 ans 11.4% 19.4% moins d’un an
  26. Evolution de performances GLUE (Bowman) 26 octobre 2017 octobre 2018

    performance humaine état de l’art pre-GPT janvier 2019 sept. 2019 moins d’un an
  27. 27 encodeur généralisable de texte (après avoir appris la tâche

    source) Sortie (classe, texte, scalaire...) Entrée (texte) tâche “source” (init aléatoire) Composantes d’un encodeur généralisable
  28. 28 encodeur généralisable de texte (après avoir appris la tâche

    source) Sortie (classe, texte, scalaire...) Entrée (texte) tâche “source” (init aléatoire) Modèle de langue comme signal d’apprentissage
  29. 29 Modèle de langue comme signal d’apprentissage Compétences utiles pour

    l’encodage - paradigme word2vec: • connaissance des mots
  30. 30 Compétences utiles pour l’encodage: • connaissance des mots •

    composition de mots ◦ (t-shirt blanc, vin blanc) • connaissance de la syntaxe ◦ il regarde l’écureuil avec un télescope • connaissance du monde (sens commun pour raisonner) • connaissance la psychologie humaine • capacités de raisonnement à partir de ces connaissances Modèle de langue comme signal d’apprentissage
  31. 31 Apprentissage par transfert : modèle de langue • Brevet

    Sans Garantie Du Gouvernement”, translated to English: “______ without government warranty”.
  32. 32 Apprentissage par transfert : modèle de langue • Brevet

    Sans Garantie Du Gouvernement”, translated to English: “Patented without government warranty”.
  33. 33 Apprentissage par transfert : modèle de langue • Brevet

    Sans Garantie Du Gouvernement”, translated to English: “Patented without government warranty”. • "Nos attentes ont même été dépassées et nous avons pu renforcer notre position sur le marché", se _____-il.
  34. 34 Apprentissage par transfert : modèle de langue • Brevet

    Sans Garantie Du Gouvernement”, translated to English: “Patented without government warranty”. • "Nos attentes ont même été dépassées et nous avons pu renforcer notre position sur le marché", se réjouit-il. →Analyse de sentiments, composition, traduction, structure de l’argumentation… sont utiles pour exceller en modèle de langue
  35. 35 encodeur généralisable de texte (après avoir appris la tâche

    source) Sortie (classe, texte, scalaire...) Entrée (texte) tâche “source” (init aléatoire) Encodeur
  36. 36 Encodeurs de texte

  37. Anatomie d’un encodeur de texte 37 input text tokenized input

    (characters, words…) sequence composition text embedding “the cat sat on the mat” “the” “cat” “sat” “on” “the” “mat” embedded tokens
  38. Anatomie d’un encodeur de texte 38 input text tokenized input

    (characters, words…) sequence composition text embedding “the cat sat on the mat” “the” “cat” “sat” “on” “the” “mat” classifier embedded tokens prediction
  39. Anatomie d’un encodeur de texte 39 input text tokenized input

    (characters, words…) sequence composition text embedding “the cat sat on the mat” “the” “cat” “sat” “on” “the” “mat” classifier embedded tokens encodeur de texte prediction modèle de tache
  40. exemple|de|texte.. ex|emple|... e|x|e|m... 1) Tokenization 40 • mot • subword

    • caractère “exemple de texte à découper” ~10M ~100k ~1000 taille du vocabulaire sur gros corpus tokens inédits probables oui bof non
  41. 2) Token Embedding 41 cat dog consciousness “dog” “cat” trainable

    or pretrained representations
  42. 42 3) Modèles de composition de séquence

  43. Composition 1 : moyenne des mots 43 input text tokenized

    input (characters, words…) moyenne text embedding “the cat sat on the mat” “the” “cat” “sat” “on” “the” “mat” classifier embedded tokens text embedding
  44. 44 “the cat sat on the mat” the cat mat

    sat on Avantages • marche (trop ?) bien • simple • capture des aspects lexicaux • mais pas que Inconvénients • simpliste Composition 1 : moyenne des mots
  45. 45 “the cat sat on the mat” the cat mat

    sat on Avantages • marche (trop ?) bien • simple • capture des aspects lexicaux • mais pas que Inconvénients • simpliste Composition 1 : moyenne des mots
  46. Fonctions récurrentes et paramétriques mémoire(t) mémoire(t+1) RNN perception(t) Composition 2

    : réseaux de neurones récurrents (RNN)
  47. mémoire(t) mémoire(t+1) RNN perception(t) h t+1 = f(x,h t )

    f,x = intelligence h t+1 h t token x t Fonctions récurrentes et paramétriques Composition 2 : réseaux de neurones récurrents (RNN)
  48. 48 RNN RNN RNN RNN X H input text tokenized

    input (characters, words…) “the cat sat on” pooling “the” “cat” “sat” “on” Composition 2 : réseaux de neurones récurrents (RNN)
  49. Composition 3: Transformers [Vaswani2017] 49 Att Att Att Att H

    input text tokenized input (characters, words…) “the cat sat on” “the” “cat” “sat” “on” embedded tokens (with positional encoding) 1 attention head output representations
  50. Composition 3: Transformers 50 Att Att Att Att H input

    text tokenized input (characters, words…) “the cat sat on” embedded tokens (with positional encoding) Att Att Att Att “the” “cat” “sat” “on” 2 attention heads
  51. Composition 3: Transformers 51 Att Att Att Att H input

    text tokenized input (characters, words…) “the cat sat on” embedded tokens (with positional encoding) Att Att Att Att Att Att Att Att “the” “cat” “sat” “on” 3 attention heads
  52. Composition 3: Transformers 52 Att Att Att Att H input

    text tokenized input (characters, words…) “the cat sat on” embedded tokens (with positional encoding) Att Att Att Att Att Att Att Att DNN DNN DNN DNN DNN “the” “cat” “sat” “on” synthétisation non-linéaire des aspects
  53. 53 Att Att Att Att element-wise concatenation +non-linear projection H

    input text tokenized input (characters, words…) “the cat sat on” “the” “cat” “sat” “on” embedded tokens (with positional encoding) Att Att Att Att Att Att Att Att Att Att Att Att couche 2 couche 1 Att Att Att Att Att Att Att Att
  54. 54 source: http://web.stanford.edu/class/cs224n/slides/cs224n-2019-lecture14-transformers.pdf Attending Structures recherche de structure complexe (SUJET,

    VERBE, OBJET)
  55. 55 Composing structures

  56. 56 he bo -ught a glass Deep Transformers Att Att

    Att DNN ATTENTION BLOCK parameters are shared across timesteps (horizontal axis) and possibly across depth (ALBERTA)
  57. 57 he bo -ught a glass Deep Transformers

  58. 58 he bo -ught a glass Deep Transformers - outputs

    représentation contextualisée de mot “a”
  59. 59 [CLS] he bo -ught a glass Deep Transformers -

    outputs représentation de la phrase
  60. 60 [CLS] he bo -ught a glass Deep Transformers -

    outputs représentation de la phrase
  61. 61 [CLS] he bo -ught a glass [SEP] he bo

    -ught so -me -thing [SEP2] Deep Transformers - outputs représentation de la paire de phrases
  62. 62 [CLS] he bo -ught a glass [SEP] he bo

    -ught so -me -thing [SEP2] Deep Transformers - outputs représentation de la paire de phrases
  63. 63 [CLS] he bo -ught a glass [SEP] he bo

    -ught so -me -thing [SEP2] Deep Transformers - outputs représentation de la paire de phrases
  64. 64 Modèle “GPT” = Subwords +Transformers + Modèle de Langue

  65. 65 he bo -ught a [MASK] représentation à la position

    du masque Modèle “GPT”
  66. 66 he bo -ught a [MASK] GPT = Transformers +

    Subwords + Modèle de Langue softmax glass do
  67. 67 BERT = GPT + Modèle de Langue Bidirectionnel +

    Prédiction de contiguïté de phrases
  68. 68 BERT: Modèle de langue bidirectionnel he bo -ught a

    [MASK] représentation à la position du masque
  69. 69 BERT: Modèle de langue bidirectionnel he bo -ught a

    [MASK] of milk représentation à la position du masque
  70. 70 BERT: prédiction de contiguïté [CLS] he bo -ught a

    glass [SEP] it had a nice sha pe regression logistique
  71. 71 BERT: prédiction de contiguïté [CLS] he bo -ught a

    glass [SEP] un rela ted sen ten ce regression logistique
  72. 72 BERT: aspects fonctionnels [CLS] le chat est sur la

    table [SEP] un animal est sur la table classifieur de texte/relation étiquetage de mots/ modèle de langue
  73. 73 BERT: aspects fonctionnels [CLS] le chat est sur la

    table [SEP] un animal est sur la table classifieur de texte/relation étiquetage de mots/ modèle de langue
  74. • https://github.com/huggingface/transformers • Modèles existants disponibles ◦ déjà entraînés sur

    les tâches source (>10k€ de coût de calcul) ▪ utilisation: fine-tuning sur tâches cibles ◦ langues : anglais ou multilingues ◦ modèles spécialisés (biomédical, finance) 74 Librairie Python
  75. 75 Librairie Python from transformers import * # Load tokenizer

    model from pretrained model model = BertForSequenceClassification.from_pretrained('bert-base-cased') … # Load dataset train_data = load_data('glue/mrpc') … # Train and evaluate using tf.keras.Model.fit() model.fit(train_data , epochs=2, steps_per_epoch=115,validation_data=valid_dataset, validation_steps=7) # Quickly test a few predictions - MRPC is a paraphrasing task, let's see if our model learned the task sentence_0 = "This research was consistent with his findings." sentence_1 = "His findings were compatible with this research." sentence_2 = "His findings were not compatible with this research." inputs_1 = tokenizer.encode_plus(sentence_0, sentence_1, add_special_tokens=True, return_tensors='pt') inputs_2 = tokenizer.encode_plus(sentence_0, sentence_2, add_special_tokens=True, return_tensors='pt') pred_1 = model(**inputs_1)[0].argmax().item() pred_2 = model(**inputs_2)[0].argmax().item() print("sentence_1 is", "a paraphrase" if pred_1 else "not a paraphrase", "of sentence_0") print("sentence_2 is", "a paraphrase" if pred_2 else "not a paraphrase", "of sentence_0")
  76. 76 Librairie Python 512 gpu

  77. 77 Librairie Python 512 gpu fraction de gpu

  78. • Saut de performance emblématisé par le sigle “BERT” •

    Implémentations faciles d’utilisation disponibles • Progrès qui continue et dépend de la puissance de calcul et des données • Avancées comparables pour la génération de texte • De meilleures évaluations, plus contrôlées sont nécessaires • https://medium.com/synapse-dev/understanding-bert-transformer-attention-isnt-all-you-need-5839ebd396db 78 Conclusion
  79. Merci 79

  80. 80 Annexe: Self-Attention

  81. que la souris du PC Self-Attention 81 H

  82. que la souris du PC Self-Attention 82 H

  83. que la souris du PC Self-Attention 83 H Key Value

    Key = F K (H): ce que le mot dit contenir Value = F V (H): ce que le mot contient F K
  84. que la souris du PC Self-Attention 84 H Query Key

    Value Key = F K (H): ce que le mot dit contenir Value = F V (H): ce que le mot contient Query= F Q (H): ce que le mot cherche
  85. que la souris du PC Self-Attention 85 H Query Key

    Value 8
  86. que la souris du PC Self-Attention 86 H Query Key

    Value 8 6
  87. que la souris du PC Self-Attention 87 H Query Key

    Value 8 6 20
  88. que la souris du PC Self-Attention 88 H Query Key

    Value 8 6 20 6 166
  89. que la souris du PC Self-Attention 89 H Query Key

    Value 4% 3% 10% 3% 83%
  90. que la souris du PC Self-Attention 90 H Query Key

    Value 4% 3% 10% 3% 83% moyenne pondérée
  91. que la souris du PC Self-Attention 91 H Query Key

    Value
  92. 92 Attention illustration

  93. composition de l’information (synthèse) 93 Transformer Block head 1 head

    2 head 3 … concatenation composition (perceptron multicouche) recherche d’information dans des structures basées sur des aspects et positions des mots (analyse) une couche parmi ~10