Glosario

Modelos secuencia a secuencia

Descubre cómo los modelos secuencia a secuencia transforman las secuencias de entrada en secuencias de salida, potenciando tareas de IA como la traducción, los chatbots y el reconocimiento de voz.

Entrena los modelos YOLO simplemente
con Ultralytics HUB

Saber más

Los modelos Secuencia a Secuencia (Seq2Seq) son una clase de modelos de aprendizaje profundo diseñados para transformar una secuencia de entrada en una secuencia de salida, donde las longitudes de las secuencias de entrada y salida pueden diferir. Esta capacidad los hace excepcionalmente potentes para una amplia gama de tareas, en particular en el Procesamiento del Lenguaje Natural (PLN), pero también aplicables en otros dominios como el reconocimiento del habla e incluso ciertos problemas de visión por ordenador que implican datos secuenciales. La idea central, introducida en artículos como"Sequence to Sequence Learning with Neural Networks" de Sutskever et al. y"Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation" de Cho et al., revolucionó la forma en que las máquinas manejan las transformaciones de secuencias de longitud variable.

Arquitectura codificador-decodificador

La estructura fundamental de la mayoría de los modelos Seq2Seq es la arquitectura codificador-decodificador:

  1. Codificador: Esta parte procesa toda la secuencia de entrada (por ejemplo, una frase en francés) paso a paso, normalmente utilizando una Red Neuronal Recurrente (RNN) como la LSTM (Memoria a Corto Plazo Larga) o la GRU (Unidad Recurrente Cerrada). Su objetivo es comprimir la información de la secuencia de entrada en una representación interna de tamaño fijo, a menudo llamada "vector de contexto" o "vector de pensamiento". Este vector pretende captar la esencia o el significado de la secuencia de entrada.
  2. Decodificador: Esta parte toma el vector de contexto generado por el codificador y produce la secuencia de salida paso a paso (por ejemplo, la frase traducida en English). También suele ser una RNN que genera un elemento (como una palabra o un carácter) en cada paso temporal, condicionado por el vector de contexto y los elementos generados en pasos anteriores.

Una mejora significativa de esta estructura básica fue la introducción del mecanismo de atención, detallado en el artículo de Bahdanau et al."Neural Machine Translation by Jointly Learning to Align and Translate". La atención permite al descodificador centrarse selectivamente en distintas partes de la secuencia de entrada al generar cada elemento de la secuencia de salida, en lugar de basarse únicamente en el vector de contexto único de tamaño fijo. Esto mejoró drásticamente el rendimiento, especialmente para secuencias largas. Este concepto allanó el camino para arquitecturas como el Transformador, que se basa totalmente en mecanismos de atención, prescindiendo por completo de la recurrencia y convirtiéndose en la base de modelos como BERT y GPT.

Aplicaciones en el mundo real

Los modelos Seq2Seq destacan en tareas en las que la entrada y la salida son secuenciales, pero pueden no tener una correspondencia uno a uno en longitud o estructura. Las aplicaciones clave son:

  • Traducción automática: Traducir texto de un idioma a otro (por ejemplo, impulsando servicios como Google Translate o DeepL Translator). Éste fue uno de los primeros grandes éxitos de los modelos Seq2Seq.
  • Resumir textos: Generar un resumen conciso a partir de un documento o artículo más largo. La entrada es la secuencia de texto larga, y la salida es la secuencia de resumen más corta.
  • IA conversacional / Chatbots: Generación de respuestas en un sistema de diálogo. La entrada es la consulta o afirmación del usuario, y la salida es la respuesta del chatbot. Plataformas como Google Dialogflow utilizan este tipo de tecnologías.
  • Reconocimiento de voz: Conversión de audio hablado (una secuencia de características de audio) en texto (una secuencia de palabras).
  • Subtitulado de imágenes: Generar una descripción textual (secuencia de salida) para una imagen (secuencia de entrada, a menudo representada como características extraídas por una CNN). Aunque la entrada no es estrictamente secuencial, el proceso de generación de la salida se ajusta al paradigma Seq2Seq.
  • Generación de código: Generating programming code based on natural language descriptions.

Conceptos y consideraciones clave

Construir y entrenar modelos Seq2Seq implica varios conceptos importantes:

Seq2Seq frente a otras arquitecturas

Aunque los modelos Seq2Seq basados en RNNs fueron pioneros, el campo ha evolucionado:

  • RNN estándar: Normalmente asignan secuencias a secuencias de la misma longitud o clasifican secuencias enteras, careciendo de la flexibilidad de la estructura codificador-decodificador para longitudes de salida variables.
  • Transformadores: Ahora dominan muchas tareas de PNL de las que antes se ocupaban los modelos Seq2Seq basados en RNN. Utilizan la autoatención y las codificaciones posicionales en lugar de la recurrencia, lo que permite una mejor paralelización y una captura más eficaz de las dependencias de largo alcance. Modelos como el RT-DETR de Baidu, apoyado por Ultralytics, incorporan componentes Transformer para la detección de objetos.
  • CNNs: Utilizadas principalmente para datos en forma de cuadrícula, como imágenes (por ejemplo, en Ultralytics YOLO para la detección y segmentación), aunque a veces se adaptan para tareas secuenciales.

Aunque Seq2Seq suele referirse a la estructura codificador-decodificador basada en RNN, el principio general de asignar secuencias de entrada a secuencias de salida utilizando una representación intermedia sigue siendo fundamental en muchas arquitecturas modernas, incluidos los Transformadores utilizados en traducción y resumen. Herramientas como PyTorch y TensorFlow proporcionan bloques de construcción para implementar modelos de secuencias tanto tradicionales como modernos. La gestión del proceso de entrenamiento puede racionalizarse utilizando plataformas como Ultralytics HUB.

Leer todo