该存储库包含用于运行插件语言模型(PPLM)的代码,如本博客文章和Arxiv论文所述。还提供了演示和COLAB笔记本。
注意:如果您打算将PPLM用作基线,并且想使用本文附录中列出的参数,请使用该文件夹中的LM和歧视器。另外,如果您使用主目录中的代码/模型和/或?/变压器进行公平比较(这些模型/歧视器的最佳参数大约在论文中使用的倍数5倍)。
PPLM也集成到?/Transformers存储库中。

作者:Sumanth Dathathri,Andrea Madotto,Janice Lan,Jane Hung,Eric Frank,Piero Molino,Jason Yosinski和Rosanne Liu
PPLM允许用户灵活地插入一个或多个小型属性模型,该模型代表所需的转向目标,以插入大型无条件语言模型(LM)。该方法具有它使用LM的关键属性,即不需要培训或微调 - 即使他们没有培训它们所需的广泛硬件,也使研究人员能够利用一流的LMS。
另请参阅我们的Arxiv论文,博客文章,并使用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增加--stepsize以加强主题控制,并降低其价值以软化控制。 --stepsize 0恢复原始的不受控制的GPT-2模型。
如果要生成的语言是重复的(例如“科学实验实验”),则需要考虑几种选择:
a)减少--stepsize
b)增加--kl_scale (kl-loss系数)或降低--gm_scale (GM-SCALING术语)
c)添加--grad-length xx其中xx是一个(整数<=长度,例如--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增加--stepsize以加强主题控制,并降低其价值以软化控制。 --stepsize 0恢复原始的不受控制的GPT-2模型。
使用--class_label 3用于负面, --class_label 2用于正
根目录中的判别器和GPT-2模型与本文中用于分析的歧视器不同。与该论文相对应的代码和模型可以在此处找到。