Sobre MíQué hagoProyectosLabContacto
CursoLección 5/518 min

Modelos en el mundo real

Un modelo que funciona en una demo no está terminado: falta que quepa donde tiene que correr, que sepa cuándo dudar, y que su evaluación sea honesta de verdad. Última lección, y la más práctica.

Las cuatro lecciones anteriores construyeron un modelo que funciona: sabe qué son features y labels, sabe ajustarse con gradientes, sabe convertir texto en números y sabe prestar atención a la secuencia correcta. Esta lección trata de lo que pasa después, cuando ese modelo tiene que dejar de vivir en un cuaderno de entrenamiento y empezar a responder de verdad — en un teléfono con poca memoria, con datos que nunca vio, o con una pregunta a la que ningún dato de entrenamiento se parece.

El primer problema es el tamaño. Un modelo entrenado guarda cada parámetro como un número de coma flotante de 32 bits — cuatro bytes. Redondeado a un entero de un solo byte con un factor de escala compartido, ese mismo parámetro pesa la cuarta parte, y para hacer predicciones la pérdida de precisión suele ser mínima. En la demo de cuantización se mide en vivo, sobre 300 imágenes reales, cuánto acierto pierde el clasificador de dígitos de este lab al bajar de fp32 a int8, luego a int4 y a int2: de fp32 a int8 casi no se nota nada; en int2 el modelo se derrumba. Esa idea — sacrificar precisión que no se necesita — es la que permite correr modelos enormes en un teléfono.

El segundo problema es la redundancia: no todos los parámetros de una red entrenada importan igual. La poda por magnitud ordena los pesos por su tamaño absoluto y apaga los más pequeños, asumiendo que un peso casi nulo apenas participa en la predicción. En la demo de poda se ve la matriz de pesos apagarse píxel a píxel mientras la precisión, medida en vivo, aguanta sorprendentemente bien — hasta el 80% de los pesos apagados en este modelo — antes de despeñarse de golpe. Las redes entrenadas tienen muchísima más capacidad de la que realmente usan.

El tercer problema es más sutil: un modelo que solo da un número está contando media verdad. Una predicción sin su incertidumbre es indistinguible de una adivinanza segura de sí misma; en un problema real — aprobar un crédito, diagnosticar algo, decidir si frenar un coche — esa diferencia importa. En la demo de incertidumbre sesenta modelos entrenados con distintas muestras bootstrap de los mismos datos calculan, juntos, una banda: se estrecha donde hay muchos puntos cercanos y se abre como un abanico en cualquier hueco donde el modelo nunca vio nada parecido. Rellena el hueco con tus propios puntos y verás la banda cerrarse en directo.

La primera lección dejó una imagen sencilla del sobreajuste: una U, error de validación bajando y luego subiendo con la capacidad del modelo. Es cierta, pero no es toda la verdad. Alrededor de 2019 se describió el double descent: si sigues subiendo la capacidad mucho más allá del punto donde el modelo memoriza exactamente los datos de entrenamiento, el error de test vuelve a bajar por segunda vez, más allá del pico. En la demo de double descent se entrenan 128 modelos de anchura creciente y se dibuja su error de test en vivo: baja, se dispara justo donde los parámetros igualan a los datos, y cae de nuevo más allá — esa segunda bajada es, literalmente, donde viven los modelos grandes de hoy, con muchos más parámetros que ejemplos de entrenamiento.

Incluso un modelo que ordena bien puede mentir con sus números. Un clasificador puede tener un buen ROC-AUC — distingue bien quién es positivo de quién no — y aun así decir 0,9 donde la frecuencia real de acierto en ese grupo es 0,6: ordena de maravilla y está sistemáticamente desplazado en magnitud. Comprobarlo es sencillo: se agrupan las predicciones en cubos y se compara la probabilidad media de cada cubo con la frecuencia real observada — si coinciden, la curva de fiabilidad cae sobre la diagonal. Solo con esa comprobación hecha tiene sentido elegir un umbral de decisión con el que alguien vaya a actuar.

El ejemplo más completo de todo esto junto es un sistema de recuperación aumentada — RAG —, y aquí puedes verlo entero por dentro. En la demo de RAG un documento se trocea en fragmentos, cada fragmento se convierte en un vector con exactamente el mismo mecanismo de embeddings de la lección 3, tu pregunta busca a sus vecinos más parecidos por esa misma geometría, y la respuesta se compone citando los fragmentos concretos que la sostienen. Nada de esto es una caja negra: cada etapa del pipeline se puede inspeccionar por separado.

Ninguna de estas técnicas hace un modelo perfecto; lo hace honesto sobre sus límites. Cuantizar y podar dicen cuánto se puede recortar sin que nadie note la diferencia, y también exactamente dónde deja de ser cierto. Medir la incertidumbre dice cuándo el modelo no tiene ni idea, en vez de fingir que sí. Calibrar dice si un número se puede tomar en serio antes de dejar que alguien decida con él. Esa honestidad — no la precisión bruta — es la diferencia entre un proyecto de cuaderno y algo que se puede poner a funcionar de verdad.

Con esto se cierra el recorrido: de una tabla de features y labels a un transformer generando texto, pasando por cómo aprende, cómo lee y cómo se hace pequeño y honesto para el mundo real. Cada pieza de este curso sigue viva en el laboratorio completo, con más experimentos de los que caben en cinco lecciones, por si quieres seguir tirando del hilo.

Práctica

Antes del cuestionario, toca estas demos del laboratorio:

Comprueba lo que has aprendido

1. Al cuantizar un modelo de fp32 a int8, ¿qué suele pasar con su precisión?

2. ¿Por qué se abre en abanico una banda de incertidumbre en las zonas donde no hay datos?

3. ¿Qué describe el fenómeno de double descent frente a la U clásica de sobreajuste?

hola@jmwebsoluciones.com