Aprendiendo a crear un LLM desde cero – Reseña del capítulo 4

힘센캥거루
2025년 11월 26일
6
challenge

Hoy es 26 de noviembre, así que si leo un capítulo al día, habré completado el reto.

No sé si será posible con las interrupciones del primero y del segundo.

1. Dummy Transformer

Aprendiendo a crear un LLM desde cero – Reseña del capítulo 4-1

Mientras creaba un modelo GPT, vi que en PyTorch se podía importar un bloque de Transformer dummy.

Al investigar, descubrí que dentro de pytorch.nn ya había varios modelos de Transformer implementados.

A este modelo de Transformer se le llama dummy porque, aunque la estructura del modelo es la misma, todavía no ha sido entrenado.

2. Normalización

Si, entre los valores que entran en un bloque Transformer, una de las dimensiones es demasiado grande, los datos se sesgan en esa dirección.

Por lo tanto, se transforman los valores para que la media sea 0 y la varianza 1.

Y en la Feed Forward Network se amplía la dimensión con una capa Linear y luego se aplica una transformación no lineal.

En este momento se utilizan funciones de activación no lineales como ReLU o GELU.

Aprendiendo a crear un LLM desde cero – Reseña del capítulo 4-2

Se dice que GELU es más lineal que ReLU, por lo que los parámetros se ajustan mejor.

Y en cada bloque se aumenta la dimensión usando una función Linear y luego se vuelve a reducir.

Al aumentar la dimensión, es posible una exploración no lineal más rica.

Por ejemplo, si tenemos una manzana, una naranja y una zanahoria, sería como probar a cocinarlas de varias formas: escaldarlas, asarlas, picarlas, mezclarlas, etc.

Y después, reunir los platos terminados y extraer solo lo esencial para volver a colocarlo todo en la dimensión original.

Aprendiendo a crear un LLM desde cero – Reseña del capítulo 4-3

3. Atajos

El entrenamiento comienza donde se produce la pérdida, y desde ahí se rastrea hacia atrás.

Por ejemplo, supongamos que cae agua desde el segundo piso.

Entonces se iría subiendo al tercer, cuarto y quinto piso, buscando hacia atrás de dónde se está filtrando el agua.

A este proceso se le llama retropropagación (backpropagation).

Aprendiendo a crear un LLM desde cero – Reseña del capítulo 4-4

Pero en un modelo construido como el de arriba, el gradiente se va desvaneciendo cada vez que pasa por una capa lineal.

Que el gradiente se desvanezca significa que, en el proceso de retropropagación, en las capas profundas prácticamente no se produce aprendizaje, por lo que apilar muchas capas deja de tener sentido.

Por ello, en cada capa lineal se suma la entrada y la salida, proporcionando un camino alternativo para evitar el desvanecimiento del gradiente.

Creo que es más fácil de entender desde el punto de vista matemático.

Proceso residual: y = x + F(x)
Proceso backward: dL/dx = dL/dy * (1 + dF/dx)
Gradiente final: dL/dy * (1 + dF/dx)

Como en el proceso backward siempre se garantiza el valor 1 que se suma al gradiente de cada capa, el gradiente de cada capa no se desvanece.

De este modo es posible ayudar a que el proceso de entrenamiento sea más eficaz.

4. Crear un modelo GPT

Ahora se conecta un modelo de atención a este modelo dummy que hemos construido.

Por último, se permite que este modelo de atención se repita varias veces y se pasa por un proceso en el que los tokens de salida se vuelven a decodificar.

Aprendiendo a crear un LLM desde cero – Reseña del capítulo 4-5

5. Reseña

Al principio el contenido parecía ligero, pero cuanto más avanzaba, más abrumador se volvía.

Visto en código resulta difícil, pero al aprenderlo mediante metáforas y símbolos no fue tan complicado.

Ahora los tiempos han cambiado y es más importante la comprensión que memorizar el contenido en sí.

Si solo memorizas, no puedes crear nada nuevo, pero si entiendes, con la ayuda de la inteligencia artificial puedes completar tu propio GPT.

No queda mucho tiempo, pero aun así intentaré esforzarme por comprender lo máximo posible.

댓글을 불러오는 중...