Los problemas de predicción complejos a menudo conducen a conjuntos porque la combinación de múltiples modelos mejora la precisión al reducir la varianza y capturar patrones diversos. Sin embargo, estos conjuntos no son prácticos en producción debido a limitaciones de latencia y complejidad operativa.
En lugar de descartarlos, Knowledge Distillation ofrece un enfoque más inteligente: mantener el conjunto como profesor y entrenar un modelo de estudiante más pequeño utilizando sus resultados de probabilidad suave. Esto permite al estudiante heredar gran parte de la interpretación del conjunto y al mismo tiempo ser lo suficientemente liviano y rápido para su implementación.
En este artículo, construimos este proceso desde cero: entrenamos un conjunto de docentes de 12 modelos, generamos objetivos suaves con escala de temperatura y los destilamos en un estudiante que recupera el 53,8 % de la ventaja de precisión del conjunto a 160 veces la compresión.
¿Qué es la destilación del conocimiento?
La destilación de conocimientos es una técnica de compresión de modelos en la que un modelo grande de “maestro” previamente entrenado transfiere su comportamiento aprendido a un modelo más pequeño de “estudiante”. En lugar de entrenar únicamente con etiquetas de verdad sobre el terreno, se entrena al estudiante para imitar las predicciones del maestro, capturando no sólo los resultados finales sino también los patrones más ricos incorporados en sus distribuciones de probabilidad. Este enfoque permite al estudiante aproximarse al rendimiento de modelos complejos sin dejar de ser significativamente más pequeños y más rápidos. Originada a partir de trabajos iniciales sobre la compresión de grandes modelos conjuntos en redes individuales, la destilación de conocimiento ahora se usa ampliamente en dominios como la PNL, el habla y la visión por computadora, y se ha vuelto especialmente importante para reducir los modelos masivos de IA generativa a sistemas eficientes y desplegables.
Destilación del conocimiento: de profesor conjunto a estudiante ajustado
Configurando las dependencias
Creando el conjunto de datos
Este bloque crea y prepara un conjunto de datos sintéticos para una tarea de clasificación binaria (como predecir si un usuario hace clic en un anuncio). Primero, make_classification genera 5000 muestras con 20 características, de las cuales algunas son informativas y otras redundantes para simular la complejidad de los datos del mundo real. Luego, el conjunto de datos se divide en conjuntos de entrenamiento y prueba para evaluar el rendimiento del modelo en datos invisibles.
A continuación, StandardScaler normaliza las funciones para que tengan una escala consistente, lo que ayuda a que las redes neuronales se entrenen de manera más eficiente. Luego, los datos se convierten en tensores de PyTorch para que puedan usarse en el entrenamiento del modelo. Finalmente, se crea un DataLoader para alimentar los datos en minilotes (tamaño 64) durante el entrenamiento, mejorando la eficiencia y permitiendo el descenso de gradiente estocástico.
Arquitectura modelo
Esta sección define dos arquitecturas de redes neuronales: TeacherModel y StudentModel. El profesor representa uno de los modelos más grandes del conjunto: tiene múltiples capas, dimensiones más amplias y abandono para la regularización, lo que lo hace muy expresivo pero computacionalmente costoso durante la inferencia.
El modelo de estudiante, por otro lado, es una red más pequeña y más eficiente con menos capas y parámetros. Su objetivo no es igualar la complejidad del profesor, sino aprender su comportamiento a través de la destilación. Es importante destacar que el estudiante aún conserva suficiente capacidad para aproximarse a los límites de decisión del maestro: si son demasiado pequeños, no podrá capturar los patrones más ricos aprendidos por el conjunto.
Ayudantes
Esta sección define dos funciones de utilidad para capacitación y evaluación.
train_one_epoch maneja un pase completo sobre los datos de entrenamiento. Pone el modelo en modo de entrenamiento, itera a través de minilotes, calcula la pérdida, realiza retropropagación y actualiza los pesos del modelo utilizando el optimizador. También rastrea y devuelve la pérdida promedio en todos los lotes para monitorear el progreso del entrenamiento.
evaluar se utiliza para medir el rendimiento del modelo. Cambia el modelo al modo de evaluación (deshabilitando abandonos y gradientes), hace predicciones sobre los datos de entrada y calcula la precisión comparando las etiquetas predichas con las etiquetas verdaderas.
Entrenando al conjunto
Esta sección forma al conjunto de profesores, que sirve como fuente de conocimientos para la destilación. En lugar de un único modelo, se entrenan 12 modelos de profesores de forma independiente con diferentes inicializaciones aleatorias, lo que permite que cada uno aprenda patrones ligeramente diferentes a partir de los datos. Esta diversidad es lo que hace que los conjuntos sean poderosos.
Cada maestro está capacitado para múltiples épocas hasta la convergencia y se imprimen las precisiones de sus pruebas individuales. Una vez que todos los modelos están entrenados, sus predicciones se combinan mediante votación suave, promediando sus logits de salida en lugar de tomar una votación por mayoría simple. Esto produce una predicción final más sólida y estable, brindándole un conjunto de alto rendimiento que actuará como "maestro" en el siguiente paso.
Generando objetivos blandos a partir del conjunto
Este paso genera objetivos fáciles del conjunto de docentes capacitados, que son el ingrediente clave en la destilación del conocimiento. En lugar de utilizar etiquetas estrictas (0 o 1), las predicciones promediadas del conjunto se convierten en distribuciones de probabilidad, capturando la confianza del modelo en todas las clases.
La función primero promedia los logits de todos los profesores (votación suave) y luego aplica un escalamiento de temperatura para suavizar las probabilidades. Una temperatura más alta (como 3,0) suaviza la distribución, revelando relaciones sutiles entre clases que las etiquetas rígidas no pueden capturar. Estos objetivos suaves proporcionan señales de aprendizaje más ricas, lo que permite que el modelo del estudiante se aproxime mejor al comportamiento del conjunto.
Destilación: entrenar al estudiante
Esta sección entrena el modelo de estudiante mediante la destilación de conocimientos, donde aprende tanto del conjunto de profesores como de las etiquetas verdaderas. Se crea un nuevo cargador de datos que proporciona entradas junto con etiquetas físicas y objetivos flexibles juntos.
Durante el entrenamiento se computan dos pérdidas:
La pérdida por destilación (divergencia KL) anima al estudiante a igualar la distribución de probabilidad suavizada del profesor, transfiriendo el "conocimiento" del conjunto. La pérdida de etiqueta dura (entropía cruzada) garantiza que el estudiante aún se alinee con la verdad fundamental.
Estos se combinan mediante un factor de ponderación (ALFA), donde un valor más alto da más importancia a la orientación del profesor. El escalado de temperatura se aplica nuevamente para mantener la coherencia con los objetivos suaves, y un factor de reescalamiento garantiza gradientes estables. A lo largo de múltiples épocas, el estudiante aprende gradualmente a aproximarse al comportamiento del conjunto sin dejar de ser mucho más pequeño y eficiente para su despliegue.
Estudiante capacitado solo en etiquetas duras
Esta sección entrena un modelo de estudiante de referencia sin destilación de conocimientos, utilizando solo las etiquetas de verdad del terreno. La arquitectura es idéntica a la del estudiante destilado, lo que garantiza una comparación justa.
El modelo se entrena de forma estándar con pérdida de entropía cruzada, aprendiendo directamente de etiquetas duras sin ninguna orientación por parte del conjunto de profesores. Después del entrenamiento, su precisión se evalúa en el conjunto de prueba.
Esta línea de base actúa como punto de referencia, lo que le permite medir claramente cuánta ganancia de rendimiento proviene específicamente de la destilación, en lugar de solo la capacidad del modelo de estudiante o el proceso de capacitación.
Comparación
Para medir cuánto se transfiere realmente el conocimiento del conjunto, ejecutamos tres modelos contra el mismo conjunto de pruebas retenido. El conjunto (los 12 profesores votan juntos mediante logits promediados) establece el límite de precisión en 97,80%. Este es el número que intentamos aproximar, no superar. El estudiante de referencia es una arquitectura de modelo único idéntica entrenada de manera convencional, solo en etiquetas duras: ve cada muestra como un 0 o 1 binario, nada más. Aterriza en 96,50%. El estudiante destilado vuelve a tener la misma arquitectura, pero entrenado en las salidas de probabilidad suave del conjunto a una temperatura T=3, con una pérdida combinada ponderada del 70% para igualar la distribución del maestro y del 30% para las etiquetas de verdad del terreno. Llega al 97,20%.
La brecha de 0,70 puntos porcentuales entre la línea de base y el estudiante destilado no es una coincidencia de semilla aleatoria o ruido de entrenamiento: es el valor mensurable de los objetivos blandos. El estudiante no obtuvo más datos, una mejor arquitectura o más computación. Obtuvo una señal de entrenamiento más rica y solo eso recuperó el 53,8% de la brecha entre lo que un modelo pequeño puede aprender por sí solo y lo que sabe el conjunto completo. La brecha restante de 0,60 puntos porcentuales entre el estudiante destilado y el conjunto es el coste honesto de la compresión: la parte del conocimiento del conjunto que un modelo de 3.490 parámetros simplemente no puede contener, independientemente de lo bien que esté entrenado.
Consulte los códigos completos aquí. Además, no dude en seguirnos en Twitter y no olvide unirse a nuestro SubReddit de más de 120.000 ML y suscribirse a nuestro boletín. ¡Esperar! estas en telegrama? Ahora también puedes unirte a nosotros en Telegram.
¿Necesita asociarse con nosotros para promocionar su repositorio de GitHub O su página principal de Hugging O su lanzamiento de producto O seminario web, etc.? Conéctate con nosotros

Soy graduado en ingeniería civil (2022) de Jamia Millia Islamia, Nueva Delhi, y tengo un gran interés en la ciencia de datos, especialmente las redes neuronales y su aplicación en diversas áreas.