Ce référentiel contient du code pour exécuter le modèle de langage plug and play (PPLM), comme décrit dans cet article de blog et le papier ArXIV . Un cahier de démo et de colab est également disponible.
Remarque: Si vous prévoyez d'utiliser PPLM comme référence et que vous souhaitez utiliser les paramètres répertoriés dans l'annexe du document, veuillez utiliser le LM et le discriminateur de ce dossier . Alternativement, réglez les hyperparamtres par vous-même si vous utilisez le code / les modèles dans le répertoire principal et / ou les ? / Transformers pour une comparaison équitable (les paramètres optimaux de ces modèles / discriminateurs sont à peu près désactivés par un facteur 5 de ceux utilisés dans l'article).
PPLM est également intégré dans le référentiel ? / Transformers .

Auteurs: Sumanth Dathathri, Andrea Madotto, Janice Lan, Jane Hung, Eric Frank, Piero Molino, Jason Yosinski et Rosanne Liu
PPLM permet à un utilisateur de brancher de manière flexible un ou plusieurs modèles d'attributs minuscules représentant l'objectif de direction souhaité dans un grand modèle de langage inconditionnel (LM). La méthode a la propriété clé qu'elle utilise le LM tel quel - la formation ou le réglage fin n'est pas nécessaire, ce qui permet aux chercheurs de tirer parti du meilleur LMS en classe même s'ils n'ont pas le matériel étendu requis pour les former.
Voir également notre article Arxiv, un article de blog et essayez-le par vous-même sans configuration à l'aide du cahier Colab.
pip install -r requirements.txt @inproceedings{
Dathathri2020Plug,
title={Plug and Play Language Models: A Simple Approach to Controlled Text Generation},
author={Sumanth Dathathri and Andrea Madotto and Janice Lan and Jane Hung and Eric Frank and Piero Molino and Jason Yosinski and Rosanne Liu},
booktitle={International Conference on Learning Representations},
year={2020},
url={https://openreview.net/forum?id=H1edEyBKDS}
}
python run_pplm.py -B military --cond_text " The potato " --length 50 --gamma 1.5 --num_iterations 3 --num_samples 10 --stepsize 0.03 --window_length 5 --kl_scale 0.01 --gm_scale 0.99 --colorama --sample Augmentez --stepsize pour intensifier le contrôle du sujet et diminuer sa valeur pour adoucir le contrôle. --stepsize 0 récupère le modèle GPT-2 non contrôlé d'origine.
Si la langue générée est répétitive (pour la «expérience de l'expérience scientifique scientifique»), il existe plusieurs options à considérer:
a) Réduire le --stepsize
b) augmenter --kl_scale (le coefficient de perte KL) ou diminuer --gm_scale (le terme de mise à l'échelle GM)
C) Ajouter --grad-length xx où xx est un (entier <= longueur, par exemple --grad-length 30 ).
python run_pplm.py -D sentiment --class_label 2 --cond_text " My dog died " --length 50 --gamma 1.0 --num_iterations 10 --num_samples 10 --stepsize 0.04 --kl_scale 0.01 --gm_scale 0.95 --sample Augmentez --stepsize pour intensifier le contrôle du sujet et diminuer sa valeur pour adoucir le contrôle. --stepsize 0 récupère le modèle GPT-2 non contrôlé d'origine.
Utiliser --class_label 3 pour négatif, et --class_label 2 pour positif
Le discriminateur et le modèle GPT-2 dans le répertoire racine sont différents de ceux utilisés pour l'analyse dans l'article. Le code et les modèles correspondant au papier peuvent être trouvés ici.