1jwyfqqytbijimloyoejmaa.jpeg
Figura 1 de “Atención es todo lo que necesitas«

A partir de un nivel alto, los Transformers requieren dos datos de entrada: las incrustaciones de tokens y las codificaciones posicionales. Las incrustaciones de tokens son cosas como tiktoken donde utilizarán un tamaño de vocabulario fijo para generar una clave única para cada token. A través del entrenamiento, el modelo aprende la consulta y el valor de cada token para poder generar el siguiente token exitosamente con la información.

Ecuación 1 de «RoFormer: Transformador mejorado con incrustación de posición giratoria»

Además de las incrustaciones, también necesitamos información posicional para indicarle al LLM en qué parte de una oración se encuentra el token. Las ecuaciones anteriores muestran la vista más abstracta para transmitir la información posicional. Tenemos 3 funciones, 1 para cada elemento del token y 2 vectores de incrustación de palabras (Xmetro y Xnortedónde metro y norte significan las diferentes dimensiones que tiene cada vector).

Un enfoque es simplemente crear un nuevo vector para cada token que veas, de modo que la posición sea perfectamente única. Naturalmente, la desventaja aquí es que el vector único dificulta que el modelo vea similitudes en los datos de entrenamiento, lo que degrada el rendimiento.

Un enfoque secundario sería crear un vector que tenga un factor de similitud con otros vectores para cada token. De esta manera todavía capturamos información sobre qué tan similar es una situación a otra situación distinta. Sin embargo, como podemos crear colisiones de estos vectores, puede surgir confusión a partir de esta metodología.

¿Cómo encontramos la mejor combinación de estos enfoques?

La industria se ha centrado en gran medida en RoPE como una forma de obtener lo mejor de ambos mundos. Sin profundizar demasiado en las matemáticas, RoPE utiliza funciones sinusoidales para asignar valores posicionales a los tokens. Como las funciones sinusoidales son repetitivas por diseño, hay algunos valores posicionales que serán muy similares a otros. En consecuencia, los elementos que son similares tendrán algún valor cuantitativo que indique cuán similares son.

Ecuación 14 y 15 de «RoFormer: Transformador mejorado con incrustación de posición giratoria»

Como puede ver en la ecuación anterior, tenemos una matriz dispersa llena de diferentes funciones que giran en torno al valor θ que se pasa como una forma de mantener todas las codificaciones posicionales relacionadas.

La forma exacta en que se relacionan estos θ se muestra a continuación:

Definición de Theta en «RoFormer: Transformador mejorado con incrustación de posición giratoria»

La parte más crítica de esta ecuación para el tamaño del contexto es el valor 10.000. A medida que intentamos crear contextos más grandes con rangos de números no infinitos, el valor de 10,000 se ha convertido en un factor limitante; después de todo, hay una cantidad limitada de vectores que puedes crear con ese número como base.

Figura 1 de «RoFormer: Transformador mejorado con incrustación de posición giratoria»

Si bien se puede entrenar un nuevo modelo desde cero utilizando un valor base mayor para sus codificaciones posicionales, existen algunas razones que impiden que la gente en general haga esto. En primer lugar, existe un coste enorme asociado a la formación desde cero. Como actualmente sólo unas pocas organizaciones en el mundo tienen los recursos para hacerlo, la carga que supone hacerlo es grande. En segundo lugar, es increíblemente difícil encontrar un gran volumen de texto extenso de alta calidad. Dado que la capacitación requiere billones de tokens, encontrar datos extensos de calidad a esa escala es un gran desafío.

En consecuencia, los investigadores han propuesto diferentes metodologías para expandir RoPE a thetas más grandes.

El primer método es la interpolación posicional lineal (PI), donde puede ampliar el número de posiciones posibles reduciendo theta en algún valor λ. La siguiente ecuación usa Beta para representar la ecuación θ^(2/d) que usamos para conectar todos los thetas de antes.

Ecuación 2 en el papel

Si bien esto funciona, los autores del artículo señalan que existe un efecto de aglomeración en el que parte de la información termina perdiéndose después de la reducción.

El segundo método es YaRN (otro método de extensión de RoPE) donde dividimos las dimensiones de RoPE en 3 grupos y asignamos un factor lineal diferente a cada uno de ellos. La idea básica es que los tokens que aparecen con frecuencia no deben modificarse (su λ := 1) y los que aparecen con menos frecuencia sí se modifican. En el siguiente gráfico, podemos ver que esto funciona bien para expandir hasta 128k de longitud de contexto. La cuestión en juego aquí es determinar las agrupaciones. Los grupos están determinados por personas y, por lo tanto, se pueden tomar decisiones subóptimas que reduzcan el rendimiento.

Figura 1 de “YaRN: Extensión eficiente de la ventana contextual de grandes
Modelos de lenguaje”

