Arquitectura Transformers en procesamiento de lenguaje natural

Clase 9 de 16Curso de NLP con Python

Resumen

Los Transformers representan una innovadora arquitectura que transformó el campo del procesamiento del lenguaje natural, NLP por sus siglas en inglés. Fueron propuestos en el paper Attention is all unit de Google y ofrecen un análisis paralelo del texto en lugar del tradicional análisis secuencial palabra por palabra.

¿Qué son y cómo funcionan los Transformers?

Los Transformers procesan secuencias de palabras simultáneamente, permitiendo capturar el contexto completo de oraciones, en lugar de analizarlas palabra por palabra. Esta característica les permite conservar relaciones de largo alcance entre palabras y proporcionar representaciones contextuales profundas y precisas.

Entre los aportes de Transformers destaca el concepto de self attention, que evalúa el peso relativo de cada token o palabra en relación al contexto completo.

¿Cuáles son las arquitecturas basadas en Transformers más conocidas?

Diferentes modelos aprovechan la arquitectura Transformer, adaptándola según el objetivo y recursos disponibles:

  • BERT: utiliza únicamente la parte del encoder bidireccional del Transformer y procesa grandes volúmenes de texto. Posee típicamente 12 capas ocultas.
  • DistilBERT: versión más sencilla y ligera de BERT, con solo 6 capas, ideal para hardware limitado.
  • Roberta y Albert: varían principalmente en la manera y cantidad de datos con que fueron entrenados y en sus capas internas.

¿Cómo trabajar con Transformers en un entorno práctico?

La librería Transformer de Hugging Face facilita el interactuar con estos modelos, siendo compatible con Google Colab y entornos locales. Para usarla localmente, se instala con:

pip install transformer

Su uso implica tener instalada también la librería PyTorch debido a la dependencia interna que tiene Transformer respecto de PyTorch.

¿Cómo visualizar y entender la estructura de un modelo Transformer?

Al utilizar la librería Transformer, se pueden visualizar las capas ocultas de un modelo (como en BERT), que habitualmente son 12 capas.

La estructura general incluye:

  • Embedding del texto de entrada.
  • La capa de atención ( self attention ).
  • Capas intermedias (dense) y técnicas como dropout para evitar sobreajuste.
  • Output lineal para obtener predicciones o resultados finales.

La cantidad de capas que elijamos dependerá del hardware disponible, la complejidad del problema a resolver y las necesidades específicas de implementación.

¿Qué es el Self Attention y cómo ayuda a mejorar el procesamiento?

Self Attention permite asignar un peso individual a cada token en base al contexto general de la frase. Este proceso involucra:

  1. Calcular un vector query, uno key y uno value para cada elemento del texto.
  2. Ejecutar multiplicaciones matriciales entre estos vectores para obtener pesos relativos.
  3. Aplicar la función softmax a estos pesos para determinar la importancia de cada token.

Gracias al self attention, es posible identificar qué tokens tienen mayor relevancia dentro del texto contextual, proporcionando representaciones enriquecidas de las palabras según su contexto.

Te invito a compartir tus dudas o experiencias con los Transformers en los comentarios.