Distilasi Pengetahuan

term_id: knowledge_distillation

Category: training_techniques

Definition

Distilasi pengetahuan adalah metode pembelajaran mesin yang digunakan untuk mengompresi jaringan saraf besar dan kompleks (guru) menjadi jaringan yang lebih kecil dan efisien (siswa). Model siswa dilatih untuk

Summary

Distilasi pengetahuan adalah teknik kompresi model di mana model siswa yang lebih kecil belajar meniru perilaku model guru yang lebih besar.

Key Concepts

  • Model Guru-Siswa
  • Kompresi Model
  • Target Lunak
  • Efisiensi

Use Cases

  • Menyebarkan model pada perangkat tepi
  • Mengurangi latensi inferensi
  • Menurunkan biaya komputasi awan

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)