- σ-GPT separa el orden de entrada de los datos y el orden de generación autorregresiva, permitiendo que el Transformer aprenda y genere secuencias incluso en un orden arbitrariamente mezclado
- Los modelos autorregresivos existentes suelen seguir un arreglo natural, como el orden de izquierda a derecha en texto o el orden de raster scan en imágenes, pero ambos órdenes no necesariamente tienen que ser iguales
- Para cada muestra se elige sobre la marcha un orden aleatorio de mezcla σ, y se añaden dos codificaciones posicionales correspondientes al orden de entrada y al de salida para mantener consistente el proceso autorregresivo
- En cualquier momento durante la generación se puede estimar la distribución condicional de los tokens restantes, lo que permite extenderlo a muestreo en posiciones arbitrarias, generación condicional arbitraria, infilling y burst sampling
- Si se usa junto con aprendizaje por currículum, puede alcanzar un rendimiento similar al de los modelos autorregresivos de izquierda a derecha, y con rejection sampling basado en tokens puede generar varios tokens por ráfaga
Separación entre el orden de entrada y el orden de generación
- Transformer ha mostrado un fuerte rendimiento autorregresivo en múltiples modalidades
- El enfoque autorregresivo tradicional sigue el orden natural de los datos
- El texto normalmente se procesa de izquierda a derecha
- En visión, se modela con Transformer la secuencia obtenida al desplegar una imagen en orden de raster scan
- σ-GPT distingue entre el orden de entrada de los datos y el orden autorregresivo
- En la mayoría de las aplicaciones ambos órdenes están alineados, pero no es necesario que sean idénticos
- Explora un método para entrenar y generar secuencias en un orden arbitrariamente mezclado
- Cambiar el orden de la secuencia hace que el entrenamiento sea más difícil, pero le da al modelo nuevas propiedades, como la generación condicional en posiciones arbitrarias
Arquitectura y funcionamiento de σ-GPT
- σ-GPT puede seleccionar sobre la marcha un orden aleatorio de mezcla σ para cada muestra
- La σ elegida crea el orden de entrada
0, σ(1), σ(2), ...y el orden de salidaσ(1), σ(2), σ(3), ...- A la entrada primero se le añade padding
0para mantener consistente la cantidad de tokens - Los tokens se mezclan según ese orden
- A la entrada primero se le añade padding
- A la entrada del modelo se concatenan dos codificaciones posicionales
- Una corresponde al orden de entrada
- La otra corresponde al orden de salida
- La salida al final se vuelve a colocar en el orden real
- Código disponible: https://github.com/idiap/sigma-gpt
Comparación con GPT estándar y modelos de difusión
- σ-GPT se compara con GPT, un causal transformer encoder estándar, y con modelos de difusión
- Las funciones que soporta son las siguientes
- Muestreo de tokens en posiciones arbitrarias de la secuencia
- Modelado de la densidad restante dado una secuencia parcialmente muestreada
- Generación condicional arbitraria
- Infilling
- Burst sampling, que genera varios tokens a la vez
- Entrenamiento de log-verosimilitud basado en entropía cruzada
- En la comparación, GPT estándar puede realizar generación condicional arbitraria y entrenamiento de log-verosimilitud, pero no soporta muestreo en posiciones arbitrarias, estimación de densidad condicional, infilling ni burst sampling
- En la comparación, los modelos de difusión sí soportan burst sampling, pero no entrenamiento de log-verosimilitud
Distribución condicional durante la generación y rejection sampling
- Al salir del orden autorregresivo estándar, el modelo puede predecir tokens siguiendo un orden específico
- Con este método, en cualquier momento de la generación puede predecirse la distribución condicional de los tokens restantes
- La estimación de la distribución condicional se usa para cuantificar los posibles resultados de generación en un momento específico
- Al aplicarlo a rejection sampling, se puede generar la secuencia por ráfagas con un número dinámico de pasos
Tareas de evaluación y contribuciones
- σ-GPT introduce la autorregresión con mezcla aleatoria y evalúa si, al combinarla con un método de currículum, puede mejorar el rendimiento del modelo base
- La evaluación cubre tres tareas principales
- Generación de texto abierta
- Resolución de trayectorias
- Predicción de velocidad vertical de aeronaves
- Las contribuciones se resumen en cuatro puntos
- Introducción de la arquitectura σ-GPT con dos codificaciones posicionales que corresponden respectivamente al orden de entrada y al orden de salida
- Muestra que, usando aprendizaje por currículum, puede alcanzar un rendimiento similar al de los modelos autorregresivos de izquierda a derecha
- Muestra que mediante la generación de muestras en orden arbitrario es posible la generación condicional sobre cualquier parte de la secuencia
- Introducción de un método de rejection sampling basado en tokens para generar muestras por ráfagas
1 comentarios
Opiniones en Hacker News
Se ve bien. Durante el entrenamiento, mezclan aleatoriamente los tokens de entrada y a cada token le agregan dos tipos de codificación posicional: una para la posición de ese token y otra para la posición del token que se va a predecir.
Fuera de eso, es un GPT autorregresivo estándar, pero las consecuencias de este cambio aparentemente simple son grandes. Si a un modelo entrenado se le da como prompt una parte de la secuencia, puede decodificar en paralelo, de una sola vez, los tokens faltantes sin importar el orden, y también puede calcular en paralelo la densidad de probabilidad condicional de todos los tokens faltantes.
Además, los autores propusieron un método de generación por rellenado en paralelo basado en muestreo por rechazo, y parece que en la práctica funciona bien.
I . . . . . . . . happily., me parece que la segunda palabra a predecir depende de la primera.Algo viejo[1] volvió a ser nuevo, pero no citan el trabajo previo. Ni siquiera es una investigación desconocida: se publicó en ICML y tiene unas 250 citas.
[1]: https://arxiv.org/abs/1902.03249
Es un concepto realmente genial. Me pregunto si empieza a parecerse a la dinámica que se ve en los modelos de generación de imágenes: en una región de la imagen aparecen estructura y detalles, y las zonas alrededor se van ajustando gradualmente hasta resolverse.
Este comportamiento parece especialmente útil para razonamiento/lógica/planificación largos, porque las grandes ideas pueden aparecer primero y luego los detalles y el texto entre ellas se rellenan de forma natural.
En Twitter hay un video en el que genera texto. Se ve un poco como difusión de imágenes.
https://x.com/ArnaudPannatier/status/1799055129829839166
Hoy estuve pensando todo el día en este paper, y la funcionalidad me encanta. Cosas que son relativamente difíciles con un LLM secuencial aquí se vuelven fáciles.
Si quieres JSON, basta con fijar los tokens de llaves al inicio y al final. Si quieres una explicación con una longitud específica en tokens, puedes poner una respuesta corta al final y rellenar el medio.
Si quieres una respuesta con mayor densidad de información, puedes agregar al texto generado una sección de evaluación de densidad y un espacio para que el LLM puntúe la densidad de información, y luego generar buscando una puntuación alta. Parece que hay mucho para experimentar; según el paper, es una lástima que hagan falta más o menos 3 veces más tokens, pero estaría bueno probarlo también con un modelo de 8B parámetros usando una cantidad razonable de tokens.
Pero también hay un método mejor. Si restringes la salida del LLM a una gramática específica, como JSON, puedes hacer que responda solo con JSON sintácticamente válido.
Me pregunto si esto sería especialmente útil para generar código de computadora. En ciertas etapas, lo que se debe emitir puede depender sustancialmente de lo que se escribirá en etapas posteriores.
Es una investigación interesante. Un enfoque de permutación similar ya aparece en el paper de Taylorformer (https://arxiv.org/pdf/2305.19141v1).
Los autores usan un decodificador Transformer para procesos continuos como series temporales y, durante el entrenamiento, mezclan aleatoriamente cada secuencia. Cada elemento de la secuencia tiene una codificación posicional, y se usa la log-verosimilitud sobre la secuencia mezclada.
Allí, la permutación ayuda con la predicción de interpolación, extrapolación y datos muestreados irregularmente. También parece ayudar con la “consistencia”, donde el error cuadrático medio se vuelve en general similar sin importar el orden de generación.
Me pregunto qué aporta este paper a la comprensión o aplicación de estas ideas. La idea de mezclar el orden de la secuencia también aparece en el paper de Transformer Neural Process: https://arxiv.org/pdf/2207.04179
Me da la impresión de que esto aplica a Transformers de lenguaje algo aprendido de los vision Transformers.
Según lo entiendo, los modelos de visión dividen la imagen en teselas y agregan codificación posicional a cada tesela para que el modelo entienda la posición relativa de esas teselas.
Para ser sincero, solo leí el resumen y muchas partes se me hacen difíciles, pero este paper parece proponer una idea similar en 1D en lugar de 2D.
El entrenamiento es más difícil, pero parece permitir generar varios tokens a la vez. Es decir, obtener una respuesta de N tokens en N/x pasos en lugar de N pasos.
Me pregunto si hay código. No termino de entender la doble posición y el barajado. También es interesante que concatenen los valores de posición en vez de sumarlos.
Yann LeCun diría que la autorregresión en sí es el problema, y que con este tipo de aprendizaje automático no se llegará ni cerca de la AGI[0].
Al menos mientras se permanezca dentro del paradigma autorregresivo, no se puede resolver el problema de las alucinaciones.
[0] https://twitter.com/ylecun/status/1640122342570336267
Los autores del paper original no afirman que este trabajo ayude a acercarse a la AGI. Simplemente hicieron que los LLM autorregresivos puedan hacer algo nuevo que antes no podían.
Tampoco creo que la mayoría de las tareas requieran AGI. Más aún si la intención no es crear sufrimiento en seres conscientes.
Intuitivamente, algunos tokens son más difíciles que otros. Puede haber tokens clave dentro de la salida, y después de ellos los tokens restantes pueden volverse mucho más fáciles. Además, incluso en un enfoque autorregresivo se puede recuperar de un token incorrecto emitiendo tokens como
actually no....Según cómo se muestreen los tokens, parece posible mirar la generación propuesta como un todo y corregirla. No sé si el método de muestreo que propone el paper actual hace eso ya mismo, pero parece posible con la información obtenida de las probabilidades.