Tudásdistilláció

term_id: knowledge_distillation

Category: training_techniques

Definition

A tudásdistilláció egy gépi tanulási módszer, amelyet egy nagy, komplex neurális hálózat (tanár) tömörítésére használnak egy kisebb, hatékonyabb hálózattá (diák). A diákmodellt arra

Summary

A tudásdistilláció egy modellsűrítés technika, ahol egy kisebb diákmodell megtanulja utánozni egy nagyobb tanármodell viselkedését.

Key Concepts

  • Tanár-diák modell
  • Modellsűrítés
  • Lágy célok (Soft targets)
  • Hatékonyság

Use Cases

  • Modellek telepítése él eszközökön
  • A következtetési késleltetés csökkentése
  • Felhőalapú számítási költségek csökkentése

Code Example

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
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)