GPT-2 es un modelo de inteligencia artificial capaz de generar texto en inglés, y que quizás se pueda utilizar también para crear un chatbot en español.
Tabla de contenidos
Entrenando un modelo GPT-2
Entrenar un modelo GPT-2 es muy sencillo gracias al trabajo de gente muy amable que creó una versión para Google Gollaboratory.
Solo debemos seguir los pasos, subir un archivo de texto en inglés, y en un par de minutos podremos generar más texto similar al archivo que subimos, ya sea poesía, novela o recetas de cocina.
Una obra de teatro al estilo de Shakespeare
Generando diálogo
Ahora que ya tenía una manera de generar texto tocaba ver si el modelo era capaz de generar diálogo. Utilizando un corpus de diálogos que había creado hace unos años tenía la esperanza de que GPT-2 aprenda a generar mensajes de texto cortos y por turnos.
¡Y así fue! GPT-2 es muy bueno en encontrar patrones y repetirlos, así que pudo replicar rápidamente la estructura de pregunta / respuesta.
Hablando en español
A pesar de que GPT-2 fue entrenado en varios gigas de texto en inglés yo tenía la sospecha de que, por un lado algo de texto en español se haya filtrado, y por otro que las diferencias entre un idioma y otro no sean tan grandes como para que tenga que aprenderlo desde cero. Después de todo el modelo podría reutilizar ciertos “pseudoconceptos” como palabras, espacios y puntuación.
Así que descargué un corpus de diálogos de películas en español para la prueba, y los resultados fueron increíbles.
Rápidamente había aprendido muchas palabras en español, a utilizar los acentos, signos de apertura y los pronombres masculinos y femeninos distintivos de nuestro idioma.
Compicactus
Entusiasmado con los resultados decidí traducir el corpus de rDany, y modificarlo para crear un nuevo personaje. Entrené el modelo por varios días en diálogos, obras de teatro, libros y transcripciones. Y utilizando la librería gpt-2-simple para Python puse en línea el chatbot Compicactus en Telegram, mi aplicación de mensajería preferida.
Resultados
Cada uno de los chatbots, rDany en inglés y Compicactus español, tiene sus ventajas y desventajas.
rDany tiene una base de conocimientos muchísimo mas grande en la que fue entrenado originalmente, y puede improvisar más fácilmente, pero solo puede hablar en inglés.
Compicactus por otro lado conoce menos del mundo, ya que el corpus en español y mi capacidad de computo son muy limitados. Pero puede hablar en español (latino específicamente) y hay algo extrañamente gratificante ver que un bot habla de la misma manera que uno.
Los invito a conversar con https://t.me/rDanyBot y https://t.me/CompicactusBot en Telegram. Y si te gusta el tema tanto como a mi los invito a unirse a mi grupo de chat https://t.me/EibrielCommunity .
Los aplausos son muy bienvenidos, y pueden seguirme en Twitter o Telegram
Nota: Actualmente en la comunidad Deep-ESP estamos trabajando en entrenar un modelo GPT-2 en español apropiadamente, para mejorar los resultados obtenidos por finetuning. Si te interesa colaborar podés unirte al grupo de Telegram.
Gabriel Caraballo
Eibriel.com