Knowledge Distillation (Дистилляция знаний)
Определение
Knowledge distillation — обучение модели-ученика воспроизводить поведение модели-учителя или ансамбля по их выходным распределениям, ответам либо промежуточным представлениям.
Зачем нужна
- получить меньшую и более дешёвую модель;
- перенести часть качества большой модели в специализированный student;
- сократить задержку и требования к памяти;
- подготовить модель для локального или массового запуска.
Это не обычное сжатие файла
Quantization меняет числовое представление уже обученных весов. Дистилляция создаёт или дообучает другую модель на сигналах teacher-модели. Эти методы можно сочетать.
Ограничения
- student обычно не наследует все способности teacher;
- качество зависит от покрытия данных и способа формирования сигналов;
- ошибки и нежелательное поведение teacher могут перейти в student;
- использование ответов закрытой модели может ограничиваться лицензией или условиями API.