Discrete weights / Speech / 01
Ternary Whisper
Эксперимент с тернарными весами Whisper и честной проверкой качества распознавания речи.
- 192 весовые матрицы переведены в {-1, 0, +1}
- 198 180 864 тернарных весов, 81,98% всех весов
- CPU runtime занимает около 140 MiB
Проблема
Большие speech-модели сложно переносить на CPU и edge-среды. Простое сжатие файла недостаточно: нужно сохранить измеримое качество распознавания и построить runtime, который действительно использует дискретное представление.
Контекст и границы
Проект исследует Whisper через тернарные матрицы и сравнивает результат на LibriSpeech и long-form аудио. Все цифры рассматриваются вместе с контрольной fp16-моделью и ограничениями эксперимента.
Инженерный вклад
Дискретизация весов, компактный CPU runtime, воспроизводимый evaluation-контур и публичная фиксация как сильных, так и слабых результатов.
Код, формат весов, runtime и методика доступны публично. Результаты относятся только к зафиксированным наборам данных и конфигурации.
Системный контур
- 01 Whisper checkpoint
- 02 Ternary weight pack
- 03 CPU runtime
- 04 Audio pipeline
- 05 WER evaluation
Ключевые решения
Измерять модель, а не размер архива
Эксперимент оценивается по WER, long-form поведению и сравнению с fp16-контролем.
Хранить веса в нативной форме
Runtime работает с дискретным представлением, а не распаковывает его обратно в обычные матрицы перед каждым запуском.
Публиковать отрицательный результат
Пунктуация, multilingual-сценарии и отставание от matched fp16 control указаны как ограничения.
Результат
Тернарная модель показала нормализованный WER 2,7145% на test-clean и 7,3817% на test-other в опубликованном контуре.
Ограничение
Matched fp16 control остаётся примерно на 0,37 процентного пункта лучше; пунктуация и мультиязычность в текущем runtime не сохраняются.
Следующий шаг
Проверить более широкий набор языков, вернуть punctuation pipeline и сравнить скорость на нескольких классах CPU.
Открыть исходный код