Исследователи из компании Unsloth, которая специализируется на обучении и файнтюнинге языковых моделей, сжали нейросеть DeepSeek R1 на 80% от оригинального размера. В итоге языковая модель занимает 131 ГБ вместо 720 ГБ, а запускать её можно на более слабом железе. При этом производительность модели всё ещё остаётся на достаточно высоком уровне.

В своём проекте исследователи использовали китайскую большую языковую модель DeepSeek R1 с 671 млрд параметров. Её исходный размер составляет 720 ГБ, но её получилось сжать до 131 ГБ без значительной потери качества ответов.
Для этого инженеры использовали метод динамической квантизации (Dynamic Quantization). Веса высокопроизводительных слоёв нейросети оставили практически нетронутыми, а менее значимые веса, например, экспертные блоки, сжали до 1,58 бита по методу от исследователей Microsoft. В итоге получилось, что примерно 12% весов работают так же, как и в исходной версии DeepSeek R1, а оставшиеся 88% весов — значительно сжали.
Сжатую модель исследователи протестировали в сценарии разработки клона игры Flappy Bird. Нейросеть попросили создать проект по следующему техническому заданию:
-
Игра должна быть на основе библиотеки Pygame.
-
Фон может быть любого светлого цвета.
-
Нажатие на клавишу
Пробел
должно поднимать птицу выше. -
Форма птицы может быть в виде любой фигуры, а цвет — тёмным.
-
Земля на экране должна быть тёмно-коричневого или жёлтого цвета.
-
В правом верхнем углу экрана следует добавить счёт игрока, который увеличивается на одно значение, если пользователь успешно преодолевает препятствие.
-
В случае проигрыша на экране должен появляться рекордный счёт. Нажатие на клавишу
Q
илиEsc
будет закрывать игру, аПробел
— перезапускать.
Для генерации использовали сиды 3407, 3408, 3409 и значение температуры 0,6. Результат работы нейросетей оценивали по 10 критериям, включая, возможность запуска кода и точность соблюдения технического задания. Сжатая версия нейросети набрала 9 баллов из 10.
Результат оригинальной DeepSeek R1

Результат 1,58-битной версии DeepSeek R1

Помимо динамической квантизации, когда тщательно выбирают слои, которые можно сжать без потери качества, исследователи попробовали прямую квантизации. В этом случае сжимают все слои нейросети. В таком случае DeepSeek R1 во время генерации ответов уходит в бесконечные циклы и выдаёт нерелевантный результат. Исследователи подчёркивают, что для успешного сжатия важно не трогать значимые слои.
Для запуска DeepSeek R1 после сжатия до 1,58 бита можно использовать систему со 160 ГБ видеопамяти (две видеокарты Nvidia H100 Hopper). Этого хватит для работы со скоростью до 140 токенов в секунду.
Сжатые версии DeepSeek R1 исследователи опубликовали на площадке Hugging Face:
Сжатие |
Размер |
Оценка качества |
Ссылка |
1,58 бита |
131 ГБ |
|
|
1,73 бита |
158 ГБ |
|
|
2,22 бита |
183 ГБ |
|
|
2,51 бита |
212 ГБ |
|
В блоге компании поделились инструкциями по локальному запуску сжатых версий DeepSeek R1 с помощью llama.cpp, Ollama и vLLM.
Автор: daniilshat