• Saltar a la navegación principal
  • Saltar al contenido principal
Logo Codificando Bits

Codificando Bits

  • Academia
    • Rutas
    • Cursos
    • Proyectos
    • Tutoriales
  • Acceder
  • Suscribirse

5.14 – Práctica 2: preguntas y respuestas con BERT

Lección 14 del módulo “Redes Transformer” del curso Fundamentos de Deep Learning con Python.

En la lección anterior hablamos en detalle de BERT, una arquitectura derivada de la Red Transformer y que usa el principio de transferencia de aprendizaje para resolver diversos problemas del procesamiento de secuencias.

Así que en esta lección veremos de forma práctica cómo usar BERT para resolver un problema de pregunta-respuesta, típico del Procesamiento del Lenguaje Natural.

Y en este primer video comenzaremos entendiendo claramente el problema a resolver así como las características del modelo a implementar. De igual forma hablaremos de la plataforma Hugging Face, que nos permitirá acceder a modelos pre-entrenados de manera sencilla desde Google Colab:

Contenido exclusivo para suscriptores

Si eres suscriptor accede en este enlace ó suscríbete a la Academia Online y accede a todo el contenido (lecciones en video, código fuente, sets de datos y descargas) de todos los cursos, proyectos y tutoriales.

Como acabamos de ver el objetivo de este proyecto es implementar un modelo que, dada una pregunta y un contexto, pueda encontrar la porción del contexto que responde adecuadamente la pregunta.

Y para ello usaremos el modelo BERT BASE pre-entrenado (y disponible en Hugging Face), añadiendo capas adicionales y afinándolo para esta tarea específica.

Veamos ahora cómo realizar la lectura y «tokenización» del set de datos:

Contenido exclusivo para suscriptores

Si eres suscriptor accede en este enlace ó suscríbete a la Academia Online y accede a todo el contenido (lecciones en video, código fuente, sets de datos y descargas) de todos los cursos, proyectos y tutoriales.

Para entrenar y poner a prueba este modelo usaremos el set de datos SQuAD v1.1, que contiene más de 100,000 pares de preguntas y respuestas.

Cada ejemplo incluye un contexto, una pregunta sobre ese contexto, la respuesta dentro del contexto, la posición inicial de la respuesta y todas las posibles respuestas.

Así que tras leer el set implementamos la tokenización y el pre-procesamiento para adaptar las secuencias al formato requerido por el modelo BERT de Hugging Face.

Con esto ya estamos listos para realizar el pre-procesamiento del set de datos y para crear los sets de entrenamiento y prueba. Veamos cómo implementar esta fase:

Contenido exclusivo para suscriptores

Si eres suscriptor accede en este enlace ó suscríbete a la Academia Online y accede a todo el contenido (lecciones en video, código fuente, sets de datos y descargas) de todos los cursos, proyectos y tutoriales.

Como acabamos de ver, en esencia el pre-procesamiento permite llevar cada secuencia de texto al formato de entrada requerido por el modelo BERT de Hugging Face.

Y tras realizar esta tarea simplemente dividimos el set de datos en entrenamiento (aproximadamente el 90% del set original) y prueba (10% restante).

Así que ya estamos listos para crear y entrenar el modelo:

Contenido exclusivo para suscriptores

Si eres suscriptor accede en este enlace ó suscríbete a la Academia Online y accede a todo el contenido (lecciones en video, código fuente, sets de datos y descargas) de todos los cursos, proyectos y tutoriales.

Debido a la gran cantidad de parámetros (110 millones) lo más recomendable es hacer uso de la TPU de Google Colab para realizar esta afinación del modelo.

La ventaja de esta afinación es que requiere muy pocas iteraciones. En este caso con tan sólo 3 iteraciones se requieren aproximadamente minutos para lograr afinar el modelo con nuestro set de datos.

Y en este punto lo único que nos resta es poner a prueba el modelo. Así que en el siguiente video veremos cómo usar BERT para llevar a cabo esta tarea preguntas-respuestas:

Contenido exclusivo para suscriptores

Si eres suscriptor accede en este enlace ó suscríbete a la Academia Online y accede a todo el contenido (lecciones en video, código fuente, sets de datos y descargas) de todos los cursos, proyectos y tutoriales.

Al hacer la predicción con el set de prueba, es decir al introducir un texto y una pregunta asociada y pedir al modelo la respuesta, vemos un excelente desempeño.

Pero lo más impresionante es que este modelo es capaz de generalizar, pues al tomar por ejemplo el extracto de un texto tomado de Wikipedia y escribir una pregunta asociada, vemos que el modelo responde correctamente casi la totalidad de las preguntas propuestas.

Realmente es impresionante este desempeño, y acá vemos en acción el principio de transferencia de aprendizaje que está detrás de BERT.

Así que en esta práctica hemos visto cómo usar BERT para resolver una tarea de preguntas y respuestas y pudimos verificar el excelente desempeño de este modelo pre-entrenado y luego afinado para esta tarea específica.

En la siguiente lección veremos en detalle otro de los desarrollos revolucionarios derivado de la Red Transformer. En particular hablaremos de GPT y el uso del aprendizaje no supervisado, en estas arquitecturas.

Todas las lecciones del curso Fundamentos de Deep Learning con Python

© Codificando Bits, LLC | Blog | Contacto | Servicios | Acerca de | Políticas

¿Has olvidado la contraseña?
¿Has perdido tu contraseña? Por favor, introduce tu nombre de usuario o dirección de correo electrónico. Recibirás por correo electrónico un enlace para crear una nueva contraseña.
body::-webkit-scrollbar { width: 7px; } body::-webkit-scrollbar-track { border-radius: 10px; background: #f0f0f0; } body::-webkit-scrollbar-thumb { border-radius: 50px; background: #dfdbdb }