Volver al archivo
#ai#llm#glossary#aigen

Codificación posicional

Lees las frases «BMW adelantó a Volvo» y «Volvo adelantó a BMW». Contienen exactamente las mismas palabras, pero cambiar el orden invierte los papeles de los coches. Si el mecanismo del modelo solo ve las descripciones de las palabras y las compara como un conjunto sin orden, le falta una señal que indique sus lugares en la frase.

Positional Encoding aporta información sobre la posición de un fragmento de texto. En el Transformer original se sumaba a la lista de números que describe un token una segunda lista, calculada a partir del número de la posición. Un token es una unidad de texto; su descripción numérica se llama embedding.

Por tanto, la palabra «Volvo» en la primera y en la tercera posición recibe una señal de entrada distinta. El modelo puede aprender a usar esa diferencia al interpretar la frase. En la solución original, los patrones de posición se parecían a ondas de distintas frecuencias; se calculaban con las funciones seno y coseno.

La señal de posición no bloquea el acceso a fragmentos futuros. Esa función corresponde a Causal Masking. No todos los modelos añaden la posición del mismo modo: Rotary Position Embedding la introduce rotando partes de las descripciones numéricas.

Fuente del mecanismo: explicación de Dive into Deep Learning, §11.6.3.

Mecanismo y detalles

En el Transformer original se añadía a la representación de cada token un vector construido con senos y cosenos de distintas frecuencias. El vector tenía la misma dimensión que el embedding, así que la suma se hacía coordenada por coordenada. Attention Is All You Need, §3.5.

Qué recibe el modelo

El esquema de la suma puede escribirse como zp=ep+PE(p)z_p=e_p+PE(p): epe_p es el embedding del token en la posición pp, y PE(p)PE(p) depende de la posición.

En una ilustración bidimensional de la fórmula sinusoidal, PE(0)=[0;1]PE(0)=[0;1] y PE(1)≈[0,841;0,540]PE(1)\approx[0{,}841;0{,}540]. Por tanto, el mismo token con el mismo embedding recibirá un vector de entrada diferente en esas dos posiciones. Estos números muestran la codificación del lugar, no el significado del token ni la fuerza de su relación con un vecino.

La codificación posicional no sustituye a la máscara causal. La información sobre la posición no prohíbe acceder a una posición futura; lo hace la máscara. La variante sinusoidal es una forma de representar posiciones, no una solución obligatoria en todos los modelos.

Véase también: el embedding posicional rotatorio introduce la posición mediante una rotación de las consultas y las claves, en lugar de añadir un vector posicional al embedding.