Model Distillation

Destylowanie modelu to technika, w której mniejszy, mniej złożony model (uczeń) jest szkolony, aby naśladować zachowanie większego, bardziej złożonego modelu (nauczyciela).

Destylowanie modelu ma na celu przeniesienie wiedzy z dużego, często kosztownego obliczeniowo modelu do mniejszego. Model nauczyciela, wstępnie wytrenowany na zestawie danych, dostarcza miękkie etykiety lub prawdopodobieństwa, z których uczy się model ucznia, a nie tylko twarde etykiety. Pozwala to modelowi ucznia uchwycić zdolności generalizacji nauczyciela i potencjalnie osiągnąć podobną wydajność przy mniejszej liczbie parametrów i mniejszych kosztach obliczeniowych. Proces ten zazwyczaj obejmuje szkolenie modelu ucznia na kombinacji oryginalnych danych szkoleniowych i danych wyjściowych nauczyciela, często przy użyciu funkcji straty, która zachęca prognozy ucznia do dopasowania do prognoz nauczyciela.

Technika ta jest szczególnie przydatna w scenariuszach, w których wdrożenie pełnego modelu nauczyciela jest niepraktyczne ze względu na ograniczenia zasobów, na przykład w urządzeniach brzegowych lub aplikacjach mobilnych. Umożliwia tworzenie wydajnych modeli, które zachowują wydajność swoich większych odpowiedników, ułatwiając szybsze wnioskowanie i zmniejszając zapotrzebowanie na pamięć.

        graph LR
  Center["Model Distillation"]:::main
  Pre_machine_learning["machine-learning"]:::pre --> Center
  click Pre_machine_learning "/terms/machine-learning"
  Pre_neural_network["neural-network"]:::pre --> Center
  click Pre_neural_network "/terms/neural-network"
  Pre_deep_learning["deep-learning"]:::pre --> Center
  click Pre_deep_learning "/terms/deep-learning"
  Rel_llm["llm"]:::related -.-> Center
  click Rel_llm "/terms/llm"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧠 Sprawdzenie wiedzy

1 / 3

🧒 Wyjaśnij jak 5-latkowi

It's like a master chef teaching an apprentice. The apprentice learns not just the final recipe (the right answer) but also the subtle techniques and reasoning the master uses, so the apprentice can cook almost as well but much faster.

🤓 Expert Deep Dive

Model distillation, also known as knowledge distillation, is a form of model compression that leverages a teacher-student architecture. The objective function for the student model typically takes the form: L_total = α L_hard + (1 - α) L_soft, where L_hard is a standard cross-entropy loss against ground-truth labels, and L_soft is a loss (e.g., KL divergence or cross-entropy) comparing the student's softened outputs to the teacher's softened outputs. The temperature parameter T in the softmax function (softmax(z_i / T)) is crucial; a higher T produces a softer probability distribution, emphasizing inter-class similarities, while T=1 recovers the standard softmax. Variants include distilling intermediate feature representations (feature distillation) or attention maps, rather than just the final output probabilities. This can be particularly effective when the teacher and student architectures differ significantly. Offline distillation involves training the teacher first, then distilling it. Online distillation trains the teacher and student simultaneously. Self-distillation involves using a model of the same architecture as both teacher and student. Challenges include selecting the appropriate distillation loss, tuning the temperature and weighting parameters (α), and the potential for negative transfer if the teacher model is poorly suited or the student capacity is too low. The effectiveness often depends on the similarity between the teacher's learned function and the true underlying data distribution.

🔗 Powiązane terminy

📚 Źródła