В README проекта vramkit, опубликованном 17 октября 2026 года, авторы описали два способа сокращать память, занятую при инференсе языковых моделей: lossless-кодирование уже квантованных весов и квантование KV-кэша. В тесте на Qwen2.5-0.5B они заявляют о двукратном уменьшении KV-кэша при росте perplexity на 0,1% для выбранной схемы. Все цифры приведены в README проекта и являются результатами авторов, а не независимого тестирования.
Два разных объекта сжатия
Веса — параметры модели, используемые при инференсе. KV-кэш хранит ключи и значения, накопленные в механизме attention по мере обработки последовательности. Для весов vramkit кодирует уже квантованные данные; для KV-кэша авторы сравнивают схемы квантования ключей и значений.
Весовой кодек: 2,676 бита на вес
README описывает для весов 32-битный range coder с двумерной адаптивной контекстной моделью: при кодировании 4-битного веса учитываются соседние элементы слева и сверху. Для тензора self_attn.o_proj модели Qwen2.5-0.5B в формате int4 авторы указывают 2,676 бита на вес против 4 бит у упакованного исходного представления — сокращение на 33,1% относительно этой базы. Восстановление авторы называют побитно точным.
Для того же тензора в таблице указаны 2,717 бита на вес у zstd -19 и 2,708 у xz -9e. README сообщает, что результат vramkit меньше этих значений соответственно на 1,5% и 1,2%. Это сравнение относится к одному тензору Qwen2.5-0.5B и указанным настройкам архиваторов; оно не показывает, что все веса любой модели сожмутся в той же пропорции.
Для ключей и значений нужны разные оси
В KV-кэше ключи и значения можно квантовать по разным осям. Авторы объясняют выбор для ключей устойчивыми выбросами в отдельных каналах: при масштабировании по токенам такие выбросы могут влиять на квантование остальных значений. В представленной схеме ключи квантуются по каналам, а значения — по токенам.
В таблице README для Qwen2.5-0.5B вариант int8 с поканальным квантованием ключей и поточным квантованием значений уменьшает память кэша в 2 раза; изменение perplexity относительно fp32 KV составляет +0,1%. При том же заявленном размере кэша наивный вариант int8, где и ключи, и значения квантуются по токенам, даёт +4,6%.
Другие строки таблицы показывают компромисс между размером кэша и метрикой: int8-ключи по каналам вместе с int4-значениями по токенам дают уменьшение памяти в 2,67 раза и рост perplexity на 1,4%. При int4 и для ключей, и для значений заявлено четырёхкратное уменьшение памяти, но рост perplexity составляет 25,6%. Эти цифры описывают разные схемы квантования, а не универсальную зависимость для всех моделей.
Условия и ограничения проверки
По README, авторы провели измерения на MacBook с Apple Silicon и CPU PyTorch. Для оценки KV-кэша они применяли сжатие ко всем слоям и усредняли perplexity по четырём раздельным окнам прозы. README также сообщает, что прежнюю оценку на повторяющемся тексте и по cosine similarity заменили на этот тест; прежние показатели качества поэтому не следует смешивать с текущей таблицей.
Результаты остаются авторскими измерениями на Qwen2.5-0.5B: независимой проверки в доступных материалах нет. В README полноценное GPU-ядро для работы со сжатым представлением в attention, включая варианты Metal или ROCm, и проверка моделей 7B+ названы следующими шагами проекта. Поэтому таблица пока не подтверждает выигрыш скорости инференса или аналогичное качество на более крупных моделях.








