GPT-2 em português com Streamlit

Não é preciso retreinar o GPT-2

Luís Carlos Silva Eiras
2 min readDec 17, 2020
O escrivão, Pierre e Henri-Louis Jacquet-Droz, e Jean-Frédéric Leschot, 1773

Descobri o GPT-2, a rede neural da OpenAI, que gera textos a partir de algumas palavras ou frases, quando eu estava escrevendo o artigo Máquinas que escrevem. Como exemplo, utilizei a versão do site Talk to Transformer que, em fevereiro de 2020, era ainda gratuito, e utilizei o Google Translator para traduzir as etapas do inglês para o português, de modo que o texto fosse com o máximo de máquinas.

Em seguida, li que o GPT-2 poderia ser treinado em português a partir de artigos como Train GPT-2 in your own language, de Arshabhi Kayal, e Ensinando português ao GPT-2, de Erick Fonseca, e aí cheguei ao gpt-2-simple.

Entretanto, apareceram muitas dificuldades em se colocar o GPT-2 treinado em português e, ao mesmo tempo, disponível na web. Até que descobri o Prototyping Machine Learning Models with Streamlit, de Mandy Gu, que utiliza o GPT-2 do Transformer, um precursor do GPT-3, com o Streamlit.

Duplo twist carpado

Foi preciso dar um duplo twist carpado: o texto em português deveria ser traduzido para o inglês e resultado, em inglês do GPT-2, novamente para o português. Para isso utilizei o googletrans, que funcionou perfeitamente.

“Alan Turing”

“Noel Rosa”

Até que parou de funcionar devido ao erro NoneType’ object has no attribute ‘group’. Demorei vários dias para descobrir que o googletrans tinha sido substituído pelo google-trans-new. Voltou a funcionar até que parou de novo.

O problema era outro. Existem muitas versões do GPT-2, então o Streamlit deixou de aceitar a versão mais comum (“gpt-2”) e aceitar apenas o openai-gpt, que gera textos, digamos, menos surpreendentes, mas é estável.
A versão final está no GitHub e ficou assim:

Pré-requisitos:

streamlit==0.57.1
tensorflow==2.2.0
transformers==3.0.2
google-trans-new==1.1.9

O código:

E pode ser experimentada em
https://share.streamlit.io/luiscarloseiras/gpt-2pt/main/gpt-2.py

Se divirtam!

A versão é genérica

Para outras línguas, basta substituir os códigos das linhas 41 e 46, conforme tabela publicada no capítulo 7, página 17, do Googletrans Documentation.

Referência:
Daiane dos Santos, duplo twist carpado.

--

--

Luís Carlos Silva Eiras
Luís Carlos Silva Eiras

Written by Luís Carlos Silva Eiras

Áreas de estudo: Análise de dados, inteligência artificial e blockchain.