Что такое дистилляция моделей: учитель и ученик — это схема обучения, в которой большая предобученная модель передаёт меньшей свои промежуточные предсказания. В документации IBM метод описан как перенос знаний от «учителя» к «ученику» и применяется как сжатие модели. Ученик учится на мягких вероятностях, которые показывают, как учитель обобщает.
Учитель и ученик: что именно передаётся в обучении
В рассматриваемом сценарии учитель — большая предобученная модель, а ученик — компактная сеть, которую обучают по её сигналам. Учителем также может служить ансамбль. В документации IBM сказано, что дистилляция переносит наработки крупной предобученной модели, «учителя», в меньшую «модель-ученика»; метод служит формой сжатия и переноса знаний для больших глубоких сетей.
Передаётся не файл весов и не исходный код. Передаётся сигнал: промежуточные предсказания учителя, которые в документации IBM названы мягкими целями и часто служат основными данными обучения ученика. Относительные вероятности в этих предсказаниях показывают, как учитель склонен обобщать. Google Research в работе «Does Knowledge Distillation Really Work?» описывает дистилляцию как популярный приём обучения небольшой сети-ученика под соответствие более крупной модели-учителю, например ансамблю сетей.
Есть и другие ветки метода. Документация IBM упоминает подходы, которые работают с весами и активациями скрытых слоёв либо с отношениями между разными частями сети. Тогда ученик учится по внутренним представлениям. Выходные вероятности — другой возможный сигнал. Для старта достаточно выходного сигнала: он проще в реализации и не требует совпадения архитектур.
Практический вывод для читателя: сначала определите, что именно доступно от учителя. Открытые веса дают доступ к скрытым слоям. Доступ только через API оставляет выходные вероятности, если провайдер их отдаёт. От этого зависит форма целей и объём работы.
Жёсткая метка и мягкое распределение на примере трёх классов
Возьмём учебную задачу с тремя классами: кот, собака, лиса. На одном изображении жёсткая метка выглядит как [1, 0, 0]: истинный класс отмечен единицей, остальные нулями. Учитель на том же изображении даёт распределение [0.70, 0.25, 0.05]. Ученик до обучения выдаёт [0.40, 0.35, 0.25].
Разница видна сразу. Жёсткая метка сообщает только правильный ответ. Мягкое распределение сообщает, что второй класс похож на первый заметно сильнее третьего. В документации IBM эта мысль выражена так: относительные вероятности промежуточных предсказаний дают ценные сведения о том, как учитель обобщает. Для ученика это дополнительный сигнал о структуре классов.
| Форма цели | Пример для кота | Что сообщает ученику |
|---|---|---|
| Жёсткая метка | [1, 0, 0] | Только верный класс |
| Мягкое распределение учителя | [0.70, 0.25, 0.05] | Верный класс и близость остальных |
| Выход ученика до обучения | [0.40, 0.35, 0.25] | Исходная неуверенная оценка |
В документации Keras сказано, что логиты смягчаются функцией температурного масштабирования в softmax, распределение вероятностей сглаживается и проявляет межклассовые отношения, усвоенные учителем. Терминологическая тонкость: логиты — это необработанные оценки до softmax, вероятности — результат преобразования. IBM в одном из абзацев называет вероятности классов логитами неформально; при чтении кода держите различие.
Учебные значения выше — условный вход для арифметики. Они не являются измерением редакции и не доказывают лимитов продукта. Их задача — показать, какую форму принимают цели.
Температура и функция потерь
Температура управляет гладкостью распределения. Документация Keras описывает механизм так: логиты смягчаются температурным масштабированием в softmax, распределение сглаживается, и проявляются межклассовые связи, усвоенные учителем. Высокая температура делает распределение ровнее, низкая приближает его к жёсткому выбору.
Функция потерь собирается из двух частей. В документации Keras метод compute_loss выполняет прямой проход учителя и ученика и считает потерю как взвешенную сумму student_loss и distillation_loss с коэффициентами alpha и 1 — alpha. Первая часть тянет ученика к истинным меткам, вторая — к распределению учителя. Коэффициент задаёт баланс.
Документация Hugging Face для классификации изображений использует дивергенцию Кульбака — Лейблера, чтобы измерить расхождение между учеником и учителем. Тот же документ показывает пример дистилляции дообученной ViT-модели в MobileNet через Trainer API. Обновляются только веса ученика: в документации Keras это отмечено отдельной пометкой.
Google Research в работе «Does Knowledge Distillation Really Work?» сообщает, что набор данных для дистилляции и величина температурного масштабирования логитов играют решающую роль в том, насколько близко ученик повторяет учителя, и обсуждает способы настройки этих гиперпараметров. Там же сказано, что дистилляция даёт полезный регуляризующий эффект, и при этом между предсказательными распределениями учителя и ученика часто остаётся заметное расхождение, даже когда ученик способен точно повторить учителя. Полное копирование поведения модели в общем случае не гарантировано.
Данные обучения и отдельный контрольный набор
Данные делятся на две части. Первая идёт на обучение ученика. Вторая остаётся контрольной и не пересекается с первой. Документация Hugging Face в примере с изображениями отмечает, что процессор изображений можно взять от любой из двух моделей, поскольку на том разрешении они дают одинаковый выход.
Карточка эксперимента помогает не потерять детали. Зафиксируйте в ней:
- учителя: имя, версию, способ доступа;
- разрешённый датасет и его происхождение;
- форму целей: жёсткие метки, мягкие распределения, скрытые слои;
- контрольный набор без пересечения с обучающим;
- метрики качества, задержки и размера.
Контрольный набор отвечает на вопрос, который обучающая выборка закрыть не может: как ученик ведёт себя на данных, которых не видел. Если контрольные примеры пересекаются с обучающими, метрика завышается. Проверка пересечения — обязательный шаг перед сравнением.
Google Research в работе «Does Knowledge Distillation Really Work?» называет набор данных для дистилляции одним из решающих факторов близости ученика к учителю. Состав контрольного набора влияет на то, какие свойства вы вообще сможете заметить.
Ручной расчёт точности и согласия на четырёх ответах
Возьмём учебный контроль из четырёх строк. Истинные метки: К, С, Л, К. Ответы учителя: К, С, С, К. Ответы ученика: К, Л, Л, К.
Считаем точность по истинной разметке. Учитель угадал в первой, второй и четвёртой строках: 3 из 4. Ученик угадал в первой, третьей и четвёртой: тоже 3 из 4. Точность совпала.
Теперь считаем согласие между учителем и учеником. Ответы совпали в первой и четвёртой строках: 2 из 4. Вторая и третья строки разошлись.
| Строка | Истина | Учитель | Ученик | Учитель верен | Ученик верен | Согласие |
|---|---|---|---|---|---|---|
| 1 | К | К | К | да | да | да |
| 2 | С | С | Л | да | нет | нет |
| 3 | Л | С | Л | нет | да | нет |
| 4 | К | К | К | да | да | да |
| Итог | — | — | — | 3/4 | 3/4 | 2/4 |
Эталон показывает главное: равная точность не равна копии поведения. Ученик может набрать те же 3 из 4, расходясь с учителем в половине случаев. Если ваша цель — воспроизвести поведение учителя, одной точности для отчёта мало.
Отдельный случай: ученик, который всегда копирует ошибку учителя в третьей строке, не доказывает качества по истинной разметке. Совпадение с учителем на его ошибке поднимает согласие и не улучшает правильность. Держите обе метрики раздельно.
Учебный расчёт выполнен на условных строках. Обучение не запускалось, распределения и ответы придуманы для арифметики.
Отличие дистилляции от квантизации и объединения GPT-агентов
Дистилляция обучает новую меньшую модель. Квантизация меняет точность представления чисел в уже существующей модели: веса и активации хранятся в формате с меньшей разрядностью. Архитектура и число параметров при квантизации сохраняются, меняется формат хранения и вычислений. При дистилляции появляется отдельная сеть с собственными весами.
Объединение GPT-агентов решает другую задачу. Несколько агентов или моделей комбинируются в один рабочий процесс: один планирует, другой вызывает инструменты, третий проверяет результат. Агенты сохраняют отдельные роли и вызовы; они могут использовать одну базовую модель. Само построение такого процесса не требует обучения нового ученика.
| Подход | Что меняется | Появляется новая модель |
|---|---|---|
| Дистилляция | Обучение меньшей сети по сигналам учителя | Да |
| Квантизация | Разрядность весов и вычислений | Нет |
| Объединение агентов | Схема вызовов нескольких моделей | Нет |
Практический критерий выбора прост. Нужна меньшая модель с собственными весами — дистилляция. Нужно ужать существующую модель по памяти — квантизация. Нужно разделить задачу между несколькими моделями — оркестрация агентов. Смешивать эти задачи в одном эксперименте неудобно: метрики будут отвечать на разные вопросы.
Перенос ошибок учителя, права на данные и проверка задержки и размера
Дистилляция может переносить ошибки учителя. В третьей строке нашего учебного контроля учитель ошибся, а данный ученик ответил правильно. Если другой ученик будет точно копировать ошибочный ответ учителя, это повысит согласие без улучшения точности. Google Research в работе «Does Knowledge Distillation Really Work?» сообщает, что между предсказательными распределениями учителя и ученика часто остаётся заметное расхождение, и дистилляция при этом даёт регуляризующий эффект. Наследование ошибок и неполное совпадение наблюдаются в одном процессе.
Права на данные и выходы проверяются по условиям источника. Датасет, на котором обучали учителя, и данные для дистилляции могут иметь разные лицензии. Условия использования API учителя могут ограничивать применение его выходов для обучения других моделей. Эти вопросы решаются до запуска обучения, по документам владельца данных и владельца модели.
Проверка результата идёт по трём измерениям. Качество — точность и согласие на контрольном наборе. Задержка — время ответа ученика на вашем оборудовании. Размер — объём весов и памяти при работе. Документация Hugging Face в примере с изображениями показывает дистилляцию ViT в MobileNet, и это иллюстрация конкретной пары архитектур; переносить её числовые результаты на другие задачи не следует.
Промпт ниже помогает собрать карточку эксперимента до запуска обучения.
Ты помогаешь спланировать эксперимент по дистилляции модели.
Заполни карточку по шаблону и отметь пропуски.
1. Учитель: имя, версия, способ доступа (локальные веса или API).
2. Разрешённый датасет: происхождение, лицензия, объём.
3. Форма целей: жёсткие метки, мягкие распределения, скрытые слои.
4. Температура и коэффициент alpha: выбранные значения и обоснование.
5. Контрольный набор: как проверено отсутствие пересечения с обучающим.
6. Метрики: точность, согласие с учителем, задержка, размер.
7. Риски: перенос ошибок учителя, права на данные и выходы.
Тема эксперимента: [ваша тема]
Доступный учитель: [ваша модель и способ доступа]
Ограничения по оборудованию: [ваши лимиты]
Меняйте под себя тему, доступного учителя и ограничения по оборудованию. Остальные пункты оставьте: они закрывают проверки, которые чаще всего пропускают.
Частые вопросы
Что такое knowledge distillation простыми словами?
Это обучение меньшей модели по подсказкам большей. Учитель выдаёт распределение вероятностей по классам, ученик учится его повторять. В документации IBM метод описан как перенос наработок крупной предобученной модели в меньшую.
Что такое мягкие метки и чем они отличаются от обычных?
Обычная метка отмечает один верный класс единицей. Мягкое распределение даёт вероятности по всем классам и показывает, какие из них учитель считает близкими. В документации IBM такие промежуточные предсказания названы мягкими целями и часто служат основными данными обучения ученика.
Зачем нужна температура в дистилляции?
Она управляет гладкостью распределения. Документация Keras описывает смягчение логитов температурным масштабированием в softmax, при котором проявляются межклассовые отношения, усвоенные учителем. Google Research называет величину температурного масштабирования одним из решающих факторов близости ученика к учителю.
Копирует ли ученик учителя полностью?
Точное копирование в общем случае не гарантировано. Google Research в работе «Does Knowledge Distillation Really Work?» сообщает, что между предсказательными распределениями учителя и ученика часто остаётся заметное расхождение, даже когда ученик способен повторить учителя. Дистилляция при этом даёт полезный регуляризующий эффект.
Как проверить качество ученика?
Считайте точность по истинной разметке и согласие с учителем раздельно, на контрольном наборе без пересечения с обучающим. В учебном примере из четырёх строк обе модели дали точность 3/4 при согласии 2/4. Дополнительно измерьте задержку ответа и размер модели на вашем оборудовании.
