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 — это процесс, когда маленькая модель учится у большой. Большая модель (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.
Мой путь обучения