Sitemap

GPT-2 em português com Streamlit

Não é preciso retreinar o GPT-2

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”

Press enter or click to view image in full size

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.

--

--