Outils pour utilisateurs

Outils du site


aitextgen

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
aitextgen [2020/07/09 15:44] – [Des textes dans le domaine public du Projet Gutemberg] sergeaitextgen [2022/02/08 15:59] (Version actuelle) – Tag0 Removed: text_gen serge
Ligne 1: Ligne 1:
 ====== Génération de textes avec aitextgen et GPT-2====== ====== Génération de textes avec aitextgen et GPT-2======
 +
 +<WRAP center round box 60% centeralign>
 +**{{tagpage>ia|Intelligence Artificielle}}**     **[[http://translate.google.com/translate?hl=&sl=auto&tl=en&u=https%3A%2F%2Fressources.labomedia.org%2Faitextgen|English Version]]**
 +</WRAP>
 +<WRAP center round box 60% centeralign>
 +**[[les_pages_intelligence_artificielle_en_details|Les Pages Intelligence Artificielle en détails]]**
 +</WRAP>
  
 <WRAP center round box 80% centeralign> <WRAP center round box 80% centeralign>
-**{{tagpage>tal|Traitement Automatique du Langage}}** **{{tagpage>ia|Intelligence Artificielle}}**  +**{{tagpage>tal|Traitement Automatique du Langage}}**  
 </WRAP> </WRAP>
  
 <WRAP center round box 80% centeralign> <WRAP center round box 80% centeralign>
-**Cette page est la suite de [[textgenrnn|Générer du texte en python avec textgenrnn]]**+**Cette page est la suite de [[archives:textgenrnn|Générer du texte en python avec textgenrnn]]**
 </WRAP> </WRAP>
  
 <WRAP center round box 80% centeralign> <WRAP center round box 80% centeralign>
-Les chercheurs retardent la publication de leurs recherches car ils estiment que GPT2 a un potentiel « trop dangereux », étant donné que cette IA pourrait à terme servir à des actes mal intentionnées comme générer des avis négatifs ou positifs sur des produits, des spams, des textes complotistes, voire des fausses nouvelles. cf **[[https://fr.wikipedia.org/wiki/OpenAI#GPT2|W]]**+Les chercheurs retardent la publication de leurs recherches car ils estiment que GPT2 a un potentiel « trop dangereux », étant donné que cette IA pourrait à terme servir à des actes mal intentionnées comme générer des avis négatifs ou positifs sur des produits, des spams, des textes complotistes, voire des fausses nouvelles. cf **[[https://fr.wikipedia.org/wiki/OpenAI#GPT2|W]]**\\ 
 +Bien sûr, tout a été publié, y compris le modèle big de 1.5 Go.
 </WRAP> </WRAP>
  
-=====Quel carte graphique choisir en Juin 2020===== +=====Why do we like Word2vec?===== 
-  * **[[https://lambdalabs.com/blog/choosing-a-gpu-for-deep-learning/|Choosing the Best GPU for Deep Learning in 2020]]**+{{ :media_10:d0iwslbsoruw1j6q-w.png?direct&600 |}} 
 +  * **[[https://towardsdatascience.com/representing-text-in-natural-language-processing-1eead30e57d8|Representing text in natural language processing]]** 
 +  * **[[https://nlp.stanford.edu/pubs/glove.pdf|GloVe: Global Vectors for Word Representation]]**
  
-    * RTX 2060 (6 GB): if you want to explore deep learning in your spare time. 360€ 
-    * RTX 2070 or 2080 (8 GB): if you are serious about deep learning, but your GPU budget is $600-800. Eight GB of VRAM can fit the majority of models. 
-    * RTX 2080 Ti (11 GB): if you are serious about deep learning and your GPU budget is ~$1,200. The RTX 2080 Ti is ~40% faster than the RTX 2080. 
-    * Titan RTX and Quadro RTX 6000 (24 GB): if you are working on SOTA models extensively, but don't have budget for the future-proofing available with the RTX 8000. 4000€ 
-    * Quadro RTX 8000 (48 GB): you are investing in the future and might even be lucky enough to research SOTA deep learning in 2020. 5500€ 
 ===== Ressources ===== ===== Ressources =====
 ====aitextgen==== ====aitextgen====
Ligne 53: Ligne 58:
 The FlauBERT model was proposed in the paper FlauBERT: Unsupervised Language Model Pre-training for French by Hang Le et al. It’s a transformer pre-trained using a masked language modeling (MLM) objective (BERT-like). The FlauBERT model was proposed in the paper FlauBERT: Unsupervised Language Model Pre-training for French by Hang Le et al. It’s a transformer pre-trained using a masked language modeling (MLM) objective (BERT-like).
  
-===== Fables de La Fontaine ===== +=====Générateur de texte en ligne===== 
-Suite de [[textgenrnn#avec_des_fables_de_la_fontaine|Avec des fables de La Fontaine]]+  * **[[https://gpt2.ai-demo.xyz/|OpenAI GPT2 Scratch Pad]]** 
 +===== Fables de La Fontaine avec un modèle entièrement créé===== 
 +Suite de [[archives:textgenrnn#avec_des_fables_de_la_fontaine|Avec des fables de La Fontaine]]
  
 <code python training.py> <code python training.py>
Ligne 227: Ligne 234:
  
 ===== Mails de La Labomedia ===== ===== Mails de La Labomedia =====
- 
 ====Configuration==== ====Configuration====
 <code python> <code python>
Ligne 251: Ligne 257:
 </code> </code>
  
 +Les datas sont trop pourries, le résultat est très médiocre !
 ===== Des textes dans le domaine public du Projet Gutemberg ===== ===== Des textes dans le domaine public du Projet Gutemberg =====
 **[[http://www.gutenberg.org/|Free eBooks - Project Gutenberg]]**  **[[http://www.gutenberg.org/|Free eBooks - Project Gutenberg]]** 
Ligne 261: Ligne 268:
  
 Conversion de *.epub vers *.txt avec ebook-convert, puis regroupement de tous les textes dans un seul fichier, en séparant chaque œuvre par '\n\n<|endoftext|>\n\n' Conversion de *.epub vers *.txt avec ebook-convert, puis regroupement de tous les textes dans un seul fichier, en séparant chaque œuvre par '\n\n<|endoftext|>\n\n'
 +
 +Les fichiers non nettoyés font 300 Mo, et nettoyés font 280 Mo.
  
 ===Nettoyage des datas=== ===Nettoyage des datas===
Ligne 274: Ligne 283:
 La génération de texte est une représentation fidèle du texte d'apprentissage: par exemple si il y a beaucoup de saut de ligne, le texte généré aura aussi plein de saut de ligne. La génération de texte est une représentation fidèle du texte d'apprentissage: par exemple si il y a beaucoup de saut de ligne, le texte généré aura aussi plein de saut de ligne.
  
 +====Training====
 +===OOM = Out Of Memory===
 +Finetuning the 355M GPT-2 model or larger on a GPU will cause the GPU to go OOM, even 16 GB VRAM GPUs
 +
 +  * Le fichier d'apprentissage a été coupé pour faire 112 Mo.
 +  * vocab_size = 40 000
 +  * batch_size = 48, valeur maxi possible avec 6 Go de Ram GPU (1060 GTX)
 +  * Ram CPU = 16 Go, Swap=64 Go, valeur totale de l'occupation mémoire = 27 Go au moment de l'encodage du texte
 +
 +Efficacité au bout de 144 heures:
 +{{ :media_10:loss.png?800 |}}
 +
 +=====Fables de La Fontaine avec la config de bouquineux=====
 +==== Avec la configuration de bouquineux et vocab=40000 ====
 +{{ :media_10:loss_fables.png?600 |}}
 +Remarque: Les Fables ont environ 13000 tokens, le vocab devrait se limiter à 14000 !\\
 +Testing pas mal mais quand même bourré d'erreur !
 +
 +==== A partir du model tf_gpt2="124M" et vocab = 5000====
 +  * vocab_size=5000
 +  * Apprentissage très rapide
 +  * texte générés comme les précédents
 +
 +=====Fables de La Fontaine à partir du model tf_gpt2="124M" et vocab = 50275=====
 +<WRAP center round tip 60%>
 +C'est le meilleur générateur de texte, avec un apprentissage de 16 heures !
 +</WRAP>
 +<WRAP center round tip 60%>
 +tf_gpt2="124M" à une taille de 50275, il faut conserver cette valeur !
 +</WRAP>
 +====Affinage du model existant tf_gpt2="124M"====
 +  * [[https://openai.com/blog/gpt-2-1-5b-release/|openai.com/blog/: GPT-2: 1.5B Release]]
 +
 +La ligne:
 +  ai = aitextgen(tf_gpt2="124M")
 +va télécharger automatiquement le model.\\
 +Le training va affiner ce model. C'est un model construit sur un texte anglais, et pourtant cela va générer du texte français.
 +
 +
 +====Shot de l'apprentissage====
 +Pendant le trainning, les test de generate() retourne de l'anglais découpé en petit bout !
 +{{ :media_10:training_2020-07-22_20-41-03.png?direct&600 |}}
 +
 +====Courbe de loss====
 +J'aimerais bien savoir à quoi ça correspond, j'ai peur que ce soit un simple calcul pas du tout représentatif!
 +{{ :media_10:loss_small_50257.png?direct&600 |}}
 +
 +====Testing====
 +{{ :media_10:test_fables_small.png?direct&1000 |}}
 +Le résultat comporte peu de mots mal construits, inexistants en français. Par contre, il n'y a aucun sens au texte, c'est mieux que du Nostradamus, mais c'est quasi de l'astrologie.
  
 +====Développement à suivre====
 +Construire sur le gros model de 1.5 Go !
  
 +====Les sources sur GitHub====
 +  * **[[https://github.com/sergeLabo/fables_gpt2_small|fables_gpt2_small]]**
  
  
-=====Pense bête pour NFS===== 
-  * [[https://wiki.debian-fr.xyz/Partage_NFS|Partage NFS]] 
  
-{{tag>ia python python3 tal textgenrnn sb rnn}}+{{tag> ia python sb tal }}
aitextgen.1594309449.txt.gz · Dernière modification : 2020/07/09 15:44 de serge