Secuencia a secuenciaSequence-to-Sequence

Estructura que escucha todo y genera de nuevo con otra longitud

Puntos clave
  • Secuencia a secuencia es una estructura que recibe algo en fila y devuelve otra cosa en fila. La traducción, el resumen y los chatbots empezaron sobre esta base.
  • El modelo se divide en dos partes: la que escucha y la que genera. La primera lee hasta el final, y la segunda produce, después, una palabra a la vez.
  • Lo que conecta a las dos es un solo bloque de resumen. La parte que genera no ve el texto original, solo ese bloque.
  • El número de entradas y de salidas puede ser distinto. Se pueden escuchar cuatro palabras y devolver tres.
  • Meter todo en un único bloque de resumen hacía que el principio de los textos largos se perdiera, y de ahí nació la atención.
Contenido

1La analogía

En el mostrador de un puesto de comida, alguien toma el pedido. El cliente dice "un bocadillo, una sopa y, ah, ponme también unas patatas", y quien atiende escucha todo sin interrumpir hasta que termina de hablar. Solo cuando el cliente acaba, anota el pedido resumido en una comanda y se la pasa a la cocina.

La cocina no oye la voz del cliente. Solo mira esa comanda y, a partir de ahí, prepara el bocadillo, calienta la sopa, sirve las patatas y va sacando los platos uno por uno. Cuántas frases dijo el cliente y cuántos platos salen al final no tienen por qué coincidir. Separar así, en dos partes, quien escucha y quien genera, es justo lo que hace secuencia a secuencia.

2En detalle

Quien escucha y quien genera van por separado

La red recurrente que vimos antes recibía una palabra y devolvía una palabra de inmediato. Con ese método no se puede traducir. Dos idiomas pueden tener un orden de palabras distinto y una cantidad distinta de palabras, así que no se puede soltar la primera palabra en cuanto se oye la primera palabra de entrada.

Secuencia a secuencia divide el modelo directamente en dos. La primera parte solo lee la frase y no devuelve nada. La segunda no lee: solo genera. Cada una tiene sus propios controles y se entrena por separado.

No empieza hasta haber escuchado todo

La parte que escucha va recibiendo la frase palabra por palabra y actualizando su resumen sin parar. Cuando entra la última palabra, queda un único bloque de resumen en ese momento. Ese bloque hace las veces de la frase entera.

La parte que genera toma ese bloque como punto de partida y produce la primera palabra. Después recibe la palabra que acaba de producir como su propia entrada y produce la siguiente. Esta reutilización se repite hasta que termina.

También hay una marca que avisa cuándo parar. Se entrena una señal de "fin de frase" y otra de "inicio de frase", tratadas como si fueran palabras más. Cuando la parte que genera produce la señal de fin, ahí se detiene.

Por qué la longitud puede ser distinta

Como escuchar y generar están completamente separados, no hay ninguna razón para que las cantidades coincidan. Quien escucha da tantas vueltas como palabras hay; quien genera da vueltas hasta que sale la señal de fin. Escuchar cuatro palabras y devolver siete no supone ningún problema.

Esta propiedad abrió muchísimo el abanico de usos. Resumir un texto largo en pocas líneas, responder con una respuesta larga a una pregunta corta, o pasar un audio a texto: todo entra en el mismo molde. No importa que lo que entra y lo que sale sean de naturaleza distinta.

Cuando la comanda se queda corta, algo se pierde

El problema está en que la comanda es una sola. Un pedido de tres palabras o uno de treinta tienen que caber en un bloque del mismo tamaño. Cuanto más largo es el pedido, más terreno pierde lo que se escuchó al principio.

Esto se notaba claramente en traducción. Las frases cortas salían bien, pero al alargarse, era frecuente que se perdiera por completo el contenido de una cláusula inicial o que se cambiara por otra cosa. Era una limitación de la propia estructura, así que agrandar el modelo no lo resolvía.

Cómo ha cambiado hoy

La solución fue dejar de pasar solo una comanda y hacer que la parte que genera pudiera volver a mirar el texto original cada vez que lo necesitara. Es como si, al preparar cada plato, se repasara qué parte de lo que dijo el cliente hace falta justo en ese momento. Ese mecanismo es la atención.

Con la atención, el rendimiento dio un salto grande, y poco después llegó el transformer, que quitó del todo la parte recurrente y se quedó solo con la atención. Los traductores y los asistentes conversacionales de hoy cambiaron sus piezas internas, pero heredaron intacta la base de separar quien escucha y quien genera para pasar de una longitud a otra.

3Con más precisión

Secuencia a secuencia une dos redes, un codificador y un decodificador, para convertir una secuencia de entrada de longitud libre en una secuencia de salida de otra longitud. El último estado oculto del codificador se convierte en el vector de contexto y entra como primer estado del decodificador. Al principio, las dos redes solían construirse con redes recurrentes o con LSTM.

La analogía también tiene sus costuras. En la comanda se escriben letras que una persona puede leer, pero el vector de contexto es un grupo de números: aunque se abra, no se puede leer. Además, en la cocina se pueden preparar varios platos a la vez, pero el decodificador necesita ver la palabra que acaba de producir para generar la siguiente, así que siempre sale de una en una, en orden.

El comportamiento cambia un poco entre entrenamiento y uso real. Al entrenar, se adelanta la frase correcta para que el modelo aprenda a acertar la siguiente palabra; al usarlo de verdad, vuelve a meter la palabra que acaba de generar. Por eso, si se equivoca una vez, los errores pueden encadenarse después.

4Pruébalo

5Malentendidos comunes

  • Es fácil pensar que la cantidad de entradas y salidas debe coincidir, pero en realidad que puedan ser distintas es justo el núcleo de esta estructura.

  • Es fácil pensar que la parte que genera sigue viendo el texto original, pero en realidad, en la versión básica, solo recibe un bloque de resumen en lugar del texto.

  • Es fácil pensar que este planteamiento desapareció con el transformer, pero en realidad la idea de separar quien escucha y quien genera se mantuvo, solo cambiaron las piezas.

7Resumen en una línea

En resumenSecuencia a secuencia escucha todo hasta el final, lo pasa como un único resumen y, a partir de ahí, genera de nuevo una palabra a la vez, así que puede manejar entradas y salidas de longitud distinta.

¿Has visto un error o tienes una analogía mejor? Sugerir una corrección · Última actualización2026-09-02