Сколько VRAM нужно для локальной LLM: считаем до скачивания
Сколько VRAM нужно для локальной LLM: считаем до скачивания

Сколько VRAM нужно для локальной LLM: считаем до скачивания

Память под локальную модель считается по общему числу параметров, а не по активным, и никакая квантизация не превратит 816B в файл для одной потребительской карты. 816B при 4 битах на вес — это порядка 400 ГБ только под веса. Поэтому «открытые веса» и «запускается на вашем железе» — два разных утверждения, и на этой неделе разница стала видна наглядно.

Что произошло: четыре крупных релиза за 72 часа

За трое суток вышли четыре крупных релиза моделей с открытыми весами, но в 24 ГБ памяти влезла только одна — и это оказалась модель NVIDIA, что для рынка неожиданно. Ирония в том, что NVIDIA продаёт самые дорогие GPU, а её релиз единственный уместился в одну 24-гигабайтную карту.

Самый громкий анонс — в четверг: Meta выпустила Muse Spark Open. В официальном посте запуск описывается как агентный ИИ «на вашем десктопе». Десктоп в этом описании — два Mac Studio на M5 Ultra по 512 ГБ каждый; Apple обещает поставки «в конце октября» и до сих пор не назвала цену. Альтернативная конфигурация — четыре Studio по 256 ГБ, примерно 38 тысяч долларов.

Как посчитать, влезет ли модель в вашу карту

Считайте общий объём весов, а не активные параметры: активные отвечают за скорость инференса, но в память грузятся все параметры модели. Порядок действий такой:

  1. Возьмите из model card два числа: total parameters и active parameters.
  2. Определите целевую квантизацию: 16 бит — примерно 2 байта на параметр, 8 бит — 1 байт, 4 бита — около половины байта.
  3. Умножьте total parameters на байты на параметр — получите объём весов.
  4. Прибавьте KV-кэш: он растёт вместе с длиной контекста, а не с числом параметров.
  5. Добавьте запас на оверхед рантайма и фрагментацию памяти.
  6. Сравните итог с доступной памятью и вычтите систему, которая уже что-то занимает.

Пример на цифрах из Muse Spark Open: 816B total при 4 битах дают примерно 408 ГБ только весов. Это уже исключает любую одну потребительскую карту, а 42B active означают лишь то, что на каждом шаге считаются не все параметры — память они не экономят. Плюс заявленный контекст 1M: чем он длиннее, тем больше KV-кэш, и это отдельная статья расходов (почему нейросеть забывает детали, когда контекст заканчивается).

Больше разборов по ИИ и автоматизации — в канале @il_chum

Лицензия может стоить дороже железа

Открытые веса не означают свободу использования: у Muse Spark Open кастомная лицензия с двумя условиями. Первое — обязательная атрибуция «Built with Muse Spark Open» в продукте. Второе — отдельный договор с Meta после того, как выручка превысит 20 млн долларов. Для инди-разработчика это почти незаметно, для компании в росте — юридический пункт, который надо закладывать в бюджет заранее, а не после запуска.

Сравните с моделью NVIDIA, которая влезла в 24 ГБ: у неё тоже есть условия, и они тоже часть решения. При выборе модели порядок проверки такой: сначала лицензия, потом железо, потом бенчмарки. Если переставить местами, можно потратить недели на стенд под модель, которую нельзя использовать в коммерческом продукте.

Что делать, если 24 ГБ — ваш потолок

При бюджете в одну 24-гигабайтную карту ориентируйтесь на релизы, которые авторы явно проектировали под такое железо, и не гонитесь за флагманами недели. Практические правила:

  • Смотрите на total parameters, а не на active: это число определяет память.
  • Берите квантизацию 4 бита как рабочую, а не как компромисс — при 816B разница между 4 и 8 битами составляет сотни гигабайт.
  • Ограничивайте контекст явно. Длинный контекст увеличивает KV-кэш и ускоряет вылет по памяти.
  • Проверяйте, есть ли у модели вариант, который её авторы сами тестировали на потребительской карте.
  • Сравнивайте локальный сценарий с арендой GPU, если задача разовая: 38 тысяч долларов за четыре Mac Studio окупаются только при постоянной нагрузке (когда стоит собирать своё железо, а когда платить за облако).

Частые вопросы

Влезет ли модель на 816B в 24 ГБ? Нет. Даже в 4-битной квантизации её веса занимают порядка 400 ГБ, то есть нужен либо кластер из нескольких машин, либо облако.

Зачем указывать active parameters, если память считают по total? Active parameters показывают, сколько вычислений идёт на каждый токен, то есть скорость. Память определяется полным набором весов, который должен быть загружен всегда.

Можно ли запустить модель с контекстом 1M на домашнем железе? Проблема не только в весах: KV-кэш под такой контекст добавляет собственный объём памяти. На потребительской карте это нереалистично, даже если веса удалось ужать.


Больше разборов по ИИ и автоматизации — в канале: @il_chum