Reseña de lectura del capítulo 5 de «Aprender LLM construyéndolo desde cero»

힘센캥거루
2025년 12월 14일(수정됨)
13
challenge

Hoy es 14 de diciembre.

En realidad, el período del desafío ya terminó hace 2 semanas, pero aun así no podía renunciar a escribir la reseña.

Porque estos TIL que voy dejando se convierten más tarde en mi propia sangre y carne.

Voy a intentar centrarme más en el significado que en el propio código.

Reseña de lectura del capítulo 5 de «Aprender LLM construyéndolo desde cero»-1

1. Cálculo de la pérdida del modelo

Se trata de cómo calcular la pérdida después de haber construido un modelo GPT.

GPT, basándose en los tokens de entrada, calcula la probabilidad del siguiente token a generar.

Entre las probabilidades obtenidas de este modo, se dejan solo unos pocos tokens con la probabilidad más alta, y a través de logaritmos, positivización, etc., se calcula la pérdida de entropía cruzada.

Reseña de lectura del capítulo 5 de «Aprender LLM construyéndolo desde cero»-2

La pérdida de entropía cruzada es un valor que mide en negativo con cuánta seguridad se acertó la respuesta, de modo que, cuanto más se acerque la probabilidad logarítmica media a 0, más disminuye la pérdida.

Lo que me generaba curiosidad aquí era: hemos pasado por logits, probabilidades, probabilidad del token objetivo, probabilidad logarítmica, probabilidad logarítmica media, probabilidad logarítmica media negativa… ¿pero por qué aumenta la precisión del modelo?

¿Cómo puede esto aumentar la probabilidad de la respuesta correcta?

Reseña de lectura del capítulo 5 de «Aprender LLM construyéndolo desde cero»-3

Al final resultó que en realidad no sabía bien qué era la función logit.

Dicho de forma sencilla, el modelo genera como salida un vector de números reales llamado logits, y mediante softmax enfatiza las diferencias relativas entre estos valores para convertirlos en una distribución de probabilidad.

En este proceso, los valores grandes obtienen probabilidades mayores y los valores pequeños obtienen probabilidades casi cercanas a 0.

Y como las probabilidades están entre 0 y 1, y log 1 = 0, cuanto más se acerque a 0 la probabilidad logarítmica, más se tiende a elegir el token correcto.

Por lo tanto, la pérdida (loss) es una señal que hace que se actualicen los parámetros del modelo para que la probabilidad logarítmica del token correcto se acerque a 0.

2. Entrenamiento de LLM y estrategias de decodificación

Reseña de lectura del capítulo 5 de «Aprender LLM construyéndolo desde cero»-4

Ahora, repitiendo todo el proceso anterior de evaluar la pérdida y actualizar los pesos, se puede entrenar un LLM.

En este punto, me parecieron interesantes dos estrategias para inferir tokens cercanos a la respuesta correcta.

Si, cuando el modelo elige tokens, solo escoge los de probabilidad más alta mediante decodificación codiciosa (greedy decoding), la diversidad de las respuestas desaparece.

Por ello, se divide cada logit por un valor numérico (temperatura) para dar diversidad a las respuestas.

A esto se le llama escalado de temperatura.

Otra estrategia es el muestreo top-k, que consiste en seleccionar los k tokens con mayor probabilidad y hacer que el modelo genere la respuesta solo dentro de ese conjunto.

3. Reseña

Al mirar el código, como tenía que aprender conceptos matemáticos junto con PyTorch, mis ojos se me iban de un lado a otro, pero una vez que lo entiendes no es tan difícil.

Me costó un poco porque la fórmula de la pérdida que había aprendido antes y la forma de calcular la pérdida en los LLM eran algo diferentes.

Aun así, he llegado a entenderlo con bastante profundidad, tanto que creo que podría enseñárselo a los niños.

Creo que con los niños también sería mejor centrarse menos en la fórmula en sí y más en ayudarles a comprenderla de verdad.

댓글을 불러오는 중...