Le référentiel contient du code permettant de générer de courts poèmes à l'aide de modèles de langage génératifs avec une architecture GPT.
Un modèle de langage transformateur basé sur l'architecture GPT est utilisé. Ce modèle prend en compte à la fois la grammaire de la langue russe (similaire aux modèles linguistiques comme rugpt) et sa phonétique, y compris les règles de rimes et la construction de la métrique poétique. Les détails sont dans la présentation.
Les binaires du modèle sont disponibles dans l'image docker inkoziev/verslibre:latest.
Téléchargez et exécutez l'image :
sudo docker pull inkoziev/verslibre:latest
sudo docker run -it inkoziev/verslibre:latest
Après le lancement, le programme vous demandera de saisir un jeton pour le robot télégramme.
Après avoir chargé tous les modèles, vous pouvez démarrer le bot dans son chat avec la commande /start. Le robot vous demandera de choisir l'un des trois sujets aléatoires pour votre essai ou de saisir votre propre sujet. Le sujet peut être n'importe quelle phrase avec un nom comme rôle principal, par exemple « générateur de poésie ».
Ce bot est disponible en télégramme sous le nom @verslibre_bot
Exemples de génération :
* * *
Любовь - источник вдохновения,
Души непризнанных людей.
И день весеннего цветения,
Омытый зеленью дождей…
* * *
Душа, гонимая страстями,
Тревожит, веет теплотой.
Любовь, хранимая стихами,
И примиренье, и покой.
Outre le modèle génératif lui-même, le transcripteur de poésie, qui marque les poèmes sources pour la formation des modèles, est d'une grande importance pour le bon fonctionnement. Vous pouvez en savoir plus sur le travail du transcripteur ici.
Une image docker inkoziev/haiku:latest est disponible pour exécuter le générateur en tant que robot de télégramme.
Téléchargez l'image et exécutez :
sudo docker pull inkoziev/haiku:latest
sudo docker run -it inkoziev/haiku
Le programme vous demandera de saisir un jeton de bot télégramme. Ensuite, les modèles se chargeront (environ une minute) et vous pourrez communiquer avec le bot. Entrez une graine - un nom ou une expression. La génération de plusieurs options sur le CPU prend environ 30 secondes. Ensuite, le bot affichera la première option et proposera de l'évaluer, ou affichera l'option suivante.
Ce bot est disponible en télégramme sous le nom @haiku_guru_bot.
Puisqu’il s’agit d’un modèle génératif randomisé, ses résultats ne peuvent généralement pas être reproduits en introduisant simplement la même graine. Copiez les bons résultats, complétez-les avec un modèle illustratif, tel que ruDALLE, et obtenez un contenu complètement unique :
D’autres exemples de haïku peuvent être vus sur mon blog.
Le sous-répertoire tmp contient des fichiers contenant une partie des données d'entraînement :
poésie_corpus.txt - corpus de quatrains filtrés, symbole | comme séparateur de ligne ; utilisé pour une formation supplémentaire du modèle ruGPT.
poème_generator_dataset.dat - ensemble de données pour la formation ruGPT, qui produit le texte d'un poème par sujet (phrase clé).
captions_generator_rugpt.dat - ensemble de données pour la formation ruGPT, générant un titre de verset basé sur son contenu.
Une description du processus de préparation du corps de formation peut être trouvée ici.