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.

    1 Damien Sileo Philippe Muller Tim Van de Cruys Camille

    Pradel BERT et l’avancement du traitement des langues
  2. 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. 4.

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

    scalaire...) Entrée (classe, texte, scalaire...)
  4. 6.

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

    ne marche pas ! :(” Traitement Automatique du Langage Naturel
  5. 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
  6. 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
  7. 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
  8. 10.

    10 Chatbot y ∈ {“branchez votre souris”} U textes “Ma

    souris ne marche pas ! :(” Traitement Automatique du Langage Naturel
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 16.

    16 encodeur de texte (initialisation aléatoire) Sortie (classe, texte, scalaire...)

    Entrée (texte) tâche “source” (init aléatoire) Apprentissage par transfert
  15. 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
  16. 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
  17. 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
  18. 22.

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

    l’art fin 2018 - travail dédié aux taches ! 4 ans 11.4%
  19. 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
  20. 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
  21. 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
  22. 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
  23. 29.

    29 Modèle de langue comme signal d’apprentissage Compétences utiles pour

    l’encodage - paradigme word2vec: • connaissance des mots
  24. 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
  25. 31.

    31 Apprentissage par transfert : modèle de langue • Brevet

    Sans Garantie Du Gouvernement”, translated to English: “______ without government warranty”.
  26. 32.

    32 Apprentissage par transfert : modèle de langue • Brevet

    Sans Garantie Du Gouvernement”, translated to English: “Patented without government warranty”.
  27. 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.
  28. 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
  29. 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
  30. 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
  31. 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
  32. 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
  33. 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
  34. 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
  35. 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
  36. 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
  37. 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)
  38. 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)
  39. 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
  40. 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
  41. 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
  42. 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
  43. 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
  44. 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)
  45. 58.

    58 he bo -ught a glass Deep Transformers - outputs

    représentation contextualisée de mot “a”
  46. 59.

    59 [CLS] he bo -ught a glass Deep Transformers -

    outputs représentation de la phrase
  47. 60.

    60 [CLS] he bo -ught a glass Deep Transformers -

    outputs représentation de la phrase
  48. 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
  49. 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
  50. 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
  51. 66.

    66 he bo -ught a [MASK] GPT = Transformers +

    Subwords + Modèle de Langue softmax glass do
  52. 67.

    67 BERT = GPT + Modèle de Langue Bidirectionnel +

    Prédiction de contiguïté de phrases
  53. 68.

    68 BERT: Modèle de langue bidirectionnel he bo -ught a

    [MASK] représentation à la position du masque
  54. 69.

    69 BERT: Modèle de langue bidirectionnel he bo -ught a

    [MASK] of milk représentation à la position du masque
  55. 70.

    70 BERT: prédiction de contiguïté [CLS] he bo -ught a

    glass [SEP] it had a nice sha pe regression logistique
  56. 71.

    71 BERT: prédiction de contiguïté [CLS] he bo -ught a

    glass [SEP] un rela ted sen ten ce regression logistique
  57. 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
  58. 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
  59. 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
  60. 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")
  61. 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
  62. 79.
  63. 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
  64. 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
  65. 90.

    que la souris du PC Self-Attention 90 H Query Key

    Value 4% 3% 10% 3% 83% moyenne pondérée
  66. 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