O repositório contém código para gerar poemas curtos usando modelos de linguagem generativa com arquitetura GPT.
É utilizado um modelo de linguagem transformadora baseado na arquitetura GPT. Este modelo leva em consideração tanto a gramática da língua russa (semelhante a modelos de linguagem como o rugpt) quanto sua fonética, incluindo as regras de rima e a construção da métrica poética. Os detalhes estão na apresentação.
Os binários do modelo estão disponíveis na imagem inkoziev/verslibre:latest docker.
Baixe e execute a imagem:
sudo docker pull inkoziev/verslibre:latest
sudo docker run -it inkoziev/verslibre:latest
Após o lançamento, o programa solicitará que você insira um token para o bot do telegrama.
Após carregar todos os modelos, você pode iniciar o bot em seu chat com o comando /start. O bot pedirá que você escolha um dos três tópicos aleatórios para sua redação ou insira seu próprio tópico. O tópico pode ser qualquer frase com um substantivo como protagonista, por exemplo “gerador de poesia”.
Este bot está disponível no telegrama como @verslibre_bot
Exemplos de geração:
* * *
Любовь - источник вдохновения,
Души непризнанных людей.
И день весеннего цветения,
Омытый зеленью дождей…
* * *
Душа, гонимая страстями,
Тревожит, веет теплотой.
Любовь, хранимая стихами,
И примиренье, и покой.
Além do modelo generativo em si, o transcritor de poesia, que marca os poemas de origem para os modelos de treinamento, é de grande importância para o bom funcionamento. Você pode ler mais sobre o trabalho do transcritor aqui.
Uma imagem docker inkoziev/haiku:latest está disponível para executar o gerador como um bot de telegrama.
Baixe a imagem e execute:
sudo docker pull inkoziev/haiku:latest
sudo docker run -it inkoziev/haiku
O programa solicitará que você insira um token de bot de telegrama. Em seguida, os modelos serão carregados (cerca de um minuto) e você poderá se comunicar com o bot. Insira uma semente - um substantivo ou frase. A geração de diversas opções na CPU leva aproximadamente 30 segundos. Em seguida, o bot exibirá a primeira opção e se oferecerá para avaliá-la ou exibirá a próxima opção.
Este bot está disponível no telegrama como @haiku_guru_bot.
Como este é um modelo generativo aleatório, seus resultados geralmente não podem ser replicados simplesmente pela introdução da mesma semente. Copie bons resultados, complemente-os com um modelo ilustrativo, como ruDALLE, e obtenha conteúdos totalmente exclusivos:
Mais exemplos de haicais podem ser vistos no meu blog.
O subdiretório tmp contém arquivos com parte dos dados de treinamento:
poet_corpus.txt - corpus de quadras filtradas, símbolo | como separador de linhas; usado para treinamento adicional do modelo ruGPT.
poema_generator_dataset.dat - conjunto de dados para treinamento ruGPT, que produz o texto de um poema por tópico (frase-chave).
captions_generator_rugpt.dat - conjunto de dados para treinamento do ruGPT, gerando um título de verso com base em seu conteúdo.
Uma descrição do processo de preparação do corpo de treinamento pode ser encontrada aqui.