5.16 - Práctica 3: Generación de texto con GPT-2

Lección 16 de la sección “Redes Transformer” del curso Fundamentos de Deep Learning con Python.

Introducción

En la lección anterior vimos cómo GPT y usa el aprendizaje no supervisado para emular la forma como el ser humano interpreta y resuelve tareas propias del lenguaje natural, usando un enfoque de fuerza bruta.

En esta práctica veremos cómo usar esta arquitectura para la generación de texto de forma automática.

Contenido exclusivo suscriptores

Suscríbete y accede al código fuente y al video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online

Generación de texto con GPT-2

Dado el tamaño gigantesco de los modelos GPT y de las limitaciones de memoria de la máquina virtual de Google Colab, haremos uso de una versión simplificada del modelo GPT-2 original, que contiene aproximadamente 774 millones de parámetros (en lugar de los 1.500 millones del modelo del artículo original). Teniendo esto en cuenta es importante habilitar el procesamiento con GPU en Google Colab.

Además, en lugar de implementar el modelo desde cero, usaremos la librería Hugging Face para minimizar la cantidad de código requerida, y en lugar de ello nos enfocaremos en las diferentes formas de generar texto y en algunas limitaciones del modelo.

Librerías requeridas

Tal como lo hicimos en la práctica 2, cuando usamos BERT para una tarea de pregunta-respuesta, instalaremos inicialmente la librería Transformers de Hugging Face.

Y a continuación importaremos GPT2Tokenizer (para la “tokenización” del texto de entrada) y TFGPT2LMHeadModel (para instanciar el modelo pre-entrenado y listo para usar).

Modelo

Como lo acabamos de mencionar, usaremos TFGPT2LMHeadModel para descargar automáticamente el modelo (2.88 GB, 774 millones de parámetros) y luego instanciarlo.

Generación de texto

Analizaremos dos de las principales estrategias de generación de texto que proporciona la librería Hugging Face:

  1. Greedy Search (o búsqueda codiciosa), que es la forma más simple de generación pero que, como veremos, el texto generado no es de gran calidad.
  2. Con muestreo top-k y top-p en donde comprobaremos que el texto generado se asemeja mucho al tipo de texto que escribiría un ser humano

Limitaciones y sesgo del generador

Tal como se menciona en el sitio web de Hugging Face, y de hecho en el mismo artículo original, el set de entrenamiento no está disponible ni tampoco ha sido filtrado cuidadosamente, así que el texto usado puede contener sesgos (por ejemplo de tipo racial o de género), como lo pudimos comprobar al generar varios ejemplos de texto con GPT-2.

Contenido exclusivo suscriptores

Recuerda suscribirte para acceder al código fuente y al video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online

Conclusión

Con los ejemplos de generación de texto que acabamos de ver, pudimos comprobar el impresionante desempeño de este modelo GPT-2 para la generación de texto, pero también nos dimos cuenta de que en algunos casos este texto generado puede tener un sesgo debido precisamente a este enfoque de aprendizaje no supervisado.

Así que ya estamos listos para entrar a la última parte del curso, en donde veremos el potencial que tienen las Redes Transformers en ámbitos incluso diferentes al Procesamiento del Lenguaje Natural.

Entonces, en el proyecto final del curso veremos como llevar a cabo una tarea de visión artificial: la clasificación de imágenes con Redes Transformer.

Ver todas las lecciones de este curso