Dónde viven de verdad los hechos de un modelo.

SRC·35 Source
La atención se lleva el crédito. Esta capa guarda los recuerdos.

La atención se lleva el crédito. Esta capa guarda los recuerdos.

Cada bloque transformer tiene dos mitades. La atención decide qué mirar — y se lleva todo el crédito. La otra mitad, la capa feed-forward, va justo después y, en silencio, guarda casi todo lo que el modelo de verdad sabe. Cuando recuerda que un limón es ácido o que un río cruza una ciudad, ese dato seguramente vive aquí — no en el mirar, sino en el recordar.
La mitad famosa es la más pequeña.

La mitad famosa es la más pequeña.

attn: 4d2vsFFN: 2ddff=8d2    (dff=4d)    8d212d2=23\text{attn: } 4d^2 \quad\text{vs}\quad \text{FFN: } 2\,d\,d_{ff} = 8d^2 \;\;(d_{ff}=4d)\;\Rightarrow\; \frac{8d^2}{12d^2}=\frac{2}{3}
Como un iceberg: la atención es la punta brillante sobre el agua, pero la capa feed-forward es la masa de abajo. Cuenta las grandes matrices de pesos de un bloque y casi dos tercios están en esta única capa. La parte que todos estudian es la más pequeña. Y a diferencia de la atención, trabaja sobre cada palabra a solas — sin mezcla, sin vecinos, solo un token que la atraviesa.
Primero prueba cada palabra contra miles de patrones.

Primero prueba cada palabra contra miles de patrones.

h=max(0,  xW1+b1)Rdff,dff=4dh = \max(0,\; xW_1 + b_1)\in\mathbb{R}^{d_{ff}}, \qquad d_{ff} = 4d
Como una bandeja de agujas de brújula: pasa un imán por encima y solo giran las que están alineadas con él. La capa feed-forward hace esto con cada palabra — la expande a un espacio unas cuatro veces mayor, donde esperan miles de patrones aprendidos. Cada patrón mide qué tan bien encaja la palabra; un umbral simple deja encendidos los aciertos fuertes y pone el resto a cero.
Cada patrón está conectado a una respuesta guardada.

Cada patrón está conectado a una respuesta guardada.

FFN(x)=i=1dfff ⁣(kix)vi\text{FFN}(x) = \sum_{i=1}^{d_{ff}} f\!\left(k_i^{\top} x\right)\, v_i
Aquí está el secreto: cada unidad encendida es una key ligada a un value. La key es el patrón que busca; el value es la porción de significado que devuelve. Como un juego de sellos entintados: los que se presionan dejan su marca, y la página termina llevándolas todas a la vez. La salida de una palabra es, sencillamente, cada value activado, sumado.
Así que esta es la memoria del modelo — y se puede editar.

Así que esta es la memoria del modelo — y se puede editar.

x    x+FFN(x)x \;\leftarrow\; x + \text{FFN}(x)
Si un hecho es una key conectada a un value, entonces tiene una dirección. Y la capa nunca sobrescribe la palabra — suma sus values recuperados al flujo en curso. Como perforar un rollo de pianola: cada agujero dispara una nota guardada, así que volver a perforar un solo agujero cambia solo esa — el resto de la canción sigue sonando. Encuentra los values correctos y a menudo se puede localizar y cambiar un único hecho, dejando lo demás intacto.
Los modelos modernos añaden una compuerta más astuta.

Los modelos modernos añaden una compuerta más astuta.

Swish(z)=zσ(z),σ(z)=11+ezSwiGLU(x)=(Swish(xW1)xW3)W2\begin{aligned} \text{Swish}(z) &= z\,\sigma(z), \quad \sigma(z)=\tfrac{1}{1+e^{-z}} \\ \text{SwiGLU}(x) &= \big(\text{Swish}(xW_1)\otimes xW_3\big)\,W_2 \end{aligned}
Las capas más nuevas dividen el trabajo en dos. Una rama propone el contenido; una segunda rama se vuelve una compuerta que decide, canal por canal, cuánto pasa — y luego se multiplican las dos. Como una plantilla sobre pintura en aerosol: la pintura es el contenido, la plantilla decide dónde cae. Esta compuerta, llamada SwiGLU, añade una tercera matriz, así que los modelos recortan el ancho oculto a dos tercios y no pagan nada extra.
Dos movimientos en cada bloque: reunir y luego recordar.

Dos movimientos en cada bloque: reunir y luego recordar.

xx+Attn(x)(gather)xx+FFN(x)(recall)\begin{aligned} x &\leftarrow x + \text{Attn}(x) && \text{(gather)} \\ x &\leftarrow x + \text{FFN}(x) && \text{(recall)} \end{aligned}
Ahora todo el bloque encaja. La atención reúne el contexto — pregunta ¿qué de esto es relevante? Luego la capa feed-forward responde desde la memoria — esto es lo que sé al respecto. Como el relevo de un testigo: un corredor lleva el contexto, el siguiente lleva el conocimiento a la meta. Apila ese par decenas de veces — con las normas estabilizadoras intercaladas — y tienes el motor: mirar, recordar, mirar, recordar.
🌱 ¿Recordar un hecho es distinto de buscarlo?

🌱 ¿Recordar un hecho es distinto de buscarlo?

Encontramos dónde se asienta el conocimiento: keys conectadas a values, patrones conectados a respuestas — una biblioteca que contesta en cuanto la roza la pregunta correcta. Pero una biblioteca no entiende los libros que guarda. Si todo lo que el modelo sabe es un value que espera su key, ¿recordar un hecho es una forma de pensamiento — o solo una búsqueda muy rápida? Y en algún punto de todo ese cableado, ¿dónde el saber se vuelve comprensión?
toca →desliza ↑ para másdesliza ↓ para salir