Knowledge Distillation
Знания большой модели, скорость маленькой
Проблема: Вашей продакшен-системе нужно классифицировать тысячи запросов в секунду, но лучшая модель (175B параметров) стоит $0.03 за запрос и отвечает 2 секунды. Нужно то же качество за 1/10 стоимости и в 10 раз быстрее. Как сжать знания гигантской модели в что-то развёртываемое?
Решение: Knowledge Distillation — Учим маленькие модели думать как большие
Большие модели вроде GPT-4 и Claude очень точны, но дороги и медленны для продакшена. Knowledge distillation решает это, обучая маленькую student-модель имитировать большую teacher-модель. Ключевая идея — использование soft labels — полного распределения вероятностей teacher по всем классам — вместо просто правильного ответа. Параметр temperature T смягчает эти распределения, делая маленькие вероятности видимыми. Это раскрывает dark knowledge: информацию, скрытую в "неправильных" ответах teacher, которая подсказывает student, какие классы похожи друг на друга. Функция потерь комбинирует soft loss (от teacher) с hard loss (ground truth): L = alpha * L_soft + (1-alpha) * L_hard.
Представьте это как опытного шеф-повара, обучающего новичка — не просто рецепт (hard label: "это суп"), а нюансы: "это 70% техника супа, 20% метод соуса, 10% подход рагу" (soft labels). Новичок учится не только правильному ответу, но и почему другие ответы частично верны:
- 1. Teacher генерирует soft-предсказания: Большая teacher-модель выдаёт распределения вероятностей по всем классам для каждого входа — не только top-1 предсказание, но полное распределение, показывающее уверенность в каждом варианте
- 2. Temperature смягчает распределение: Параметр T > 1 «сглаживает» распределение, делая маленькие вероятности виднее. При T=1 доминирует top-класс; при T=5 dark knowledge в минорных классах становится доступным для student
- 3. Student учится на soft + hard labels: Student-модель обучается на soft labels (от teacher, с весом alpha) и hard labels (ground truth, с весом 1-alpha). Типичный alpha: 0.5-0.7. Этот двойной сигнал даёт student и интуицию teacher, и фактическую корректность
- 4. Student развёртывается самостоятельно: После обучения student-модель работает самостоятельно — teacher не нужен при инференсе. Результат: модель в 2-10 раз меньше и быстрее, с 90-99% качества teacher на целевой задаче
Knowledge Distillation на практике
- Мобильное развёртывание: DistilBERT сохраняет 97% качества BERT при 40% меньшем размере и 60% более быстром инференсе. Это делает трансформерные модели пригодными для on-device приложений вроде предиктивного ввода и перевода в реальном времени
- Снижение затрат: Компании вроде Microsoft (серия Phi) и Meta (Llama) используют дистилляцию для создания моделей, работающих на потребительских GPU. Дистиллированная модель на 7B может сравняться с 70B teacher на конкретных задачах при 1/10 стоимости инференса
- Инференс в реальном времени: Приложения, критичные к задержкам — голосовые ассистенты, автономное вождение, модерация контента в реальном времени — требуют ответа менее 100мс. Дистиллированные модели дают качество teacher в рамках строгих ограничений по задержке
- Частая ошибка: Нельзя дистиллировать модель на 175B параметров в student на 1M — разрыв в ёмкости слишком велик. Архитектура student должна быть пропорциональна сложности задачи. Также дистилляция переносит поведение, а не знания: если teacher галлюцинирует, student тоже будет
Интересный факт: DistilBERT (2019) стал одним из первых крупных успехов дистилляции: на 40% меньше BERT, на 60% быстрее, при этом сохраняя 97% качества. Сегодня многие популярные "маленькие" LLM вроде Microsoft Phi и части семейства Llama используют дистилляцию от больших моделей как ключевой ингредиент обучения.
Попробуйте сами!
Исследуй интерактивный пайплайн дистилляции ниже: посмотри, как temperature влияет на распределение вероятностей, сравни soft и hard labels и наблюдай передачу знаний от teacher к student.
Проследи пайплайн knowledge distillation пошагово:
Teacher-модель
Большая предобученная модель (напр. 175B параметров) генерирует мягкие распределения вероятностей для обучающих данных
Частые вопросы
Что такое knowledge distillation в машинном обучении?
Knowledge distillation — это техника сжатия моделей, при которой маленькая student-модель учится имитировать большую teacher-модель. Вместо обучения на hard labels (только правильных ответах), student учится на мягком распределении вероятностей teacher-модели по всем классам. Это передаёт dark knowledge — информацию, скрытую в уровнях уверенности teacher по «неправильным» ответам.
Какую роль играет temperature в knowledge distillation?
Temperature (T) контролирует, насколько «мягким» становится распределение вероятностей на выходе teacher-модели. При T=1 (обычном) распределение пиковое — доминирует один класс. При высоком T (3-5) распределение сглаживается, раскрывая связи между классами, которые student может выучить. Это критически важно, потому что dark knowledge живёт в этих малых вероятностях, которые иначе были бы невидимы.
Насколько меньше может быть дистиллированная модель при сохранении качества?
Результаты зависят от задачи, но DistilBERT достигает 97% производительности BERT при 40% меньшем количестве параметров и 60% более быстром инференсе. На практике student-модели могут быть в 2-10 раз меньше teacher при сохранении 90-99% качества на целевых задачах. Ключ — соответствие ёмкости student сложности задачи. Task-specific distillation обычно превосходит general distillation.
Попробуй сам
Интерактивное демо этой техники
Объяснить, как knowledge distillation помогает развернуть модель на мобильном устройстве
Knowledge distillation — это процесс, когда маленькая модель учится у большой. Большая модель (teacher) передаёт знания маленькой (student). Это полезно для мобильных устройств.
Knowledge Distillation: BERT-large → DistilBERT для мобильного email-классификатора
1. Soft labels от teacher: Для email "Meeting rescheduled to Friday 3pm":
- Teacher (T=1): [Calendar: 0.89, Work: 0.06, Personal: 0.03, Spam: 0.02]
- Teacher (T=4): [Calendar: 0.42, Work: 0.25, Personal: 0.18, Spam: 0.15]
Soft labels при T=4 показывают: "это календарное, но связано с работой и немного личное" — dark knowledge, которое student выучивает.
2. Роль temperature T=4:
- Без T: student видит "Calendar=1, остальное=0" → не знает связей
- T=4: student видит, что Work и Personal связаны с Calendar → лучше обрабатывает пограничные случаи
3. Итоговые метрики: | Метрика | Teacher (BERT-large) | Student (DistilBERT) | |---------|---------------------|---------------------| | Параметры | 340M | 66M (−80%) | | Accuracy | 94% | 91.3% (−2.7%) | | Latency | 450мс | 85мс (−81%) | | RAM | 1.3ГБ | 260МБ (−80%) |
Конкретный сценарий с числами (340M→66M, accuracy, latency, RAM) превращает абстрактное "расскажи про distillation" в практическое руководство. Промпт с temperature и soft labels заставляет модель показать механику, а не просто описать концепцию.
Создайте бесплатный аккаунт для решения челленджей
3 челленджей с AI-проверкой для этого урока
Этот урок — часть структурированного курса по LLM.
Мой путь обучения