dimanche, mai 24, 2020

Les Misérables de Victor Hugo à la sauce Intelligence Artificielle

Sur une idée et un code source issu du livre de Jason Brownlee, j'ai exécuté un réseau de neurone récurrent sur le livre "Les Misérables Tome V : Jean Valjean" de Victor Hugo.

Le but de l'exercice est que la machine apprenne les différentes séquences du livre afin de pouvoir générer elle-même de nouvelles phrases.

Pour cela, j'ai du récupérer le texte de l'oeuvre de Victor Hugo. Le texte est disponible sur le site Gutenberg.

Le texte comprend pas moins de 625332 caractères pour un vocabulaire composé de 65 caractères différents.

Une fois le texte rapatrié en local, le réseau de neurone de type LSTM (Long Short Term Memory) en fait l'analyse sur 20 époques. Sur ma machine l'analyse a duré 6 heures et 33 minutes.

Une fois l'analyse exécutée, on va récupérer de cette analyse l'époque ayant eue la plus faible perte. En l'occurrence dans mon exécution, il s'agit de l'époque 20/20 :


L'activité du CPU pendant les 6h33 est intense:




Puis on va faire générer au modèle des nouvelles phrases cette fois sans avoir à entrainer le modèle (ouf, pas 6h 33 d'attente). Ceci est possible par récupération du modèle précédemment entrainé.

Le modèle permet de générer autant de phrases que l'on souhaite. Ci-dessous un extrait de quelques phrases générées par le programme :

" il se dit qu'il était probablement dans l'égout des halles; que, s'il
choisissait la gauche et suiva "

" est-à-dire braves. quand on est amoureux comme un tigre, c'est bien le
moins qu'on se batte comme un "

" il y aura des nuages de pourpre et d'or au-dessus
de leur tête, se déclarent contents, et qui sont d "

"  voir. je vais lui dire que
monsieur fauchelevent est là.

--non. ne lui dites pas que c'est moi. di "

"  être
réprimés. l'homme probe s'y dévoue, et, par amour même pour cette foule,
il la combat. mais co "

" vait pas à refuser. pourtant celui qui avait la clef parlementa,
uniquement pour gagner du temps. il "

" tait arrivé avec cosette, le portier n'avait pu
s'empêcher de confier à sa femme cet aparté: je ne s "

Je trouve personnellement que le résultat est impressionnant pour un modèle de base.

Le modèle prend du temps à s'exécuter sur mon iMac, car la machine ne possède pas de carte graphique NVIDIA. NVIDIA utilise CUDA qui est non disponible sur MAC. 

La solution pour augmenter la performance serait soit matérielle en achetant une machine spécifique Machine Learning comme le fait le constructeur AIME ou une solution logicielle de type PlaidML qui est un cadre logiciel qui exécute KERAS sur un GPU utilisant OpenCL au lieu de CUDA. Cette dernière solution est une bonne alternative pour exécuter du Machine Learning sur MAC sans carte NVIDIA.


Aucun commentaire: