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

힘센캥거루
2025년 12월 19일(수정됨)
2
15

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.

관련 글

Reseña de lectura y experiencia del desafío del capítulo 7 de "밑바닥부터 만들면서 배우는 LLM"
Reseña de lectura y experiencia del desafío del capítulo 7 de "밑바닥부터 만들면서 배우는 LLM"
El contenido del capítulo 7 trata sobre el proceso de ajustar finamente el modelo para que siga instrucciones.Es hacer que responda como se espera ant...
Reseña de lectura del capítulo 6 de "Aprendiendo LLM desde cero"
Reseña de lectura del capítulo 6 de "Aprendiendo LLM desde cero"
El capítulo 6 trata sobre el fine-tuning para clasificación.El ejemplo que aparece es la creación de un clasificador de spam.Como el clasificador de s...
Aprendiendo a crear un LLM desde cero – Reseña del capítulo 4
Aprendiendo a crear un LLM desde cero – Reseña del capítulo 4
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 seg...
Reseña de la lectura del capítulo 3 de LLM aprendiendo desde cero
Reseña de la lectura del capítulo 3 de LLM aprendiendo desde cero
Después de derramar agua sobre mi MacBook, entré en crisis y perdí alrededor de 3 a 4 días. Ahora que lo pienso, debería haber hecho algo, pensando que mi MacBook ya estaba arruinada y que la mandaría a reparar de todas formas. Aunque estoy un poco atrasado, quiero dejar mi reseña del capítulo 3 porque creo que debo continuar hasta el final. 1. Mecanismo de atención Capítulo 3...
Reseña del capítulo 2 de LLM construyendo desde cero
Reseña del capítulo 2 de LLM construyendo desde cero
Ya es la segunda semana participando en el desafío. Hasta ayer no había terminado el capítulo 2, pero aprovechando un retiro de 1 noche y 2 días, logré avanzar hasta la medianoche codificando. 1. Contenido. El contenido del capítulo 2 se centró en la tokenización de palabras, codificación, decodificación y vectores de incrustación. Ya me había familiarizado con crear un codificador one-hot, pero el contenido de los vectores de incrustación era nuevo para mí...
Recomendación de OCR para MacBook
Recomendación de OCR para MacBook
Parece que he probado todos los OCR disponibles para reconocer informes médicos de estudiantes. Probé Tesseract, EasyOCR, PaddleOCR y otros, pero ninguno ofrecía un rendimiento satisfactorio con coreano. Sin embargo, recientemente encontré una biblioteca de Python que utiliza la función de Texto en Vivo de MacBook...

댓글을 불러오는 중...