Gemma 4 E2B / E4B назначает каждому слову отдельную «поуровневую эмбеддинг-таблицу» (PLE) на каждом уровне, занимая 35.2% параметров в E4B и 5.64 ГБ в формате BF16. OPTIC хранит для каждого слова только один набор квантованных кодов, общих для всех уровней, а на каждом уровне использует небольшой аффинный декодер для восстановления; кодовая книга и декодеры обучаются на основе ошибки проекции выхода PLE, а не самих хранимых векторов.
Лайки 14 · Звезды на GitHub 5
Обоснование
- Авторы заявляют, что при сжатии примерно в 100 раз модель E4B в формате BF16 сохраняет 97.8% производительности на 7 бенчмарках, тогда как самый сильный из шести обычных методов (векторное квантование) сохраняет лишь 66.3%; аналогичное сжатие в официальной версии W4A16 (веса 4 бита) сохраняет 96.9%.
- Есть данные и для более экстремального сжатия: при сжатии в 594 раз сохраняется 90.5%, при сжатии в 1002 раз — 84.1%, а при сжатии в 1002 раз размер PLE для E4B составляет всего 5.6 МБ (по данным авторов).
- Экономится видеопамять, почти не снижая скорость: в README указано, что на одной карте RTX 4090 с фиксированным KV-кэшем размером 1 ГиБ потребление видеопамяти весами BF16 снижается на 29.7%, а весами W4A16 — на 43.1%, при этом время выполнения увеличивается максимум на 0.40% / 0.69%; vLLM сообщает о снижении потребления видеопамяти моделью с 15.3 ГиБ до примерно 10 ГиБ.
- Это напрямую связано с развертыванием на конечных устройствах: серия E для Gemma 4 изначально ориентирована на устройства с малым объемом видеопамяти, а таблицы эмбеддингов являются самой объемной частью, которую сложнее всего сжать стандартными методами квантования.
Использование
- Код: github.com/VILA-Lab/optic (лицензия Apache-2.0); сжатые артефакты: Hugging Face zcahjl3/gemma-4-E4B-it-OPTIC-100x (apache-2.0, один файл compressed_ple.npz), которые автоматически загружаются вместе с указанной версией исходной модели Gemma 4 E4B при первом запуске.
- Требуется Python 3.12 и видеокарта CUDA; в README указано, что 24 ГиБ видеопамяти достаточно для короткой генерации с моделью BF16 E4B: выполните pip install -r requirements-inference.txt && pip install -e . , затем python examples/generate.py --prompt "…"; добавление флага --image позволяет выполнять задачи визуального вопросно-ответного взаимодействия.
- vLLM (в документации требуется версия 0.19.1): укажите переменную окружения PLE_OPTIC_ARTIFACT на загруженный файл npz и запустите стандартную команду vllm serve google/gemma-4-E4B-it; плагин, установленный из репозитория, заменит плотную таблицу PLE при загрузке; для уже загруженных моделей можно использовать функцию install_compact_ple(model, artifact).
- Воспроизведение результатов статьи: ple-eval evaluate --gpus 0 --run-id optic-e4b для запуска 7 бенчмарков; для обучения собственной версии сжатия см. docs/fitting.md.
Риски
- Метод применим только к моделям с поуровневыми эмбеддингами, таким как Gemma 4 E2B / E4B; остальные веса не сжимаются; опубликован только артефакт сжатия в 100 раз для E4B в формате BF16, для E2B и более высоких коэффициентов сжатия необходимо выполнять обучение самостоятельно.
- В vLLM сжатые PLE поддерживают только тензорный параллелизм 1; данные о видеопамяти и скорости получены только на одной карте RTX 4090 и являются отчетами авторов.
Примечание редактора: «сжатие в 100 раз» относится к самим таблицам эмбеддингов, а не ко всей модели; общее сокращение потребления видеопамяти составляет примерно тридцать процентов.