Cómo un modelo codifica dónde está una palabra: girando, no etiquetando.

SRC·30 Source
Lo que importa no es dónde están dos palabras, sino a qué distancia.

Lo que importa no es dónde están dos palabras, sino a qué distancia.

La solución habitual añade una dirección a cada palabra. Pero la atención siempre compara dos palabras a la vez, y una frase significa lo mismo en la página 1 o en la 50: lo único que cuenta es la distancia entre ellas. Rotary position embedding (RoPE) gira el punto de vista de cada palabra según su lugar, así que cuando dos palabras se encuentran, la comparación solo siente la distancia.
Añade una dirección y la comparación la arrastra consigo.

Añade una dirección y la comparación la arrastra consigo.

(xm+pm)(xn+pn)=xmxn+xmpn+pmxn+pmpn(x_m + p_m)^{\top}(x_n + p_n) = x_m^{\top}x_n + x_m^{\top}p_n + p_m^{\top}x_n + p_m^{\top}p_n
Como intercambiar direcciones postales para saber qué tan cerca viven: sueltas dos absolutos cuando solo querías la distancia. Añadir una posición pega el dónde al qué. Multiplica dos palabras así y la puntuación se parte en cuatro, y las piezas de posición dependen de los asientos absolutos, no de la distancia. El modelo tiene que volver a extraer la distancia.
La solución: no añadir un lugar. Girar hacia él.

La solución: no añadir un lugar. Girar hacia él.

(x1x2)=(cosmθsinmθsinmθcosmθ)(x1x2)\begin{pmatrix} x'_1 \\ x'_2 \end{pmatrix} = \begin{pmatrix} \cos m\theta & -\sin m\theta \\ \sin m\theta & \cos m\theta \end{pmatrix} \begin{pmatrix} x_1 \\ x_2 \end{pmatrix}
Como el haz de un faro: la misma luz, orientada a un rumbo fijado por el momento. RoPE toma los números de cada palabra de dos en dos y gira cada par un ángulo fijado por su posición (por una tasa fija). Nada se atornilla: simplemente se gira el propio vector de la palabra. La posición deja de ser una etiqueta y se vuelve una dirección.
Dos giros se encuentran y solo queda la diferencia.

Dos giros se encuentran y solo queda la diferencia.

R(mθ)R(nθ)=R((nm)θ)    R(mθ)q,  R(nθ)k=qR((nm)θ)kR(m\theta)^{\top} R(n\theta) = R\big((n-m)\theta\big) \;\Longrightarrow\; \langle R(m\theta)\,q,\; R(n\theta)\,k\rangle = q^{\top} R\big((n-m)\theta\big)\,k
Como dos bailarines enlazados: gíralos a cualquier punto de la pista y el ángulo entre sus cuerpos nunca cambia. Gira la query según su lugar, gira la key según el suyo, y al encontrarse, los dos giros absolutos se cancelan. Solo sobrevive n − m, la distancia. La puntuación lee distancia pura, justo lo que queríamos.
Una sola velocidad confunde. Gira a muchas a la vez.

Una sola velocidad confunde. Gira a muchas a la vez.

θi=b2(i1)/d,i=1,,d/2,b=10000\theta_i = b^{-2(i-1)/d}, \quad i = 1, \dots, d/2, \quad b = 10000
Una única tasa de giro da la vuelta: lo bastante lejos, dos distancias se ven iguales. Como un repique de campanas graduadas: las pequeñas oscilan rápido, las grandes despacio, y solo todas juntas tocan un instante inconfundible. RoPE da a cada par su propia tasa: los pares rápidos fijan palabras cercanas, los lentos llegan al otro lado de la página.
No añade nada y nunca se desvanece.

No añade nada y nunca se desvanece.

q~m=RΘ,mqm,k~n=RΘ,nkn(0 new parameters)\tilde{q}_m = R_{\Theta,m}\,q_m, \qquad \tilde{k}_n = R_{\Theta,n}\,k_n \qquad (\text{0 new parameters})
Como una puerta giratoria: el giro es todo el mecanismo: ninguna máquina extra, y quien pasa vuelve a tomar el mismo giro. RoPE toca solo las queries y las keys, con un giro fijo y ni un solo peso nuevo que entrenar. Apila todos esos pequeños giros en 2-D en un único giro bloque-diagonal, reaplicado dentro de cada capa, de modo que en lo hondo del modelo el sentido de la distancia nunca se diluye.
La posición se vuelve un giro, y el giro sigue y sigue.

La posición se vuelve un giro, y el giro sigue y sigue.

m=mLtrainLtargetm' = m \cdot \dfrac{L_{\text{train}}}{L_{\text{target}}}
Júntalo todo: la posición ya no es una etiqueta que atornillas, sino un giro que aplicas, y el modelo lee solo la distancia entre palabras. Como la rosca de un tornillo largo: un paso fijo que sigue encajando por más que se extienda la barra. Pasa de la longitud con que entrenó, encoge con suavidad cada giro para que quepa, y la misma regla sigue agarrando.
Conoce cada distancia. No conoce ningún lugar.

Conoce cada distancia. No conoce ningún lugar.

Una palabra nunca siente su propio asiento, solo el ángulo entre ella y otra. Puede decirte la distancia a cualquier palabra, pero a ninguna señalarla y decir ahí. 🌱 Si una mente guarda solo distancias y nunca un lugar fijo, ¿existe para ella el dónde siquiera, o solo a qué distancia?
toca →desliza ↑ para másdesliza ↓ para salir