Алексей Маркин рабочий журнал

ищет по заголовкам и тексту записей и заметок

заметка 15 сентября 2026 г. · 2 мин
Все заметки

Сколько видеопамяти нужно для локальной нейросети

Веса занимают число параметров, умноженное на байты на параметр, а сверху растёт кэш контекста. Квантование сжимает только веса, и на длинном разговоре кэш может оказаться больше модели.

Короткий ответ: видеопамять уходит на веса модели и на контекст. Веса занимают число параметров, умноженное на байты на параметр: в 16 битах это 2 байта, в 8 битах — 1, после квантования в 4 бита — около половины. Модель на 8 миллиардов параметров займёт около 16, 8 и 4–5 ГБ. Кэш контекста добавляется сверху и растёт с длиной разговора.

Открытая модель — это файл с весами, и первое слагаемое видно по его размеру. Второе — нет. Для каждого токена в контексте движок держит во всех слоях ключи и значения (KV cache). На токен это 2 × слои × головы ключей-значений × размер головы × байты. У Llama 3.1 8B 32 слоя и 8 таких голов размером 128: в 16 битах выходит 131 072 байта на токен. Тридцать две тысячи токенов — около 4 ГБ, полные 128 тысяч — около 17 ГБ, больше самих весов. Одновременные разговоры умножают кэш.

Так проявляется то, что модель ничего не помнит: весь разговор лежит на входе, и под каждый токен нужна память.

Квантование — хранение весов меньшим числом бит. Бит выходит чуть больше четырёх: рядом хранятся масштабы блоков, и тип Q4_K в llama.cpp занимает 4,5 бита на вес. Кэш контекста оно не трогает, его сжимают отдельной настройкой движка, если она есть.

Чем платят. Точностью, и при 4 битах обычно немного: в большой серии экспериментов при одном объёме памяти 4 бита почти всегда давали лучшую точность, а квантованная крупная модель способна обойти более мелкую. Бывает, что и скоростью, если движок и железо не поддерживают формат: тогда сжатая модель работает медленнее.

Моё правило при фиксированной памяти: модель крупнее в 4 битах, а не мельче в 16. Потом кэш на нужную длину контекста и запас под движок. Не влезает — сокращаю контекст, а не опускаюсь ниже 4 бит.

Правило держится на общих тестах, частью на моделях прошлых поколений; на вашей задаче сжатая модель может просесть сильнее, и это видно только на своих примерах. И если своя модель не окупается, расчёт гигабайтов отвечает не на тот вопрос: сколько памяти нужно, он говорит точно, а нужна ли карта вообще — нет.