דיסטילציה של ידע

term_id: knowledge_distillation

Category: training_techniques

Definition

דיסטילציה של ידע היא שיטה למידת מכונה המשמשת לדחוס רשת נוירונים גדולה ומורכבת (המורה) לתוך רשת קטנה ויעילה יותר (התלמיד). מודל התלמיד מאומן כדי

Summary

דיסטילציה של ידע היא טכניקה לדחיסת מודל שבה מודל תלמיד קטן לומד לחקות את התנהגותו של מודל מורה גדול יותר.

Key Concepts

  • מודל מורה-תלמיד
  • דחיסת מודל
  • יעדים רכים (Soft Targets)
  • יעילות

Use Cases

  • הטמעת מודלים במכשירי קצה
  • הפחתת זמן השהייה בהסקה
  • הפחתת עלויות מחשוב בענן

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)