Дистилляция знаний Д

Метод обучения, при котором компактная модель-ученик перенимает поведение крупной модели-учителя, сохраняя точность при меньших вычислительных затратах.

English Knowledge Distillation, KD, Model Distillation
Синонимы Дистилляция модели, перегонка знаний, knowledge distillation, KD, обучение с учителем-моделью

Дистилляция знаний — это техника обучения нейросетей, при которой небольшая модель-ученик учится воспроизводить поведение крупной модели-учителя. Вместо обучения на «жёстких» метках (правильный ответ — 1, остальные — 0) ученик получает от учителя «мягкие цели» — вероятностные распределения по всем классам.

Как это работает

Учитель — это большая предобученная модель с высокой точностью, но дорогая в инференсе. Ученик — компактная архитектура с меньшим числом параметров. В процессе обучения ученик минимизирует расхождение между своими предсказаниями и распределением учителя.

Ключевой механизм — температурное масштабирование: логиты учителя делятся на параметр температуры T перед softmax. При T > 1 распределение становится мягче, и ученик получает информацию о том, какие классы учитель считает похожими. Эта информация называется «тёмным знанием» (dark knowledge). Функция потерь обычно включает KL-дивергенцию между распределениями учителя и ученика.

Зачем это нужно

Дистилляция позволяет развертывать модели на слабом оборудовании — мобильных телефонах, дронах, встраиваемых системах — без существенной потери качества. Это критично для продуктов, где важны скорость отклика и низкое энергопотребление. Кроме того, дистилляция сжимает ансамбли моделей в одну компактную сеть и снижает стоимость коммерческого инференса.

Примеры

  • DistilBERT: ученик BERT с 40% меньшим числом параметров, работающий на 60% быстрее при сохранении около 97% качества на бенчмарке GLUE.
  • DeepSeek R1: в 2025 году показал производительность уровня ведущих моделей при значительно меньших вычислительных ресурсах, что вызвало резонанс на рынке.
  • Sky-T1: открытая модель, обученная дистилляцией за менее чем $450, достигла результатов, сопоставимых с гораздо более крупными моделями.
  • Сжатие ансамблей: исходная мотивация метода Хинтона — объединить знания нескольких моделей в одну компактную сеть.

Формула или метрика

Общая функция потерь при дистилляции:

L = α · LCE(y, σ(zs)) + (1 − α) · T² · KL(σ(zt/T) || σ(zs/T))

где LCE — кросс-энтропия с истинными метками, KL — дивергенция Кульбака-Лейблера между мягкими распределениями учителя и ученика, T — температура, α — вес баланса.

Типичные ошибки

  • Слишком высокая температура: при T → ∞ мягкие цели становятся почти равномерными, и «тёмное знание» теряется в шуме.
  • Игнорирование архитектурного разрыва: если ученик слишком мал относительно учителя, он физически не способен воспроизвести сложные зависимости.
  • Дистилляция без учителя: попытка обучить ученика только на жёстких метках без мягких целей сводит преимущества метода к нулю.
  • Переобучение на мягких целях: ученик может заучить шумные предсказания учителя вместо обобщаемых закономерностей.

Как улучшить

  • Подбирайте температуру T эмпирически: типичные значения — от 2 до 20 в зависимости от задачи.
  • Используйте промежуточные представления: дистилляция не только выходных логитов, но и скрытых слоёв даёт более богатый сигнал.
  • Балансируйте α: слишком большой вес KL может замедлить обучение, слишком малый — лишить ученика «тёмного знания».
  • Применяйте многоучительскую дистилляцию: ансамбль учителей даёт более стабильные мягкие цели.
  • Дообучайте ученика на целевых данных: дистилляция эффективнее, когда домен учителя и ученика совпадает.

Источники

PyTorch Documentation — Knowledge Distillation Tutorial (https://docs.pytorch.org/tutorials/beginner/knowledge_distillation_tutorial.html)

Hinton, Vinyals, Dean — Distilling the Knowledge in a Neural Network (arXiv:1503.02531, 2015)

Sanh et al. — DistilBERT, a distilled version of BERT (arXiv:1910.01108, 2019)

IBM Think — What is knowledge distillation (https://www.ibm.com/think/topics/knowledge-distillation)