Cuantización y destilación: hacer los modelos más pequeños
"Dos formas distintas de encoger un modelo: una cambia sus números, la otra entrena una copia más pequeña. Así funciona cada una y cuándo recurrir a ella."
Los modelos grandes son caros de ejecutar. Necesitan mucha memoria, mucho cómputo y responden más lentamente que los pequeños. Por eso buena parte del trabajo práctico en IA consiste en hacer los modelos más pequeños sin hacerlos notablemente peores. Dos técnicas dominan ese esfuerzo, y a menudo se mencionan de un tirón aunque funcionan sobre principios completamente distintos. La cuantización encoge un modelo almacenando sus números de forma más compacta. La destilación encoge un modelo entrenando uno más pequeño para imitar a uno más grande. Entender la diferencia es la clave para saber qué palanca accionar.
Este artículo explica ambas en lenguaje claro, recorre las contrapartidas que hace cada una y ofrece una forma práctica de pensar cuándo más pequeño es, en primer lugar, el objetivo correcto.
Por qué el tamaño es un problema que vale la pena resolver
Un modelo es, en el fondo, una enorme colección de números llamados parámetros: los valores que aprendió durante el entrenamiento. Los modelos más grandes tienen más parámetros, y más parámetros significan más memoria para contenerlos y más aritmética para ejecutarlos. Eso se traduce directamente en coste, en latencia y en dónde puede vivir físicamente un modelo. Un modelo suficientemente pequeño para ejecutarse en un teléfono o en un servidor modesto abre usos que un modelo gigante en un centro de datos no puede servir de forma barata ni rápida.
Así que el objetivo de la compresión no es la pequeñez por sí misma. Es encajar un modelo en un presupuesto más ajustado de memoria, dinero o tiempo mientras se conserva la mayor cantidad posible de su capacidad. La pregunta interesante es siempre la misma: ¿cuánto puedes encoger antes de que la calidad caiga de un modo que importe para tu tarea?
Cuantización: almacenar el mismo modelo de forma más compacta
Cada parámetro de un modelo es un número, y los números pueden almacenarse con distintos niveles de precisión. Un número de alta precisión reserva muchos bits para capturar gradaciones finas; un número de baja precisión usa menos bits y captura el valor de forma más gruesa. La cuantización es el acto de convertir los parámetros de un modelo de alta precisión a una precisión más baja, empaquetando cada número en menos espacio.
La intuición es como guardar una fotografía con un ajuste de calidad más bajo. La imagen sigue siendo reconocible, el archivo es mucho más pequeño, y para la mayoría de los propósitos no notas la diferencia. Un modelo cuantizado conserva la misma estructura y el mismo conocimiento aprendido; solo representa cada valor de forma más gruesa. Como los números ocupan menos espacio, el modelo usa menos memoria y a menudo corre más rápido, ya que mover y multiplicar números más pequeños es más barato.
La trampa es que los números más gruesos pierden detalle. Baja la precisión lo suficiente y los errores de redondeo se acumulan hasta que el comportamiento del modelo se degrada: las respuestas se vuelven menos precisas, sobre todo en tareas más difíciles. Hay un punto óptimo, y encontrarlo es todo el juego. La cuantización moderada suele ser casi gratis en calidad; la cuantización agresiva empieza a morder.
Destilación: entrenar un modelo más pequeño para imitar a uno más grande
La destilación toma un camino distinto. En lugar de comprimir los números de un modelo existente, construye un modelo nuevo y más pequeño desde cero y lo entrena para imitar a uno grande. El modelo grande es el "maestro", el modelo pequeño es el "estudiante", y el estudiante aprende observando las salidas del maestro e intentando reproducirlas.
La razón por la que esto funciona mejor que simplemente entrenar un modelo pequeño con datos en bruto es sutil. Cuando un modelo maestro responde a una entrada, su salida lleva más información que una simple etiqueta de correcto-o-incorrecto: refleja cómo el maestro pondera distintas posibilidades, lo que captura algo sobre la estructura del problema. El estudiante aprende de esa señal más rica. El resultado puede ser un modelo mucho más pequeño que rinde sorprendentemente cerca de su maestro en los tipos de entradas que fue entrenado para imitar, porque heredó el criterio aprendido del maestro en lugar de redescubrirlo solo.
La trampa aquí es distinta de la de la cuantización. Un modelo destilado es genuinamente un modelo distinto y más pequeño, así que su techo es más bajo. Tiende a rendir bien en el territorio que su maestro demostró y puede caer en entradas lejanas de ese territorio. La destilación también cuesta esfuerzo real por adelantado —tienes que ejecutar el proceso de entrenamiento— mientras que la cuantización es comparativamente rápida de aplicar a un modelo terminado.
La diferencia central, dicha sin rodeos
La cuantización conserva el mismo modelo y cambia cómo se almacenan sus números. La destilación descarta el modelo grande y entrena uno nuevo y más pequeño para actuar como él. Una es un cambio de representación; la otra es un cambio de modelo. Esa distinción explica cada contrapartida entre ellas: la cuantización es rápida de aplicar y preserva la estructura completa del original pero está limitada en cuánto puede encoger antes de que la calidad sufra, mientras que la destilación puede producir modelos drásticamente más pequeños y rápidos pero requiere esfuerzo de entrenamiento y produce un modelo con un techo genuinamente más bajo.
Elegir entre ellas — y combinarlas
La pregunta práctica es cuál es realmente tu restricción. Si tienes un modelo que te gusta y simplemente necesitas que quepa en menos memoria o corra un poco más rápido, la cuantización es el primer movimiento de menor esfuerzo; aplica un nivel moderado, mide la calidad en tu propia tarea y detente antes de que se degrade. Si necesitas algo mucho más pequeño y rápido de lo que la cuantización por sí sola puede entregar —lo bastante pequeño para un dispositivo restringido, o lo bastante barato para correr a muy alto volumen— la destilación es la herramienta más pesada que te lleva allí.
Crucialmente, las dos no son rivales. Operan sobre principios distintos, así que se apilan. Un camino común en producción es destilar un modelo grande hasta un estudiante más pequeño y luego cuantizar a ese estudiante, capturando ambos tipos de ahorro. El modelo más pequeño de la destilación reduce el número de parámetros; la cuantización reduce el coste de almacenamiento de cada parámetro restante. Juntas pueden comprimir mucho más que cualquiera por sí sola, siempre que sigas midiendo la calidad en cada paso.
Cómo saber si fuiste demasiado lejos
Ninguna técnica te dice cuándo ha perjudicado tu aplicación: solo tu propia evaluación puede. La disciplina es la misma en ambos casos: reúne un pequeño conjunto de entradas que representen tu tarea real, con una noción clara de cómo se ve una buena salida, y compara el modelo comprimido contra el original en exactamente esas entradas. Vigila especialmente los ejemplos más difíciles y los casos límite, porque la compresión tiende a degradar primero las tareas difíciles dejando las fáciles con buen aspecto. Un modelo que todavía clava las entradas simples pero falla en silencio las difíciles es la señal clásica de que encogiste más allá del punto óptimo.
En resumen
La cuantización y la destilación ambas hacen los modelos más pequeños, pero no son el mismo movimiento. La cuantización almacena los números del mismo modelo de forma más compacta: rápida de aplicar, estructura preservada, limitada en cuánto llega. La destilación entrena un modelo nuevo y más pequeño para imitar a uno más grande: más esfuerzo, mucho mayor encogimiento, un techo más bajo. Elige según tu restricción, combínalas cuando lo necesites, y deja que una evaluación construida a partir de tu propia tarea te diga cuándo lo pequeño se ha vuelto demasiado pequeño. Más pequeño solo es mejor cuando sigue siendo lo bastante bueno en aquello que realmente necesitas que haga.
