Este repositório contém código para executar o Modelo de Idiomas Plug and Play (PPLM), conforme descrito nesta postagem do blog e em papel Arxiv . Um notebook Demo e Colab também estão disponíveis.
Nota: Se você planeja usar o PPLM como linha de base e gostaria de usar os parâmetros listados no apêndice do artigo, use o LM e o discriminador desta pasta . Como alternativa, ajuste os hiperparamters por conta própria, se você estiver usando o código/modelos no diretório principal e/ou os ?/Ou transformadores para uma comparação justa (os parâmetros ideais para esses modelos/discriminadores estão aproximadamente fora de um fator de 5 dos utilizados no papel).
O PPLM também é integrado ao repositório ?/Transformers .

Autores: Sumanth Dathathri, Andrea Madotto, Janice Lan, Jane Hung, Eric Frank, Piero Molino, Jason Yosinski e Rosanne Liu
O PPLM permite que um usuário conecte de maneira flexível um ou mais modelos de atributos pequenos que representam o objetivo de direção desejado em um modelo de linguagem grande e incondicional (LM). O método possui a propriedade chave de que usa o LM como está -não é necessário treinamento ou ajuste fino-o que permite que os pesquisadores aproveitem os melhores LMs da categoria, mesmo que não tenham o hardware extenso necessário para treiná-los.
Veja também nosso artigo Arxiv, postagem do blog e experimente por si mesmo sem configuração usando o notebook 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 o controle de tópicos e diminuir seu valor para suavizar o controle. --stepsize 0 Recupera o modelo GPT-2 não controlado original.
Se o idioma gerado for repetitivo (por exemplo, "Experiência científica do experimento científica"), há várias opções a serem consideradas:
a) Reduza o --stepsize
b) Aumente --kl_scale (o coeficiente de perda de KL) ou diminua --gm_scale (o termo de escala GM)
c) Adicione --grad-length xx , onde xx é um (número inteiro <= comprimento, por exemplo --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 o controle de tópicos e diminuir seu valor para suavizar o controle. --stepsize 0 Recupera o modelo GPT-2 não controlado original.
Use --class_label 3 para negativo e --class_label 2 para positivo
O discriminador e o modelo GPT-2 no diretório raiz são diferentes dos usados para a análise no artigo. Código e modelos correspondentes ao artigo podem ser encontrados aqui.