Ultralytics YOLO27: Únete a la lista de espera.
Licencia YOLO
Volver al glosario de Ultralytics

Sequence-to-Sequence Models

Los modelos de secuencia a secuencia (seq2seq) transforman una secuencia de entrada en otra de distinta longitud, como ocurre en la traducción, el resumen o el habla.

Los modelos de secuencia a secuencia (seq2seq) convierten una secuencia en otra cuya longitud puede variar, como una frase en inglés en su traducción al francés, un artículo largo en un resumen o un clip de audio en una transcripción. La mayoría utiliza una arquitectura de codificador-decodificador: el codificador lee toda la entrada y la transforma en representaciones internas, y el decodificador genera la salida token a token, condicionado por esas representaciones y por los tokens que ya ha producido. Este enfoque adoptó su forma moderna en 2014, cuando Sutskever, Vinyals y Le, de Google, publicaron Aprendizaje de secuencia a secuencia con redes neuronales y Cho et al. describieron un codificador-decodificador RNN para la traducción automática. Desde 2017, la mayoría de los modelos seq2seq se construyen con transformadores.

Cómo funcionan los modelos seq2seq#

En los modelos de 2014, una red de memoria a corto y largo plazo (LSTM) codificadora leía la frase de origen palabra por palabra y la comprimía en un único vector de longitud fija, y una LSTM decodificadora desplegaba ese vector para generar la traducción. Sutskever et al. utilizaron LSTM de cuatro capas, descubrieron que invertir el orden de las palabras de origen facilitaba el entrenamiento y alcanzaron una puntuación BLEU de 34,8 en el conjunto de prueba de inglés a francés de WMT'14. Comprimir cada frase en un único vector perjudicaba las entradas largas, por lo que Bahdanau, Cho y Bengio añadieron un mecanismo de atención en Traducción automática neuronal mediante aprendizaje conjunto de alineación y traducción, que permitía al decodificador consultar cada estado del codificador en cada paso. El transformador conservó esta estructura de codificador-decodificador, sustituyó la recurrencia por la autoatención y conectó ambas partes mediante atención cruzada. Durante la inferencia, el decodificador se ejecuta en un bucle:

Como el bucle se detiene cuando el decodificador emite un token de fin, la longitud de la salida se aprende para cada ejemplo. La decodificación suele conservar varias salidas candidatas mediante búsqueda de haces, la opción estándar para la traducción y el reconocimiento del habla.

Entrenamiento con forzado del profesor#

Durante el entrenamiento, el decodificador no necesita ejecutarse en bucle. Con el forzado del profesor, recibe la secuencia objetivo correcta desplazada una posición a la derecha y predice todos los tokens siguientes en un único paso paralelo, con una máscara causal para que cada posición solo vea los objetivos anteriores. La pérdida es la entropía cruzada entre esas predicciones y los tokens siguientes reales. nn.Transformer de PyTorch implementa el codificador-decodificador original:

import torch
from torch import nn

torch.manual_seed(0)
src_vocab, tgt_vocab, d_model = 1000, 800, 64
embed_src, embed_tgt = nn.Embedding(src_vocab, d_model), nn.Embedding(tgt_vocab, d_model)
model = nn.Transformer(d_model, nhead=4, num_encoder_layers=2, num_decoder_layers=2, batch_first=True)
to_logits = nn.Linear(d_model, tgt_vocab)

source = torch.randint(0, src_vocab, (1, 9))  # a 9-token source sentence
target = torch.randint(0, tgt_vocab, (1, 7))  # start token + a 6-token translation

# Teacher forcing: the decoder reads the correct previous tokens and predicts every next token in parallel
decoder_input, labels = target[:, :-1], target[:, 1:]
causal_mask = nn.Transformer.generate_square_subsequent_mask(decoder_input.size(1))
logits = to_logits(model(embed_src(source), embed_tgt(decoder_input), tgt_mask=causal_mask))
loss = nn.functional.cross_entropy(logits.flatten(0, 1), labels.flatten())

print(f"Source tokens: {source.shape[1]} -> decoder logits: {tuple(logits.shape)}")
print(f"Training loss: {loss.item():.2f}")

Imprime Source tokens: 9 -> decoder logits: (1, 6, 800), una predicción sobre el vocabulario objetivo de 800 tokens para cada una de las 6 posiciones objetivo, calculada a partir de una secuencia de origen de 9 tokens en un solo paso. La pérdida del modelo sin entrenar, 6.73, está cerca de ln(800) ≈ 6.68, la pérdida de una predicción uniforme. Como durante el entrenamiento siempre se proporcionan los tokens anteriores correctos, mientras que en la inferencia se usan las propias predicciones del modelo, los errores pueden acumularse durante la inferencia; este efecto se denomina sesgo de exposición.

  • Modelos solo de codificador, como BERT: Estos modelos leen la entrada en ambas direcciones y generan una representación por token, lo que los hace adecuados para la clasificación y el etiquetado.
  • Modelos de lenguaje grandes (LLM) solo de decodificador: Modelos como GPT colocan la entrada y la salida en una misma secuencia y resuelven tareas seq2seq continuando la instrucción, que es como se genera la mayor parte del texto actualmente.
  • Redes neuronales recurrentes (RNN) y GRU: Las capas recurrentes de los codificadores y decodificadores originales de 2014. Cho et al. introdujeron la unidad recurrente cerrada en el mismo artículo que su codificador-decodificador.

