С такой литературой не подскажу. Возможно получится вдоховиться математикой из VQ-VAE (если упростить: кодируют изображение векторами из небольшого словаря, потом восстанавливают обратно) и попробовать перенести на свою задачу. Но в таком виде не работает условие "без НС".
Идея частично перекликается с тем, что предложили авторы QLoRA и можно подумать в эту сторону.
Если пытаться напрямую дистиллить знания к вантизованную модель (если я правильно понял идею), могут быть сложности с тем, чтоб докинуть градиенты до квантизованных весов. Неочевидно как это сделать, когда веса уже лежат в целочисленных int8.
Подружить эту технику с дистилляцией можно в другую сторону - сначала отдистиллировать большую модель в маленькую, а потом квантизовать маленькую модельку. В зависимости от требований к скорости/точности.
Еще один вариант соблюсти требования по скорости/качеству: можно баллансировать скорость и качество по разному квантизуя разные слои сети. Например часть слоев в 8 бит, часть в 4 бита. Это скорее история не про LLM, но на более простых архитектурах могут получаться интересные результаты.
Все так, для 4х-битного будет:
8 слева, самое правое будет верхней границей диапазона - нулем;
9 справа, самое левое будет нижней границей диапазона - нулем.
Дальше по этому нулю мы их "склеиваем" и говорим что представление нуля у них общее.
Получаем:
7 значений меньше нуля;
8 значений больше нуля;
представления для нуля.
16 значений, уложились в 4 бита.
С такой литературой не подскажу. Возможно получится вдоховиться математикой из VQ-VAE (если упростить: кодируют изображение векторами из небольшого словаря, потом восстанавливают обратно) и попробовать перенести на свою задачу. Но в таком виде не работает условие "без НС".
Спасибо за интерес к теме!
Идея частично перекликается с тем, что предложили авторы QLoRA и можно подумать в эту сторону.
Если пытаться напрямую дистиллить знания к вантизованную модель (если я правильно понял идею), могут быть сложности с тем, чтоб докинуть градиенты до квантизованных весов. Неочевидно как это сделать, когда веса уже лежат в целочисленных int8.
Подружить эту технику с дистилляцией можно в другую сторону - сначала отдистиллировать большую модель в маленькую, а потом квантизовать маленькую модельку. В зависимости от требований к скорости/точности.
Еще один вариант соблюсти требования по скорости/качеству: можно баллансировать скорость и качество по разному квантизуя разные слои сети. Например часть слоев в 8 бит, часть в 4 бита. Это скорее история не про LLM, но на более простых архитектурах могут получаться интересные результаты.