Содержание
Коротко
На Habr вышел длинный обзор исследований, где вместо гигабайтных матриц весов предлагают хранить короткий «рецепт» — правило, по которому нужные числа можно собрать в момент работы. Это похоже на кулинарную карточку вместо морозилки, полной готовых тортов: места меньше, но перед подачей всё равно придётся готовить. Автор проходит путь от гиперсетей и координатных генераторов до Kilobyte Models и SeedLM для LLM и отдельно считает три бюджета: диск, рабочая память и время вычислений.
Что произошло
Обычная схема знакома каждому, кто ставил локальную модель: файл весов на диске, затем загрузка в видеопамять — целиком или блоками. Для Qwen2.5-7B-Instruct в BF16 это уже около 15 ГБ; у гигантов вроде Kimi-K3 речь идёт о триллионах параметров и терабайтах даже при грубом четырёхбитном учёте. Обзор спрашивает иначе: можно ли пользоваться сетью, не храня матрицу как список всех элементов, а восстановив её из компактного описания?
Самый прямой ход — гиперсеть: маленькая сеть порождает веса большой. На Wide ResNet для CIFAR-10 число параметров падает с миллионов до долей миллиона, но ошибка классификации растёт. Позже появляются координатные предикторы вроде NeRN и Big2Small: на вход идут индексы слоя и канала, на выход — ядро свёртки. На ResNet18 и ImageNet точность почти сохраняется (примерно 71,5% → 71,2%), а файл сжимается сильнее, если рецепт сочетают с квантизацией — правда, задержка вывода в одном из замеров выросла примерно на 30%.
Дальше рецепт укорачивают ещё сильнее. В Kilobyte Models хранят зерно генератора (seed) и короткий обучаемый латент; для небольшой CNN описание укладывается примерно в два килобайта при точности, близкой к полной модели на MNIST. SeedLM переносит идею на уже обученную LLM: у каждого блока весов своё зерно и коэффициенты смеси на базе регистра сдвига. На Llama 2-7B неопределённость предсказания (perplexity) на WikiText-2 чуть портится при 3–4 битах на вес; на Llama 3-70B та же схема бьёт сильнее. Seed-Q и AWSRC добавляют неравномерные биты и компактную поправку к уже сжатой основе — качество подтягивается, но «магического архиватора для любой готовой модели» из этого не получается.
Почему это важно
Сжатие на диске и экономия рабочей памяти — разные обещания. Можно хранить рецепт в килобайтах, а перед проходом всё равно развернуть плотные веса и занять столько же видеопамяти, сколько и раньше. Можно генерировать блок, умножить, выбросить — пик памяти ниже, зато каждое восстановление добавляет вычисления. У LLM сверху ещё кэш ключей и значений внимания по предыдущим токенам: он живёт своей жизнью и от «красивого рецепта» сам не исчезает.
Есть и жёсткий потолок выразительности. Короткое описание при фиксированном декодере выбирает лишь крошечную долю всех возможных матриц. Поэтому Kilobyte Models учат сеть внутри семейства, которое генератор умеет воспроизводить, а не упаковывают произвольный снимок весов без потерь. Для разработчика, который мечтает «запустить LLM на каждом чайнике», как когда‑то игру Doom, это трезвый фильтр: часть работ даёт аппаратный выигрыш на ПЛИС (FPGA), часть — аккуратные цифры на ResNet, и почти нигде нет готового ответа «скачал рецепт — получил ChatGPT в браузере».
На практике
Текст — обзор чужих статей и препринтов, а не инструкция «выкинуть safetensors». Имеет смысл читать его как карту компромиссов, если вы выбираете формат весов, смотрите на слабые и встраиваемые устройства или сравниваете квантизацию с более экзотическими схемами.
- Разделяйте три бюджета: размер файла, пик памяти во время работы и цена восстановления весов на каждом проходе.
- Не равняйте «меньше обучаемых параметров» и «меньше гигабайт на диске» — в рецепт входят латенты, индексы, масштабы и оставшиеся обычные веса.
- Для уже обученной LLM смотрите блочные схемы вроде
SeedLM: экономия локальна, а потеря качества зависит от размера модели. - Если нужен минимум на диске без ускорения вывода — это нормальный исход; авторы
Kilobyte Modelsпрямо пишут, что вычисления прохода они не сжимают. - Прежде чем обещать «модель в два килобайта», проверьте, обучалась ли она под этот генератор или кто‑то пытается сжать чужой снимок весов после обучения.
Итог
Идея рецепта вместо полной матрицы уже не фантазия: гиперсети, координатные генераторы, зерно и латенты дают реальную компактность на диске и иногда помогают железу меньше читать память. Но компактность почти всегда покупается качеством, временем восстановления или узким семейством моделей. До «LLM на чайнике» путь ещё длинный — зато карта, куда смотреть в литературе, на Habr собрана аккуратно.



Комментарии