Por lo tanto, si bien tanto YaRN como la Proyección Lineal (PI) funcionan, tienen limitaciones que los frenan. Long RoPE toma lo mejor de cada idea y encuentra una manera inteligente de combinarlas.

Los investigadores de Long RoPE se dieron cuenta de que para mejorar los métodos anteriores, introducirían dos ideas clave: (1) la distribución del bien λ es irregular, por lo que buscar λ es mejor que asumir una respuesta correcta y (2) hay un subconjunto de tokens cuyas posiciones simplemente no deberían cambiarse.

Ambos hallazgos se encuentran en la siguiente fórmula. Para encontrar el λ óptimo, crearon una función de pérdida que podían minimizar. La siguiente fórmula es una versión reformateada de RoPE con resultado de 𝕀 y ( n/ βi ) representando la escala realizada a nuestro vector posicional. Cuando encuentran la pérdida más pequeña, eligen el λ correspondiente.

Ecuación 3 de el papel

La función de paso 𝕀 es la forma en que actualizamos el subconjunto de tokens que no deben modificarse. Al elegir un valor de 1, estamos indicando que las codificaciones posicionales deben permanecer iguales. Para mantener la búsqueda limitada, sólo consideraron valores n-hat de {0, 1, 2, 4, 8, 12, 16, 20, 24, 28, 32, 64, 128, 256}. Cuanto mayor sea el valor de n-hat, más tokens mantendrán sus codificaciones posicionales originales.

Ahora que hemos cubierto la teoría, ¡veamos los resultados!

Figura 3 de el papel

Long RoPE funciona tanto sin ajuste como con. El gráfico anterior muestra el rendimiento de LongRoPE cuando se aplica a LLaMA2–7B. El contexto original para ese modelo era 4k. Al encontrar el λ óptimo, pudieron ampliar la ventana de contexto a 32.000 tokens sin un cambio notable en la perplejidad. Lo increíble de esto es que el cálculo necesario para realizar un cambio como este es casi insignificante en comparación con los costos de ajuste. Una expansión 8x sin un gran gasto informático es increíble.

Para obtener una gran expansión se requiere una combinación de ajuste fino y búsqueda del λ óptimo. Los investigadores del artículo obtuvieron una expansión de 512x siguiendo esta metodología. Primero llevaron el modelo a un tamaño de 128k y 256k. Realizaron ajustes para 400 pasos en el 128k y luego cambiaron para usar los factores de 256k para 600 pasos adicionales. Como esto funcionó mejor que simplemente ajustar directamente 256k, parece que aprender una distribución más general en lugar de solo una de las escaladas proporciona un mejor rendimiento. Luego optimizaron nuevamente para obtener el mejor λ y llegaron a una ventana de contexto de 2048k, ¡un aumento de 512 con respecto a la ventana de contexto original de 4k!

Una de las dificultades de un contexto más amplio es la pérdida de rendimiento en tareas con contextos pequeños. Este comportamiento se ha visto antes y la teoría es que los datos al principio se condensan en un rango más pequeño, lo que resulta en cierta pérdida de atención.

Resolvieron esto en el modelo de ventana de contexto de 2048k encontrando el λ ideal para longitudes más cortas (en el artículo era 4k y 8k). Durante la inferencia, si se determina que el contexto es pequeño, el LLM cambiará dinámicamente para utilizar el λ más pequeño para los datos de codificación posicional.

Los LLM son excelentes para razonar y continúan sorprendiéndonos con sus aplicaciones en el mundo real. Con una ventana de contexto más grande, especialmente una que se puede obtener a un costo limitado con un rendimiento aún alto, solo veremos crecer sus aplicaciones.

Una pregunta interesante es si los cálculos de codificación posicional dinámica son el camino del futuro. Si puede ajustar las codificaciones de múltiples posiciones y obtener un rendimiento de calidad para 2 λ, entonces es posible que tengamos 1 modelo que pueda cambiar sin problemas entre múltiples λ en el momento de la inferencia.

Una de las cosas que encuentro más interesantes sobre el espacio LLM es el potencial de examinar datos. Si bien Internet ha hecho un trabajo increíble al democratizar el acceso a la información, desafortunadamente también ha inundado nuestras vidas con ruido. Hay muchas cosas que nos muestran en línea que casi no tienen consecuencias para nosotros. Con una herramienta que pueda extraer información importante de lo mundano e incluso perjudicial, podemos utilizar Internet en todo su potencial.

Con ventanas de contexto más grandes, la capacidad del LLM para resumir y condensar información se puede utilizar con un efecto aún mayor. Incluso puede llegar un momento en el que se produzcan grandes avances al proporcionar a los LLM dos conjuntos de información aparentemente dispares y hacer que descubran algo nuevo que pueda razonarse dadas las premisas de cada conjunto.

Es un momento emocionante para construir.