Destilación de Conocimiento
term_id: knowledge_distillation
Category: training_techniques
Definition
La destilación de conocimiento es un método de aprendizaje automático utilizado para comprimir una red neuronal grande y compleja (el maestro) en una red más pequeña y eficiente (el estudiante). El modelo estudiante se entrena para
Summary
La destilación de conocimiento es una técnica de compresión de modelos donde un modelo estudiante más pequeño aprende a imitar el comportamiento de un modelo maestro más grande.
Key Concepts
- Modelo Maestro-Estudiante
- Compresión de Modelo
- Objetivos Suaves
- Eficiencia
Use Cases
- Despliegue de modelos en dispositivos periféricos
- Reducción de la latencia de inferencia
- Reducción de costos de computación en la nube
Code Example
import torch
import torch.nn as nn
def distillation_loss(student_logits, teacher_logits, temperature=2.0):
T = temperature
student_probs = nn.functional.softmax(student_logits / T, dim=1)
teacher_probs = nn.functional.softmax(teacher_logits / T, dim=1)
return nn.functional.kl_div(
nn.functional.log_softmax(student_logits / T, dim=1),
teacher_probs,
reduction='batchmean'
) * (T * T)