Какие виды дистилляции моделей существуют?
Что проверяют
Понимаете ли вы, что именно ученик берёт у учителя и почему это лучше, чем учить маленькую модель с нуля. Следом обычно спрашивают про температуру и про то, как дистиллируют большие языковые модели, когда логиты учителя недоступны.
Как отвечать
Базовая схема из работы Хинтона и соавторов (2015): ученик учится на смеси обычной функции потерь по истинным меткам и KL-дивергенции между распределениями учителя и ученика, смягчёнными температурой T. При T > 1 проявляются «тёмные знания»: учитель считает кошку немного похожей на собаку и совсем не похожей на грузовик. Слагаемое с KL домножают на T², чтобы градиенты не проседали.
Виды удобно делить по тому, что передаётся:
- по ответам (response-based): мягкие вероятности или логиты учителя, классический вариант;
- по признакам (feature-based): ученик повторяет промежуточные представления, как в FitNets. Если размеры слоёв разные, добавляют обучаемую проекцию;
- по отношениям (relation-based): передаются расстояния и углы между объектами в пространстве признаков;
- по вниманию: ученик копирует карты или распределения внимания, для трансформеров так сделан MiniLM.
По схеме обучения различают офлайн (учитель заморожен), онлайн (модели учатся одновременно и учат друг друга) и самодистилляцию (модель учит собственную копию).
Для LLM отдельно назовите sequence-level дистилляцию: учитель генерирует ответы, ученик обучается на них как на обычном SFT-датасете. Так работают, когда доступен только текст ответа. DistilBERT, по данным авторов, на 40% меньше BERT и сохраняет около 97% его качества на GLUE.
Где спотыкаются
Путают дистилляцию с квантизацией и прунингом. Те сжимают ту же модель, а дистилляция обучает новую, обычно меньшей архитектуры.
Считают мягкие метки дорогими. Логиты выдаёт тот же прямой проход, дорог сам прогон учителя по датасету, и без аугментаций его результаты кешируют заранее.
Не называют ограничений: ученик редко превосходит учителя, слишком большой разрыв в размерах ухудшает перенос (тогда вводят промежуточную модель-ассистента), а обучение на ответах закрытой модели через API часто запрещено её условиями использования.