Distylacja wiedzy
term_id: knowledge_distillation
Category: training_techniques
Definition
Distylacja wiedzy to metoda uczenia maszynowego służąca do kompresji dużego, złożonego układu nerwowego (nauczyciela) w mniejszy, bardziej wydajny układ (uczeń). Model uczeń jest trenowany do naśladowania wyjść modelu nauczyciela.
Summary
Distylacja wiedzy to technika kompresji modelu, w której mniejszy model uczeń uczy się naśladować zachowanie większego modelu nauczyciela.
Key Concepts
- Model Nauczyciel-Uczeń
- Kompresja modelu
- Miękkie etykiety (Soft targets)
- Efektywność
Use Cases
- Wdrażanie modeli na urządzeniach brzegowych (edge devices)
- Redukcja opóźnień wnioskowania
- Obniżenie kosztów obliczeniowych w chmurze
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)