Απόσταξη Γνώσης

term_id: knowledge_distillation

Category: training_techniques

Definition

Η απόσταξη γνώσης είναι μια μέθοδος μηχανικής μάθησης που χρησιμοποιείται για τη συμπίεση ενός μεγάλου, πολύπλοκου νευρωνικού δικτύου (του διδάσκοντος) σε ένα μικρότερο, πιο αποδοτικό δίκτυο (το μαθητικό). Το μαθητικό μοντέλο εκπαιδεύεται ώστε να

Summary

Η απόσταξη γνώσης είναι μια τεχνική συμπίεσης μοντέλου όπου ένα μικρότερο «μαθητικό» μοντέλο μαθαίνει να μιμείται τη συμπεριφορά ενός μεγαλύτερου «διδάσκοντος» μοντέλου.

Key Concepts

  • Μοντέλο Διδάσκοντος-Μαθητή
  • Συμπίεση Μοντέλου
  • Απαλές Κατηγορίες
  • Αποδοτικότητα

Use Cases

  • Τοποθέτηση μοντέλων σε συσκευές άκρης (edge devices)
  • Μείωση καθυστέρησης εξαγωγής συμπερασμάτων
  • Μείωση κόστους υπολογιστικών πόρων στο cloud

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)