Modèles de langage Wiki40B

Voir sur TensorFlow.org Exécuter dans Google Colab Voir sur GitHub Télécharger le cahier Voir les modèles TF Hub

Générer Wikipédia comme du texte en utilisant les modèles de langue Wiki40B de tensorflow Hub !

Ce cahier illustre comment :

  • Charger le 41 monolingue et 2 modèles linguistiques multilingues qui font partie de la collection Wiki40b-LM sur TF-Hub
  • Utilisez les modèles pour obtenir la perplexité, les activations par couche et les plongements de mots pour un morceau de texte donné
  • Générer du texte jeton par jeton à partir d'un morceau de texte de départ

Les modèles linguistiques sont formés sur la nouvelle publication, ramassées ensemble de données Wiki40B disponibles sur tensorflow datasets. La configuration de la formation est basée sur le papier « Wiki-40B: Langue multilingue Modèle Dataset » .

Installer

Installation des dépendances

Importations

Choisissez la langue

Choisissons quel modèle pour charger la langue de TF-Hub et la longueur du texte à générer.

Using the https://tfhub.dev/google/wiki40b-lm-en/1 model to generate sequences of max length 20.

Construire le modèle

Bon, maintenant que nous avons configuré le modèle à l' utilisation pré-formation, nous allons le configurer pour générer du texte jusqu'à max_gen_len . Nous devrons charger le modèle de langage à partir de TF-Hub, ajouter un morceau de texte de démarrage, puis alimenter de manière itérative les jetons au fur et à mesure qu'ils sont générés.

Charger les pièces du modèle de langue

2021-11-05 13:33:19.950673: W tensorflow/core/common_runtime/graph_constructor.cc:1511] Importing a graph with a lower producer version 359 into an existing graph with producer version 808. Shape inference will have run different parts of the graph with different producer versions.

Construire le graphe de génération par jeton

Construire le graphique statique déroulerait max_gen_len jetons

Générer du texte

Générons du texte ! Nous allons définir un texte de seed pour inciter le modèle de langage.

Vous pouvez utiliser l' une des graines prédéfinies ou éventuellement entrer votre propre. Ce texte sera utilisé comme graine pour le modèle de langage pour aider à demander au modèle de langage ce qu'il doit générer ensuite.

Vous pouvez utiliser les jetons spéciaux suivants pour précéder des parties spéciales de l'article généré. Utilisez _START_ARTICLE_ pour indiquer le début de l'article, _START_SECTION_ pour indiquer le début d'une section, et _START_PARAGRAPH_ pour générer du texte dans l'article

Graines prédéfinies

Entrez votre propre graine (facultatif).

Generating text from seed:

_START_ARTICLE_
1882 Prince Edward Island general election
_START_PARAGRAPH_
The 1882 Prince Edward Island election was held on May 8, 1882 to elect members of the House of Assembly of the province of Prince Edward Island, Canada.

Initialiser la session.

Générer du texte

_START_SECTION_ Candidates _START_PARAGRAPH_ Thirteen members of the House of Assembly were all members nominations. Among

Nous pouvons également examiner les autres sorties du modèle - la perplexité, les identifiants de jeton, les activations intermédiaires et les intégrations

ppl_result
array([23.507753], dtype=float32)
token_ids_result
array([[   8,    3, 6794, 1579, 1582,  721,  489,  448,    8,    5,   26,
        6794, 1579, 1582,  721,  448,   17,  245,   22,  166, 2928, 6794,
          16, 7690,  384,   11,    7,  402,   11, 1172,   11,    7, 2115,
          11, 1579, 1582,  721,    9,  646,   10]], dtype=int32)
activations_result.shape
(12, 1, 39, 768)
embeddings_result
array([[[ 0.12262525,  5.548009  ,  1.4743135 , ...,  2.4388404 ,
         -2.2788858 ,  2.172028  ],
        [-2.3905468 , -0.97108954, -1.5513545 , ...,  8.458472  ,
         -2.8723319 ,  0.6534524 ],
        [-0.83790785,  0.41630274, -0.8740793 , ...,  1.6446769 ,
         -0.9074106 ,  0.3339265 ],
        ...,
        [-0.8054745 , -1.2495526 ,  2.6232922 , ...,  2.893288  ,
         -0.91287214, -1.1259722 ],
        [ 0.64944506,  3.3696785 ,  0.09543293, ..., -0.7839227 ,
         -1.3573489 ,  1.862214  ],
        [-1.2970612 ,  0.5961366 ,  3.3531897 , ...,  3.2853985 ,
         -1.6212384 ,  0.30257902]]], dtype=float32)