🔬🧪 Метод и эксперименты
Рассказ начинается с рецепта успешной квантизации в 2 бита модельки HY-1.8B-Instruct. Первым делом они меняют сетку квантизации с (-2, -1, 0, 1) на симметричную (-1.5, -0.5, 0.5, 1.5). Затем все это дело они тюнят примерно на 10% бюджета BitNet, предварительно настраивая параметры на меньшей подвыборке данных. Кроме того, отмечают важность отбора хороших данных. В итоге удается добиться довольно умеренной просадки по сравнению с базовой моделью и качества на уровне 4-битной PTQ. Полученная крохотулька выдает до 800 токенов в секунду на М4 и до 300 на Mediateковском проце.
Затем идет описание тернарной квантизации через Tequilla/Sherry.
В Tequilla предлагается решение неинформативных градиентов для весов, обращенных в 0, а именно на каждый зануленный вес добавляется bias, позволяющий пробрасывать градиент к весам.
В Sherry предлается 3:4 (3 ненулевых веса из 4) разреженный паттерн для хранения весов, и 4 подряд идущих веса пакуются в 5 бит, давая 1.25 бит на параметр в среднем. И им удается сделать такое отображение hardware-friendly.
Затем команда дообучает Llama-3.2 1B и 3B в этих форматах и получает качество лучше, чем при использовании BitNet рецепта.
Для PTQ предлагают LeptoQuant, оптимизирующий масштаб квантизации с учетом выбросов, что дает некоторое улучшение для FP8 квантизации.
Спекулятивный декодинг суть EAGLE-3.
Еще у них реализован SpecExit - выход из ризонинга через интеграцию промпта завершения рассуждения в процесс генерации, помогающий бороться с проблемой избыточно длинных словесных потоков от рассуждающих моделек.
Для прунинга токенов предлагают разные методы под разные модальности. Для изображений предлагается IDPruner, для аудио - Samp. Оно как-то отбирает токены стремясь максимизировать разнообразие и убирает наиболее похожие токены.
💡 Выводы
Выглядит сама по себе либа довольно интересно. Вполне годится для приготовления небольших моделек под edge inference.
Post #651
1.85K
- ❤ 3