Este repositorio contiene código para ejecutar el Modelo de lenguaje de plug and Play (PPLM), como se describe en esta publicación de blog y el documento ARXIV . Una demostración y un cuaderno de Colab también están disponibles.
Nota: Si planea usar PPLM como línea de base y desea usar los parámetros enumerados en el apéndice del documento, utilice el LM y el Discriminador de esta carpeta . Alternativamente, sintonice los hiperparamters por su cuenta si está utilizando el código/modelos en el directorio principal y/o los transformadores?
PPLM también está integrado en el repositorio ?/Transformers .

Autores: Sumanth Dathathri, Andrea Madotto, Janice Lan, Jane Hung, Eric Frank, Piero Molino, Jason Yosinski y Rosanne Liu
PPLM permite a un usuario conectar de manera flexible uno o más modelos de atributos pequeños que representan el objetivo de dirección deseado en un modelo de lenguaje grande e incondicional (LM). El método tiene la propiedad clave que utiliza el LM tal como está , no se requiere capacitación o ajuste fino, lo que permite a los investigadores aprovechar las mejores LM en su clase, incluso si no tienen el extenso hardware requerido para entrenarlos.
Vea también nuestro artículo ARXIV, publicación de blog y pruébalo por ti mismo sin configuración usando el cuaderno 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 Aumente --stepsize para intensificar el control del tema y disminuir su valor para suavizar el control. --stepsize 0 Recupera el modelo GPT-2 no controlado original.
Si el lenguaje que se genera es repetitivo (por ejemplo, "experimento de ciencias del experimento científico"), hay varias opciones a considerar:
a) Reducir el --stepsize
b) Aumento --kl_scale (el coeficiente KL-Pro-Las) o disminuir --gm_scale (el término de escala de GM)
c) Agregar --grad-length xx donde xx es un (entero <= longitud, por ejemplo --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 Aumente --stepsize para intensificar el control del tema y disminuir su valor para suavizar el control. --stepsize 0 Recupera el modelo GPT-2 no controlado original.
Use --class_label 3 para negativo, y --class_label 2 para positivo
El discriminador y el modelo GPT-2 en el directorio raíz son diferentes de los utilizados para el análisis en el documento. El código y los modelos correspondientes al papel se pueden encontrar aquí.