Aplicaciones#

Google trasladó Google Translate a su sistema GNMT en 2016: un codificador y decodificador LSTM de 8 capas con atención. La traducción sigue siendo la tarea seq2seq por excelencia. T5 de Google planteó todas las tareas de procesamiento del lenguaje natural (NLP) como texto a texto, incluido el resumen de textos y la respuesta a preguntas. Whisper de OpenAI es un transformador codificador-decodificador para el reconocimiento del habla, entrenado con 680.000 horas de audio. Los modelos de visión usan el mismo patrón para la generación de pies de foto para imágenes y el reconocimiento óptico de caracteres (OCR). Florence-2 de Microsoft gestiona la generación de pies de foto, la localización y la detección como salidas de texto de un único modelo seq2seq, y su versión Large se ejecuta en Ultralytics Platform para la anotación automática. Pix2Seq de Google convierte la detección de objetos en una tarea seq2seq al representar cada objeto con cinco tokens discretos: cuatro coordenadas cuantizadas y una clase. RT-DETR, el detector en tiempo real de Baidu que se ejecuta en el paquete de Ultralytics, conserva el codificador y el decodificador con atención cruzada, pero hace que el decodificador refine en paralelo 300 consultas de objetos para que todas las cajas salgan en una sola pasada.

Explora las soluciones

Visión artificial en el deporte

Visión artificial en el deporte

Descubre cómo Ultralytics YOLO impulsa la visión artificial en el deporte con el seguimiento de jugadores y balones, analíticas de rendimiento, información útil para entrenadores y rehabilitación de deportistas.
Más información
Visión artificial para imágenes aéreas

Visión artificial para imágenes aéreas

Convierte imágenes aéreas y de drones en información útil en tiempo real para la agricultura, la acuicultura, la conservación y el análisis geoespacial con Ultralytics YOLO.
Más información
Visión artificial en el sector aeroespacial

Visión artificial en el sector aeroespacial

Aplica la visión artificial en el sector aeroespacial con Ultralytics YOLO para inspeccionar aeronaves, detectar objetos extraños en pistas, gestionar operaciones en tierra y detectar defectos en materiales compuestos.
Más información
Visión artificial en seguridad

Visión artificial en seguridad

Protege todas tus instalaciones con los modelos Ultralytics YOLO. La IA visual permite supervisar perímetros, detectar amenazas, reconocer matrículas y mejorar la seguridad laboral.
Más información
Visión artificial en robótica

Visión artificial en robótica

Potencia máquinas más inteligentes con los modelos Ultralytics YOLO. La IA visual en robótica impulsa la navegación autónoma, la percepción, el seguimiento de objetos y el control en tiempo real.
Más información
Visión artificial en logística

Visión artificial en logística

Agiliza la logística con modelos Ultralytics YOLO. La IA visual permite inspeccionar paquetes, clasificarlos, realizar el seguimiento de vehículos y supervisar la seguridad del almacén en tiempo real.
Más información
Visión artificial en el comercio minorista

Visión artificial en el comercio minorista

Reinventa el comercio minorista con modelos Ultralytics YOLO. La IA visual permite realizar el seguimiento del inventario, supervisar estanterías, gestionar colas y obtener información más útil sobre los clientes.
Más información
Visión artificial en el sector sanitario

Visión artificial en el sector sanitario

Desarrolla soluciones sanitarias con modelos Ultralytics YOLO. La IA visual en el sector sanitario permite acelerar el diagnóstico por imagen, mejorar los diagnósticos y supervisar a los pacientes.
Más información
Visión artificial en la fabricación

Visión artificial en la fabricación

Optimiza la fabricación con modelos Ultralytics YOLO. La IA visual mejora el control de calidad, la detección de defectos, el cumplimiento de las normas de uso de EPI y la automatización de las líneas de montaje.
Más información
Visión artificial en la automoción

Visión artificial en la automoción

Aplica la visión artificial al sector de la automoción con modelos Ultralytics YOLO. La IA visual mejora la seguridad vial, la asistencia al conductor y la automatización de vehículos para lograr carreteras más inteligentes.
Más información
Visión artificial en la agricultura

Visión artificial en la agricultura

Incorpora la IA de visión a la agricultura inteligente con modelos Ultralytics YOLO. Impulsa la monitorización de cultivos, el seguimiento del ganado y la agricultura de precisión para obtener cosechas más abundantes e inteligentes.
Más información

¡Construyamos juntos el futuro de la IA!

Inicia tu recorrido hacia el futuro del aprendizaje automático