Dieses Repository enthält Code zum Ausführen des Plug -and -Play -Sprachmodells (PPLM), wie in diesem Blog -Beitrag und Arxiv -Papier beschrieben. Ein Demo- und Colab -Notizbuch sind ebenfalls verfügbar.
Hinweis: Wenn Sie PPLM als Basislinie verwenden möchten und die im Anhang des Papiers aufgeführten Parameter verwenden möchten, verwenden Sie bitte den LM und den Diskriminator aus diesem Ordner . Alternativ können Sie die Hyperparamter selbst einstellen, wenn Sie den Code/Modellen im Hauptverzeichnis und/oder die Transformatoren für einen fairen Vergleich verwenden (die optimalen Parameter für diese Modelle/Diskriminatoren sind in etwa um den Faktor 5 aus den in der Arbeit verwendeten).
PPLM ist auch in das Repository /Transformers -Repository integriert.

Autoren: Sumanth Dathathri, Andrea Madotto, Janice Lan, Jane Hung, Eric Frank, Piero Molino, Jason Yosinski und Rosanne Liu
PPLM ermöglicht es einem Benutzer, ein oder mehrere winzige Attributmodelle flexibel einzuschließen, die das gewünschte Lenkungsziel in ein großes, bedingungsloses Sprachmodell (LM) darstellen. Die Methode verfügt über die wichtigste Eigenschaft, die das LM so verwendet, wie es ist -es ist kein Training oder eine Feinabstimmung erforderlich-, mit der Forscher erstklassige LMs nutzen können, selbst wenn sie nicht über die umfangreiche Hardware verfügen, die für die Ausbildung erforderlich ist.
Sehen Sie sich auch unser Arxiv -Papier, den Blog -Beitrag an und probieren Sie es mit dem Colab -Notebook für sich selbst ohne Setup aus.
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 Erhöhen Sie --stepsize , um die Themenkontrolle zu intensivieren und den Wert zu verringern, um die Kontrolle zu mildern. --stepsize 0 Sie das ursprüngliche unkontrollierte GPT-2-Modell.
Wenn die erzeugte Sprache sich wiederholt (für z. B. "Science Science Experiment Experiment"), müssen mehrere Optionen berücksichtigt werden:
a) --stepsize
b) Erhöhung --kl_scale (der KL-Verlust-Koeffizient) oder Abnahme --gm_scale (der GM-Scaling-Begriff)
c) Add --grad-length xx wobei xx ein (Ganzzahl <= Länge, z. --grad-length 30 ) ist.
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 Erhöhen Sie --stepsize , um die Themenkontrolle zu intensivieren und den Wert zu verringern, um die Kontrolle zu mildern. --stepsize 0 Sie das ursprüngliche unkontrollierte GPT-2-Modell.
Verwenden Sie --class_label 3 für negative und --class_label 2 für positiv
Das Diskriminator und das GPT-2-Modell im Stammverzeichnis unterscheiden sich von denen, die für die Analyse im Papier verwendet werden. Code und Modelle, die dem Papier entsprechen, finden Sie hier.