Дистилляция моделей
Материал из MachineLearning.
| (2 промежуточные версии не показаны) | |||
| Строка 8: | Строка 8: | ||
В современной практике глубокого обучения, особенно в сфере [[Обработка естественного языка|NLP]] и [[Большая языковая модель|больших языковых моделей]], дистилляция является ключевым инструментом для создания эффективных локальных моделей (размером 1–8 млрд параметров), способных решать сложные аналитические и логические задачи на уровне флагманских архитектур. | В современной практике глубокого обучения, особенно в сфере [[Обработка естественного языка|NLP]] и [[Большая языковая модель|больших языковых моделей]], дистилляция является ключевым инструментом для создания эффективных локальных моделей (размером 1–8 млрд параметров), способных решать сложные аналитические и логические задачи на уровне флагманских архитектур. | ||
| - | == | + | == Мотивировка и основные идеи == |
Традиционно для достижения высокой точности на сложных задачах применяются огромные глубокие нейронные сети или композиции множества моделей. Однако их развертывание в продуктивной среде (например, на мобильных устройствах, edge-устройствах или высоконагруженных серверах) часто невозможно. Главными барьерами выступают строгие ограничения на пропускную способность памяти, объем доступной видеопамяти и максимально допустимую задержку ответа. | Традиционно для достижения высокой точности на сложных задачах применяются огромные глубокие нейронные сети или композиции множества моделей. Однако их развертывание в продуктивной среде (например, на мобильных устройствах, edge-устройствах или высоконагруженных серверах) часто невозможно. Главными барьерами выступают строгие ограничения на пропускную способность памяти, объем доступной видеопамяти и максимально допустимую задержку ответа. | ||
| Строка 49: | Строка 49: | ||
где <tex>F</tex> — активации скрытого слоя, а <tex>\phi</tex> — обучаемая проекционная матрица, которая выравнивает размерность узкого слоя студента с широким слоем учителя. | где <tex>F</tex> — активации скрытого слоя, а <tex>\phi</tex> — обучаемая проекционная матрица, которая выравнивает размерность узкого слоя студента с широким слоем учителя. | ||
| - | === Дистилляция отношений | + | === Дистилляция отношений === |
Вместо того чтобы передавать информацию о каждом отдельном объекте изолированно, этот метод передает знания о взаимосвязях между объектами в батче. Например, студент учится сохранять ту же матрицу попарных косинусных расстояний между эмбеддингами изображений, которую формирует учитель. | Вместо того чтобы передавать информацию о каждом отдельном объекте изолированно, этот метод передает знания о взаимосвязях между объектами в батче. Например, студент учится сохранять ту же матрицу попарных косинусных расстояний между эмбеддингами изображений, которую формирует учитель. | ||
| Строка 62: | Строка 62: | ||
С переходом индустрии к генеративному ИИ, фокус дистилляции сместился с вероятностных распределений классов на генерацию связных текстовых последовательностей. Современные подходы включают: | С переходом индустрии к генеративному ИИ, фокус дистилляции сместился с вероятностных распределений классов на генерацию связных текстовых последовательностей. Современные подходы включают: | ||
| - | * '''Дистилляция на уровне токенов | + | * '''Дистилляция на уровне токенов.''' Выравнивание распределений вероятностей для каждого следующего сгенерированного токена между открытой моделью-учителем (например, архитектурой уровня Llama 3 70B) и локальным студентом. |
| - | * '''Дистилляция цепочек рассуждений | + | * '''Дистилляция цепочек рассуждений.''' Одним из наиболее перспективных направлений является дистилляция математических и логических способностей. Процесс часто строится вокруг генерации массивов синтетических цепочек рассуждений мощной моделью-учителем. Для повышения качества датасета на этапе генерации применяется сэмплирование Best-of-N (генерация множества ответов и выбор лучшего на основе Reward-модели). Отфильтрованные данные используются для дообучения компактной модели-студента (например, архитектуры с 1 млрд параметров). Для ускорения тонкой настройки и снижения требований к видеопамяти на этом этапе применяется [[Адаптация низкого ранга (LoRA)]]. Практика показывает, что такой многоступенчатый пайплайн способен кардинально улучшить метрики — известны случаи семикратного роста точности небольших моделей на математических бенчмарках без изменения базового количества параметров. |
== Связь с другими методами сжатия == | == Связь с другими методами сжатия == | ||
| Строка 70: | Строка 70: | ||
* '''Прунинг''': Физическое удаление наименее значимых весов или целых слоев из архитектуры. Отрезанная (прореженная) модель может использовать исходную плотную сеть в качестве учителя для тонкой донастройки. | * '''Прунинг''': Физическое удаление наименее значимых весов или целых слоев из архитектуры. Отрезанная (прореженная) модель может использовать исходную плотную сеть в качестве учителя для тонкой донастройки. | ||
| - | == Распространённые ошибки | + | == Распространённые ошибки == |
| - | * '''Неправильный подбор температуры | + | * '''Неправильный подбор температуры .''' Если установить температуру слишком большой (например, <tex>T > 10</tex> для простых задач), распределение вероятностей приблизится к полностью равномерному, и студент потеряет полезные сигналы о структуре классов. Обычно оптимальное значение <tex>T</tex> находится в диапазоне от 2 до 5. |
| - | * '''Несоответствие мощностей | + | * '''Несоответствие мощностей.''' Попытка дистиллировать знания из гигантского ансамбля в нейронную сеть из пары слоев приведет к тому, что студент просто не сможет аппроксимировать настолько сложную функцию. Если разница в размерах слишком велика, применяют промежуточных «ассистентов». |
* '''Отключение Hard Loss на реальных данных.''' В некоторых задачах полное отключение кросс-энтропии на истинных метках (<tex>\alpha = 1</tex>) приводит к нестабильности обучения и снижению финальных метрик на валидационной выборке. Студент всегда должен иметь доступ к ground truth. | * '''Отключение Hard Loss на реальных данных.''' В некоторых задачах полное отключение кросс-энтропии на истинных метках (<tex>\alpha = 1</tex>) приводит к нестабильности обучения и снижению финальных метрик на валидационной выборке. Студент всегда должен иметь доступ к ground truth. | ||
Текущая версия
| | Статья написана с использованием LLM Gemini 3.1 Pro и проверена участником М. Мишин 18:55, 16 июня 2026 (MSD)
Промпт приводится полностью в Обсуждение:Дистилляция моделей |
|
Дистилля́ция моде́лей (дистилляция знаний, англ. knowledge distillation) — метод сжатия моделей машинного обучения, при котором компактная модель (студент) обучается воспроизводить поведение более сложной и тяжелой модели или ансамбля моделей (учителя). Основная цель дистилляции — перенести обобщающую способность и внутренние репрезентации большой модели в меньшую по размеру, чтобы существенно ускорить инференс и снизить потребление памяти без значительной потери качества предсказаний.
В современной практике глубокого обучения, особенно в сфере NLP и больших языковых моделей, дистилляция является ключевым инструментом для создания эффективных локальных моделей (размером 1–8 млрд параметров), способных решать сложные аналитические и логические задачи на уровне флагманских архитектур.
Мотивировка и основные идеи
Традиционно для достижения высокой точности на сложных задачах применяются огромные глубокие нейронные сети или композиции множества моделей. Однако их развертывание в продуктивной среде (например, на мобильных устройствах, edge-устройствах или высоконагруженных серверах) часто невозможно. Главными барьерами выступают строгие ограничения на пропускную способность памяти, объем доступной видеопамяти и максимально допустимую задержку ответа.
Центральная идея дистилляции заключается в следующем: вместо того чтобы обучать маленькую модель исключительно на жестких метках классов из оригинального набора данных, мы заставляем её предсказывать непрерывные распределения вероятностей, выдаваемые предварительно обученной моделью-учителем.
Эти «мягкие» метки содержат огромное количество скрытой информации. В отличие от унитарного кодирования, где вся вероятность сконцентрирована на одном истинном классе, распределение вероятностей по нецелевым классам отражает топологическую структуру пространства признаков. Относительные значения вероятностей ошибочных классов кодируют меру сходства между различными категориями объектов. Модель-студент, минимизируя расхождение с этим непрерывным распределением, получает более информативный градиентный сигнал на каждом шаге оптимизации, что способствует лучшей регуляризации и позволяет достичь обобщающей способности, сопоставимой с моделью-учителем.
Историческая справка
Идейные предпосылки метода были заложены в работе Кристиана Бусилы и соавторов (Bucila et al., 2006)[1]. В своем исследовании по сжатию моделей они успешно обучили одну быструю нейронную сеть имитировать предсказания громоздкого ансамбля деревьев решений, сохранив при этом высокое качество классификации.
Сам термин «дистилляция знаний» и его современная строгая математическая формулировка с использованием механизма temperature scaling были введены в прорывной статье Джеффри Хинтона, Ориола Виньялса и Джеффа Дина (Hinton et al., 2015)[1]. Хинтон метафорично описал этот процесс как «дистилляцию» чистых знаний из сложной, перепараметризованной функции в компактную форму.
Математическая формулировка базовой дистилляции
В классической задаче классификации нейронная сеть на последнем слое предсказывает логиты , которые затем преобразуются в итоговые вероятности
с помощью стандартной функции софтмакс:
В методе Хинтона в эту формулу искусственно вводится гиперпараметр температуры . При
мы получаем стандартный софтмакс. Однако при увеличении температуры (
) итоговое распределение вероятностей становится более «мягким» и сглаженным. Это делает вероятности маловероятных (ошибочных) классов более выраженными и отличными от нуля:
Процесс обучения студента сводится к минимизации комбинированной функции потерь (), которая состоит из двух независимых компонентов:
- Потеря дистилляции (
): Вычисляется как дивергенция Кульбака-Лейблера (KL-divergence) между сглаженными предсказаниями студента и учителя при одинаково высокой температуре
.
- Потеря студента на реальных данных (
): Вычисляется как стандартная кросс-энтропия между предсказаниями студента (при
) и истинными метками из датасета.
Итоговая функция потерь взвешивается параметром :
Умножение дивергенции на квадрат температуры () является критически важным математическим шагом. Поскольку градиенты KL-дивергенции, вычисленные по логитам, масштабируются пропорционально
, это умножение необходимо для сохранения относительного веса двух компонентов функции потерь при варьировании температуры.
Основные архитектуры дистилляции
Помимо классической дистилляции по логитам, описанной Хинтоном, существуют и более продвинутые архитектуры переноса знаний:
Дистилляция скрытых признаков
Предложена в концепции FitNets (Romero et al., 2014)[1]. В этом подходе модель-студент обучается воспроизводить не только финальные вероятности, но и промежуточные активации (карты признаков) внутренних слоев учителя. Функция потерь в таком случае включает среднеквадратичное отклонение между тензорами признаков:
где — активации скрытого слоя, а
— обучаемая проекционная матрица, которая выравнивает размерность узкого слоя студента с широким слоем учителя.
Дистилляция отношений
Вместо того чтобы передавать информацию о каждом отдельном объекте изолированно, этот метод передает знания о взаимосвязях между объектами в батче. Например, студент учится сохранять ту же матрицу попарных косинусных расстояний между эмбеддингами изображений, которую формирует учитель.
Режимы обучения
В зависимости от состояния модели-учителя в процессе оптимизации, выделяют три основных парадигмы дистилляции:
- Офлайн-дистилляция: Классический и наиболее распространенный подход. Модель-учитель предварительно обучается до максимума своих возможностей, после чего её веса «замораживаются». Студент обучается на статических предсказаниях учителя. Этот метод прост в реализации, но требует сохранения тяжелой модели-учителя в оперативной памяти во время инференса обучающей выборки или предварительной ресурсоемкой генерации массива «мягких» меток.
- Онлайн-дистилляция: Учитель и студент (или ансамбль равноправных моделей) обучаются одновременно, обмениваясь предсказаниями на каждом шаге. Этот подход полезен в ситуациях, когда нет вычислительной возможности предварительно обучить мощного учителя с высокой емкостью, поэтому модели взаимно регуляризируют друг друга в процессе совместной оптимизации.
- Самодистилляция: В этой парадигме модель выступает учителем для самой себя. Знания могут передаваться от более глубоких слоев сети к более поверхностным классификаторам (внутри одной архитектуры), либо предсказания модели, полученные на предыдущих эпохах обучения, используются в качестве псевдоразметки для сглаживания функции потерь на последующих итерациях.
Дистилляция больших языковых моделей
С переходом индустрии к генеративному ИИ, фокус дистилляции сместился с вероятностных распределений классов на генерацию связных текстовых последовательностей. Современные подходы включают:
- Дистилляция на уровне токенов. Выравнивание распределений вероятностей для каждого следующего сгенерированного токена между открытой моделью-учителем (например, архитектурой уровня Llama 3 70B) и локальным студентом.
- Дистилляция цепочек рассуждений. Одним из наиболее перспективных направлений является дистилляция математических и логических способностей. Процесс часто строится вокруг генерации массивов синтетических цепочек рассуждений мощной моделью-учителем. Для повышения качества датасета на этапе генерации применяется сэмплирование Best-of-N (генерация множества ответов и выбор лучшего на основе Reward-модели). Отфильтрованные данные используются для дообучения компактной модели-студента (например, архитектуры с 1 млрд параметров). Для ускорения тонкой настройки и снижения требований к видеопамяти на этом этапе применяется Адаптация низкого ранга (LoRA). Практика показывает, что такой многоступенчатый пайплайн способен кардинально улучшить метрики — известны случаи семикратного роста точности небольших моделей на математических бенчмарках без изменения базового количества параметров.
Связь с другими методами сжатия
Дистилляция часто применяется не изолированно, а в синергии с другими методами оптимизации нейросетей:
- Квантование: Снижение разрядности весов модели (например, с 16-битных чисел с плавающей точкой до 8-битных или 4-битных целых чисел). Дистилляция часто используется для восстановления точности модели после агрессивного квантования.
- Прунинг: Физическое удаление наименее значимых весов или целых слоев из архитектуры. Отрезанная (прореженная) модель может использовать исходную плотную сеть в качестве учителя для тонкой донастройки.
Распространённые ошибки
- Неправильный подбор температуры . Если установить температуру слишком большой (например,
для простых задач), распределение вероятностей приблизится к полностью равномерному, и студент потеряет полезные сигналы о структуре классов. Обычно оптимальное значение
находится в диапазоне от 2 до 5.
- Несоответствие мощностей. Попытка дистиллировать знания из гигантского ансамбля в нейронную сеть из пары слоев приведет к тому, что студент просто не сможет аппроксимировать настолько сложную функцию. Если разница в размерах слишком велика, применяют промежуточных «ассистентов».
- Отключение Hard Loss на реальных данных. В некоторых задачах полное отключение кросс-энтропии на истинных метках (
) приводит к нестабильности обучения и снижению финальных метрик на валидационной выборке. Студент всегда должен иметь доступ к ground truth.
См. также
Литература
- Bucila C., Caruana R., Niculescu-Mizil A. Model compression // Proceedings of the 12th ACM SIGKDD. — 2006. — С. 535–541.
- Hinton G., Vinyals O., Dean J. Distilling the knowledge in a neural network // arXiv preprint arXiv:1503.02531. — 2015.
- Gou J., Yu B., Maybank S. J., Tao D. Knowledge distillation: A survey // International Journal of Computer Vision. — 2021. — Т. 129. — № 6. — С. 1789-1819.
- Romero A., Ballas N., Kahou S. E., Chassang A., Gatta C., Bengio Y. Fitnets: Hints for thin deep nets // arXiv preprint arXiv:1412.6550. — 2014.

