Knowledge Distillation
La destilación de conocimiento entrena un modelo estudiante pequeño para imitar las salidas o características de un modelo profesor más grande, conservando gran parte de su precisión con mucho menos cómputo.
La destilación de conocimiento es una técnica de compresión de modelos en la que se entrena una red neuronal «alumna» pequeña para que reproduzca el comportamiento de un modelo «profesor» más grande y preciso. La alumna aprende de las probabilidades de salida o las características internas del profesor, además de las etiquetas de referencia o en lugar de ellas; estos objetivos más ricos le permiten alcanzar mayor precisión que la misma arquitectura entrenada únicamente con etiquetas. El resultado es un modelo lo bastante rápido y pequeño para teléfonos, placas integradas y otro hardware de IA en el borde, que conserva gran parte de la calidad del profesor. Buciluǎ, Caruana y Niculescu-Mizil demostraron en 2006 que era posible comprimir el conocimiento de un conjunto de modelos en uno solo, y Hinton, Vinyals y Dean dieron a este enfoque el nombre de destilación de conocimiento en 2015 e introdujeron los objetivos suavizados por temperatura que siguen utilizando la mayoría de los métodos.
Cómo funciona la destilación de conocimiento#
Una etiqueta solo indica que en una imagen aparece un lobo. La salida softmax de un profesor entrenado aporta más información: la imagen se parece algo a un husky, un poco a un gato y nada a un coche. Estas probabilidades relativas de las clases incorrectas, a menudo llamadas conocimiento oscuro, llegan a la alumna como objetivos suaves. Dividir los logits por una temperatura T superior a 1 antes de aplicar softmax aplana la distribución, de modo que las probabilidades pequeñas tengan suficiente peso para aprender de ellas. La pérdida de destilación es la divergencia de Kullback-Leibler entre las distribuciones suavizadas del profesor y la alumna, multiplicada por T² para que sus gradientes mantengan un tamaño comparable al de los gradientes de la pérdida de etiquetas habitual:
import torch
import torch.nn.functional as F
# Logits for one wolf photo over the classes [wolf, husky, cat, car]
teacher_logits = torch.tensor([[6.0, 4.0, 1.0, -2.0]])
student_logits = torch.tensor([[4.0, 1.0, 1.5, 0.0]])
# Dividing logits by a temperature T > 1 softens the teacher's distribution
for T in (1.0, 4.0):
probs = F.softmax(teacher_logits / T, dim=1)
print(f"T={T}: teacher probabilities {[round(p, 3) for p in probs[0].tolist()]}")
# Distillation loss: KL divergence between the softened distributions, scaled by T^2
T = 4.0
soft_targets = F.softmax(teacher_logits / T, dim=1)
student_log_probs = F.log_softmax(student_logits / T, dim=1)
loss = F.kl_div(student_log_probs, soft_targets, reduction="batchmean") * T**2
print(f"Distillation loss at T={T}: {loss.item():.3f}")Con T=1, el profesor asigna 0.875 a la clase lobo y solo 0.006 a gato y 0.0 a coche. Con T=4, los mismos logits se convierten en 0.493, 0.299, 0.141 y 0.067, lo que indica a la alumna que un lobo se parece más a un husky que a un gato, y más a un gato que a un coche. La alumna minimiza esta pérdida, que aquí es 1.244, normalmente como suma ponderada con su pérdida de tarea habitual sobre las etiquetas de referencia. El profesor permanece congelado durante todo el proceso y solo ejecuta pasadas hacia delante:
Tipos de destilación#
- Basada en respuestas: La alumna imita las salidas finales del profesor, como en el método de objetivos suaves anterior, y no necesita nada del profesor aparte de sus logits. DistilBERT combinó este enfoque con pérdidas de modelado del lenguaje y de estados ocultos durante el preentrenamiento para hacer BERT un 40 % más pequeño y un 60 % más rápido, conservando el 97 % de su comprensión del lenguaje.
- Basada en características: La alumna imita los mapas de características intermedios del profesor, con un pequeño proyector aprendido que resuelve cualquier diferencia en el número de canales. FitNets introdujo estas «pistas» y entrenó una alumna con unas 10,4 veces menos parámetros que el profesor, que lo superó en CIFAR-10.
- A nivel de secuencia: Un modelo de lenguaje profesor genera texto y la alumna se ajusta con esos resultados. DeepSeek ajustó sus modelos destilados R1, basados en Qwen2.5 y Llama 3, con 800 000 muestras seleccionadas mediante DeepSeek-R1.
La destilación basada en características es adecuada para los detectores, cuyas salidas son miles de cajas y puntuaciones en lugar de una distribución de clases. Ultralytics YOLO utiliza este enfoque cuando el entrenamiento recibe un profesor distill_model: un modelo YOLO26 más grande y congelado proporciona los tres mapas de características del cuello que alimentan su cabezal de detección, y la alumna los imita mediante proyectores de convolución 1×1 con una pérdida L2 ponderada por la confianza del profesor y escalada por dis (6.0 de forma predeterminada). En COCO val2017, el modelo nano YOLO26 destilado alcanza 41.5 mAP50-95, frente a 40.9 para el mismo modelo entrenado sin profesor, con el mismo coste de inferencia.
from ultralytics import YOLO
# Alumna: el modelo YOLO26 nano compacto que se implementará
model = YOLO("yolo26n.pt")
# Profesor: un punto de control YOLO26 más grande que guía el entrenamiento y se descarta después
results = model.train(data="coco8.yaml", epochs=5, distill_model="yolo26s.pt")Destilación frente a términos relacionados#
- Aprendizaje por transferencia: Reutiliza los propios pesos de un modelo como punto de partida para una tarea nueva. La destilación entrena una arquitectura distinta, normalmente más pequeña, para que imite a un modelo en la misma tarea.
- Poda de modelos: Elimina pesos, canales o capas de una red entrenada. A menudo, los modelos podados se ajustan con destilación del modelo original para recuperar precisión.
- Cuantización de modelos: Almacena los pesos y las activaciones con menor precisión, por ejemplo, INT8. Reduce el tamaño de la misma arquitectura y se combina con la destilación, que elige una arquitectura más pequeña.
- Conjunto de modelos: Promedia varios modelos en el momento de la inferencia. Destilar un conjunto en una sola alumna fue la motivación original de la técnica.
- Destilación de conjuntos de datos: pese a su nombre parecido, comprime un conjunto de datos en lugar de un modelo. Wang et al. comprimieron las 60.000 imágenes de entrenamiento de MNIST en 10 imágenes sintéticas, una por clase, que permiten que una red con una inicialización fija se acerque a su precisión original en unos pocos pasos de gradiente.










