該存儲庫包含用於運行插件語言模型(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模型與本文中用於分析的歧視器不同。與該論文相對應的代碼和模型可以在此處找到。