О RAM никто не говорит: модель на 4.9 ГБ заняла 7.0 ГБ до первого ответа
VRAM достаются споры; RAM решает, что загрузится. Экскурсия по двум квартирам, которые снимает модель, с одной крутилкой для контекста — и налогом в 43%, замеренным вживую.
■ space · экскурсия по квартирам
«Модель на 4.9 ГБ» заняла 7.0 ГБ до первого токена — контекстный налог 43%. Веса никогда не были бюджетом; бюджетом был контекст.
Правило большого пальца: RAM = файл модели + KV-кэш + 4 ГБ. 16 ГБ — комфортно для 7–8B в Q4; 32 ГБ делают 14–32B повседневной машиной.
Поместилось в VRAM — быстро. Поместилось в RAM — работает. Покупайте RAM под всё, что когда-либо загрузите.
НОЧЬ, КОГДА 4.9 СТАЛО 7.0
Коробка: Ryzen, 32 ГБ RAM, RTX 3060 с 12 ГБ VRAM. Тянул: llama3.1:8b, помеченный как 4.9 ГБ. Три команды, один экран:
$ ollama ps
NAME SIZE PROCESSOR CONTEXT
llama3.1:8b 7.0 GB 100% GPU 32,768
$ nvidia-smi
… 7963 MiB / 12288 MiB …
$ free -h
Mem: 31 Gi
скрин, переписанный вручную — пиксели остались на стендовой коробке; числа — вот протокол
«Модель на 4.9 ГБ» зарезервировала 7.0 ГБ ещё до ответа на первый промпт — контекстный налог 43% — и оставила себе 7 963 из 12 288 MiB.
Веса никогда не были бюджетом. Контекст — был.
VRAM продаёт мечту. RAM решает, запустится ли модель вообще — и сколько контекста переживёт, если да.
ПЛАН КВАРТИРЫ
Каждая загруженная модель снимает две квартиры сразу. Выберите класс модели, покрутите контекст, смотрите, как заполняются обе. Три измеренные строки ниже заякоривают крутилку.
зарезервировано на GPU: 7.0 ГБ (+43% к файлу)
100% GPU — квартира на 12 ГБ держит. Квартира на 32 ГБ и не замечает.
якорь: измеренная строка — файл 4.9 ГБ + контекст 2.1 ГБ при 32k
КВАРТИРА НА 12 ГБ · VRAM
аренда: 12 288 MiB
КВАРТИРА НА 32 ГБ · СИСТЕМНАЯ RAM
аренда: 32 ГБ · и не замечает
комнаты не в масштабе друг к другу — каждая квартира нарисована по своей аренде
ЧТО ТАКОЕ ЛИШНИЕ ГИГАБАЙТЫ
В llama.cpp memory notes прописана арифметика, которую страницы загрузок опускают: память всего = веса модели + KV-кэш + вычислительный буфер. Постоянен только первый член.
Ollama оборачивает llama.cpp — тот же закон. ollama ps: 7.0 ГБ для тега в 4.9 ГБ при окне 32 000 токенов, всё резидентно на GPU.
| Класс модели (Q4) | Скачивание | Загружена + ctx 32k | На 12 ГБ VRAM | На 32 ГБ RAM |
|---|---|---|---|---|
| 7–8B (llama3.1:8b) | 4.9 ГБ | 7.0 ГБ (измерено) | 100% GPU, занято ~8 GiB | и не замечает |
| 13–14B (qwen2.5:14b) | 9.0 ГБ | ~12 ГБ | начинается offload | норм |
| 27–32B (gemma3:27b) | 17 ГБ | ~20+ ГБ | CPU тащит вес | единственная причина, почему оно работает |
Перечитайте последние две строки. На VRAM 14B при реальном контексте — это работа с расщеплённым offload; 27B — невозможно. На 32 ГБ RAM — всего лишь медленно.
Невозможно против медленно — вся практическая разница между RAM и VRAM. Offload едет по PCIe: FAQ Ollama честна — пропускная способность падает резко, когда доля GPU сжимается.
Никто сознательно этот компромисс не выбирает. Он происходит молча, слой за слоем — симптом звучит просто: «локальные модели переоценены».
Вот зачем существует лестница квантов: Q4 укладывает арифметику в железо, которое у людей есть. Две «одинаковые» конфигурации 8B, разные длины контекста — и совершенно разные машины.
Квантованная модель — не компромисс. Это признание, что память была настоящим бюджетом всегда.
ЧЕСТНАЯ СМЕТА
Что сломалось или удивило меня за написание этого текста, по порядку:
- Само число 43%. Я ожидал, что модель 8B займёт «примерно размер своего файла». Она зарезервировала 7.0 ГБ при скачивании в 4.9 ГБ. Если это удивило меня, то удивит всякого, кто читает спек-листы вместо вывода
ps. - Сессия скринов. Мой первый скрин ухватил не то окно; второй сработал — его и перепечатывает блок квитанции. Квитанции — это флоу, а не вайб — цикл тянуть → скрить →
ollama rmдержит диск честным. - Что не сломалось: GPU ни разу не перелился. 8B при контексте 32k на 12 ГБ — действительно комфортно. Карта в порядке. Дискурс вокруг карты — вот что откалибровано криво.
GPU всё ещё важны — строка 100% GPU есть причина, по которой генерация ощущалась мгновенной. Но GPU — второй вопрос. Выбор раннера приходит после вопроса, что влезает.
ПРАВИЛО, КОТОРОЕ СТОИТ ХРАНИТЬ
RAM = файл модели + KV-кэш под ваше реальное окно + 4 ГБ на то, что вы компьютер. 7–8B Q4: 16 ГБ — комфортно. 14B–32B: 32 ГБ — вот точка.
VRAM покупайте за скорость, которую хотите, на контексте, который используете; RAM — под всё, что когда-либо загрузите.
Посмотрите
ollama psодин раз — и религия спек-листов тихо заканчивается.
Два вопроса к вашему следующему dev-ящику: VRAM под бенчмарки, которые вы будете постить, или RAM под модели, которые будете запускать? И сколько ночных тяганий в 2 утра дожили до завтрака? Мои — нет.
конец экскурсии по квартирам · ничего не fetched · всё локально