Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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).

Toulouse Data Science

October 15, 2019
Tweet

More Decks by Toulouse Data Science

Other Decks in Technology

Transcript

  1. 1
    Damien Sileo
    Philippe Muller
    Tim Van de Cruys
    Camille Pradel
    BERT
    et l’avancement du traitement des langues

    View full-size slide

  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

    View full-size slide

  3. 3
    Traitement Automatique du
    Langage Naturel et paradigmes

    View full-size slide

  4. Traitement Automatique du Langage Naturel
    4
    TALN
    Sortie (classe, texte, scalaire...)
    Entrée (classe, texte, scalaire...)

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  16. 16
    encodeur de texte
    (initialisation aléatoire)
    Sortie (classe, texte, scalaire...)
    Entrée (texte)
    tâche “source” (init aléatoire)
    Apprentissage par transfert

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

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

    View full-size slide

  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

    View full-size slide

  21. Evolution de performances GLUE (Bowman)
    21
    2018
    2014
    4 ans
    11.4%

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  29. 29
    Modèle de langue comme signal d’apprentissage
    Compétences utiles pour l’encodage - paradigme word2vec:
    ● connaissance des mots

    View full-size slide

  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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  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.

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  36. 36
    Encodeurs de texte

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  41. 2) Token Embedding
    41
    cat
    dog
    consciousness
    “dog”
    “cat”
    trainable or pretrained
    representations

    View full-size slide

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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  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)

    View full-size slide

  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)

    View full-size slide

  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)

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  54. 54
    source: http://web.stanford.edu/class/cs224n/slides/cs224n-2019-lecture14-transformers.pdf
    Attending Structures
    recherche de structure complexe
    (SUJET, VERBE, OBJET)

    View full-size slide

  55. 55
    Composing structures

    View full-size slide

  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)

    View full-size slide

  57. 57
    he bo -ught a glass
    Deep Transformers

    View full-size slide

  58. 58
    he bo -ught a glass
    Deep Transformers - outputs
    représentation contextualisée de mot “a”

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  64. 64
    Modèle “GPT” =
    Subwords +Transformers + Modèle de Langue

    View full-size slide

  65. 65
    he bo -ught a [MASK]
    représentation
    à la position du masque
    Modèle “GPT”

    View full-size slide

  66. 66
    he bo -ught a [MASK]
    GPT = Transformers + Subwords + Modèle de Langue
    softmax
    glass
    do

    View full-size slide

  67. 67
    BERT =
    GPT +
    Modèle de Langue Bidirectionnel +
    Prédiction de contiguïté de phrases

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  71. 71
    BERT: prédiction de contiguïté
    [CLS] he bo -ught a glass [SEP] un rela ted sen ten ce
    regression
    logistique

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  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")

    View full-size slide

  76. 76
    Librairie Python
    512 gpu

    View full-size slide

  77. 77
    Librairie Python
    512 gpu
    fraction de
    gpu

    View full-size slide

  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

    View full-size slide

  79. 80
    Annexe: Self-Attention

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  82. 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

    View full-size slide

  83. 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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  91. 92
    Attention illustration

    View full-size slide

  92. 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

    View full-size slide