Knowledge Distillation (Дистилляция знаний)

Определение

Knowledge distillation — обучение модели-ученика воспроизводить поведение модели-учителя или ансамбля по их выходным распределениям, ответам либо промежуточным представлениям.

Зачем нужна

  • получить меньшую и более дешёвую модель;
  • перенести часть качества большой модели в специализированный student;
  • сократить задержку и требования к памяти;
  • подготовить модель для локального или массового запуска.

Это не обычное сжатие файла

Quantization меняет числовое представление уже обученных весов. Дистилляция создаёт или дообучает другую модель на сигналах teacher-модели. Эти методы можно сочетать.

Ограничения

  • student обычно не наследует все способности teacher;
  • качество зависит от покрытия данных и способа формирования сигналов;
  • ошибки и нежелательное поведение teacher могут перейти в student;
  • использование ответов закрытой модели может ограничиваться лицензией или условиями API.

Связанные заметки

Источник