Этот репозиторий содержит код для запуска модели Plug и Play Language (PPLM), как описано в этом блоге и Arxiv Paper . Демонстрация и ноутбук Colab также доступны.
Примечание. Если вы планируете использовать PPLM в качестве базовой линии и хотели бы использовать параметры, перечисленные в приложении бумаги, используйте LM и дискриминатор из этой папки . В качестве альтернативы, настраивайте гиперпарамтеры самостоятельно, если вы используете код/модели в основном каталоге и/или «/преобразователи для справедливого сравнения» (оптимальные параметры для этих моделей/дискриминаторов примерно в 5 от 5 из тех, которые используются в статье).
PPLM также интегрируется в репозиторий ?/Трансформеры .

Авторы: Сумант Датэтри, Андреа Мадотто, Дженис Лан, Джейн Хун, Эрик Франк, Пьеро Молино, Джейсон Йосински и Розанна Лю
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.
Если генерируемый язык повторяется (например, «Эксперимент по научному эксперименту»), есть несколько вариантов рассмотрения:
а) Уменьшить --stepsize
б) Увеличение --kl_scale (коэффициент KL-LOSS) или уменьшение --gm_scale (термин GM-масштабирования)
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 в корневом каталоге отличаются от тех, которые используются для анализа в статье. Код и модели, соответствующие статье, можно найти здесь.