BitDistill: Microsoft предлагает 1.58‑битовую дистилляцию с 10× экономией памяти и ~2.65× ускорением на CPU

Что делает BitNet Distillation

Microsoft Research предлагает BitNet Distillation (BitDistill) — практичный трёхэтапный конвейер для преобразования pretrained FP16 больших языковых моделей в 1.58‑битовые BitNet‑студенты. Метод ориентирован на практическое развёртывание: он сохраняет точность, близкую к FP16, и при этом даёт тернарные веса, совместимые с CPU, и INT8 активации для экономии ресурсов.

Почему прямая конверсия не работает и цель подхода

Ранее показано, что BitNet, обученный с нуля, может соответствовать качеству full‑precision модели, но простая квантизация pretrained FP16 модели до 1.58 бита часто ухудшает точность, а разрыв растёт с увеличением размера модели. BitNet Distillation направлен на устранение этого разрыва, чтобы команды могли конвертировать существующие FP16 модели без полного дообучения и при этом получать преимущества экстремальной квантизации.

Этап 1 — архитектурная доработка с SubLN

Модели с низкой разрядностью часто страдают от большой дисперсии активаций, что дестабилизирует квантованные проекции. BitNet Distillation вставляет SubLayer Normalization (SubLN) в каждый блок Transformer: перед выходной проекцией модуля многоголовой самовнимания (MHSA) и перед выходной проекцией FFN. Это стабилизирует масштабы скрытых состояний, попадающих в квантованные проекции, улучшая оптимизацию и сходимость при тернарных весах.

Отчёты авторов показывают, что SubLN снижает нестабильность оптимизации при обучении низкоразрядных моделей.

Этап 2 — продолженное предобучение для адаптации распределений весов

Прямое дообучение студента на задаче в 1.58 бита даёт ограниченное число токенов и недостаточно для перестройки распределения весов FP16 под тернарные ограничения. Для этого BitNet Distillation выполняет короткое продолженное предобучение на общей корпусе (авторы используют 10B токенов из корпуса FALCON), чтобы сдвинуть веса к распределениям, похожим на BitNet. Визуализации показывают концентрацию массы около границ перехода, что позволяет небольшим градиентам переключать веса между [-1, 0, 1] на последующем дообучении на задачах.

Этап 3 — дообучение с двойным сигналом дистилляции

Студент учится у FP16 учителя по двум каналам:

Абатляции показывают, что сочетание обоих сигналов работает лучше, чем любой из них по‑отдельности, и что выбор удачного слоя сохраняет гибкость при передаче знаний.

Оценка и результаты

Команда оценила модели на задачах классификации, MNLI, QNLI, SST‑2 и суммаризации на CNN/DailyMail, сравнив три режима: FP16 дообучение на задаче, прямая 1.58‑битная дообучение и BitNet Distillation. Для Qwen3‑бекбонов с 0.6B, 1.7B и 4B параметров BitNet Distillation достигает точности, сопоставимой с FP16, тогда как прямая 1.58‑битная база отстаёт сильнее по мере роста модели.

На CPU студенты показывают примерно 2.65× ускорение по tokens‑per‑second и около 10× снижение потребления памяти. Активации квантованы в INT8, а градиенты через квантизатор проходят через Straight Through Estimator. Фреймворк совместим с методами постобучения GPTQ и AWQ для дополнительных выигрышей. Дистилляция от более сильного учителя обычно даёт лучший результат, поэтому имеет смысл сочетать малые 1.58‑битовые студенты с большими FP16 учителями при наличии таких моделей.

Практические выводы и развёртывание

BitNet Distillation — прагматичный путь к развёртыванию 1.58‑битовых моделей без полного переобучения. Трёхэтапный дизайн — вставка SubLN, короткое продолженное предобучение и двойная дистилляция — целенаправленно решает известные проблемы при экстремальной квантизации. Заявленные 10× сокращение памяти и ~2.65× ускорение на CPU при близкой к FP16 точности делают BitDistill привлекательным для on‑premise, edge и других сценариев с ограниченными ресурсами. Проект содержит оптимизированные CPU и GPU ядра в bitnet.cpp, что снижает риски интеграции в продакшен.

Подробности в технической статье: https://arxiv.org/pdf/2510.13998 и в репозитории проекта на GitHub.