Типичная история: обучили, сжали, убили
Вы потратили недели на дистилляцию знаний из GPT-4.8 в свою маленькую Llama 3.2 7B. Точность на валидации — 94% от учителя. Вы гордитесь собой. Потом квантуете эту красоту в INT4 для запуска на MacBook. И получаете падение точности на 15%. Почему? Потому что ваша студенческая модель училась на полной точности учителя, а работать должна в деградированном, квантованном виде. Это как тренировать пилота на симуляторе с идеальными условиями, а потом выпускать его в настоящий шторм.
Вот главная проблема обычной дистилляции перед квантованием: модель-студент оптимизируется для имитации полной точности учителя, но после квантования ее внутренние представления искажаются. Особенно страдают те слои, которые отвечают за сложные рассуждения.
Quantization-Aware Distillation: тренировка в условиях реального боя
Метод, описанный в свежей работе arXiv:2601.20088 (февраль 2026), предлагает радикально простую идею: дистиллируй сразу в квантованном виде. Не "сначала научись идеально, потом адаптируйся", а "учись сразу так, как будешь работать".
Представьте, что вы учите человека читать текст через запотевшие очки. Обычная дистилляция сначала учит читать идеальный текст, потом надевает очки. QAD сразу выдает запотевшие очки и говорит: "Читай так". Мозг адаптируется к искажениям с самого начала.
Чем QAD отличается от QAT (Quantization-Aware Training)?
Здесь часто возникает путаница. QAT — это дообучение уже существующей модели с учетом квантования. QAD — это изначальное обучение с нуля (или дообучение базовой модели) через дистилляцию, где квантование — часть процесса обучения.
| Метод | Когда применяется | Требует ли учителя? | Потеря точности после INT4 |
|---|---|---|---|
| Обычная дистилляция + PTQ | После обучения студента | Да | 8-15% |
| QAT (например, гибрид QAT+LoRA) | Дообучение готовой модели | Нет | 2-5% |
| Quantization-Aware Distillation | Обучение с нуля через дистилляцию | Да | 0.5-2% |
Ключевое преимущество QAD: студенческая модель с самого начала учит устойчивые к квантованию представления. Она не пытается скопировать тонкие FP16-особенности учителя, которые все равно умрут при квантовании. Вместо этого она учит более грубые, но устойчивые паттерны.
Почему это работает? Механика под капотом
В стандартной дистилляции loss-функция выглядит так:
loss = α * hard_loss(predictions, labels) + β * soft_loss(student_logits, teacher_logits)
В QAD появляется третий компонент — квантованный loss:
# Псевдокод из arXiv:2601.20088
quantized_student = quantize_dequantize(student, bits=4)
quantized_teacher = quantize_dequantize(teacher, bits=4) # Или 8 для учителя
loss = (
α * hard_loss(predictions, labels) +
β * soft_loss(student_logits, teacher_logits) +
γ * soft_loss(quantized_student_logits, quantized_teacher_logits)
)
Где quantize_dequantize — это операция, которая симулирует квантование во время forward pass, но сохраняет градиенты для обратного распространения (используя straight-through estimator или подобные техники).
Важный нюанс: в работе предлагают квантовать учителя в более высокий битность (например, INT8), чем студента (INT4). Почему? Потому что учитель должен сохранять достаточно информации для обучения, но при этом демонстрировать искажения, к которым студенту нужно адаптироваться.
Практика: как реализовать QAD в 2026 году
1 Выбор инструментов: что работает сейчас
На февраль 2026 года у вас есть несколько вариантов:
- NVIDIA QAD Toolkit — самый полный набор, но требует железа от NVIDIA. Если у вас есть доступ к их железу, это лучший выбор. (Кстати, о их подходе к 4-битному квантованию есть отдельная статья: QAD от NVIDIA)
- Hugging Face PEFT + bitsandbytes — можно собрать кастомный пайплайн. Гибко, но нужно писать код.
- Custom implementation на PyTorch — если хотите полного контроля. Примерно 300-500 строк кода.
2 Подготовка учителя: не любой сгодится
Здесь первая ловушка. Если взять обычную FP16 модель в качестве учителя, QAD не даст преимуществ. Нужен учитель, который сам прошел адаптацию к квантованию. Два варианта:
- Взять модель, уже дообученную с QAT (например, через тот же QAT+LoRA)
- Самому дообучить учителя с QAT перед началом дистилляции
Второй вариант дольше, но дает лучшие результаты на 3-5%.
3 Настройка гиперпараметров: где спрятаны проценты точности
Самая тонкая часть. Вот типичные ошибки:
Как НЕ надо делать:
- Использовать одинаковый learning rate для всех слоев
- Квантовать все слои с одинаковой частотой
- Игнорировать температурный параметр в soft loss
Правильная настройка из работы arXiv:2601.20088:
# Рекомендуемые параметры для Llama-архитектур
config = {
"teacher_bits": 8, # Учитель в INT8
"student_bits": 4, # Студент в INT4
"quant_freq": 0.5, # 50% forward passes с квантованием
"alpha": 0.3, # Вес hard loss
"beta": 0.5, # Вес обычного soft loss
"gamma": 0.2, # Вес квантованного soft loss
"temp": 4.0, # Температура для дистилляции
"layerwise_lr": {
"attention": 1e-5,
"mlp": 3e-5, # MLP слои требуют большего LR
"embeddings": 5e-6 # Эмбеддинги меняем осторожно
}
}
Результаты: цифры, которые заставят вас попробовать QAD
В исследовании сравнивали три подхода на датасете сложных цепочек рассуждений (именно там обычное квантование ломается сильнее всего, как мы писали в статье про PTQ на chain-of-thought):
| Метод | Точность (FP16) | Точность (INT4) | Падение | Размер |
|---|---|---|---|---|
| Учитель (GPT-4.8 70B) | 92.4% | - | - | 140GB |
| Обычная дистилляция + PTQ | 87.1% | 72.3% | -14.8% | 3.5GB |
| QAT на готовой модели | 85.9% | 82.1% | -3.8% | 3.5GB |
| Quantization-Aware Distillation | 86.7% | 85.2% | -1.5% | 3.5GB |
Разница в 13.3% точности между обычной дистилляцией и QAD в INT4 — это не статистическая погрешность. Это разница между "работает" и "не работает" для production-задач.
Где QAD особенно критичен (а где можно сэкономить)
Не для всех задач нужен такой сложный пайплайн. Вот где QAD оправдывает свою сложность:
- Сложные рассуждения (chain-of-thought) — здесь каждое искажение убивает логику
- Медицинские и юридические модели — где цена ошибки высока (подробнее в нашем гайде про выбор формата для медицинских моделей)
- Мультимодальные модели — где нужно согласование между модальностями
- Очень низкобитное квантование (INT2, 1.58-bit) — там искажения максимальны
А где можно обойтись обычной дистилляцией или даже PTQ:
- Классификация текста (sentiment analysis)
- Простые Q&A без сложной логики
- Генерация кода (хотя здесь уже спорно)
- Когда вы квантуете в INT8 или выше
Будущее: куда движется Quantization-Aware Distillation
На февраль 2026 года видно несколько трендов:
Вторая тенденция — QAD для sparse моделей. Сначала делаем модель sparse (удаляем 50% весов), потом дистиллируем с учетом будущего квантования. Двойное сжатие с минимальными потерями.
И самое интересное — QAD для 1.58-битных моделей (те самые {-1, 0, +1} веса, о которых мы писали в статье "Куда пропали 1.58-битные LLM?"). Здесь обычные методы вообще не работают, а QAD показывает сохранение 85% точности при сжатии в 20 раз.
Стоит ли игра свеч? Мой вердикт
Если вы:
- Дистиллируете модель для production
- Планируете квантовать в INT4 или ниже
- Работаете со сложными задачами (рассуждения, мультимодальность)
- Имеете доступ к вычислительным ресурсам для дополнительного обучения
Тогда Quantization-Aware Distillation — не опция, а необходимость. Разница в 10-15% точности после квантования — это слишком большая цена за экономию на предобучении.
Но если вы делаете proof-of-concept, экспериментируете или работаете с простыми задачами — можно начать с обычной дистилляции и пост-тренировочного квантования. Просто знайте, что оставляете на столе 10-15% потенциальной точности.
Последний совет: никогда не оценивайте качество дистиллированной модели до квантования. Это бессмысленно. Оценивайте сразу в том формате, в котором модель будет работать. Если делаете QAD — оценивайте промежуточные чекпоинты после симуляции квантования. Иначе получите красивые цифры на валидации, которые разобьются о реальность INT4.
P.S. Интересный парадокс: иногда квантованная большая модель оказывается умнее полной точности маленькой. Об этом феномене мы подробно писали в статье про 4-битную Llama 3 405B. QAD — это способ получить лучшее из обоих миров: и размер маленькой модели, и качество, близкое к большой.