Зайдіть у будь-яку гілку про локальні LLM — сперечатимуться про GPU. Бенчмарки VRAM, карти на 24 ГБ, CUDA проти ROCm, чи залишилась 3060 «народною картою». А число, яке насправді вирішує, запуститься ваша модель чи ні, сидить в іншому слоті — без бенчмарків і без маркетингу: скільки RAM у машини.
VRAM продає мрію. RAM вирішує, чи запуститься модель взагалі — і скільки контексту виживе, коли запуститься.
Я перевірив це на машині перед собою, поки писав цей пост: Ryzen-десктоп із 32 ГБ RAM і GeForce RTX 3060 із 12 ГБ VRAM. Завантажив llama3.1:8b — на сторінці вказано 4,9 ГБ. Дивіться, що він насправді зарезервував:

Весь аргумент вміщується в один екран. «Модель на 4,9 ГБ» зарезервувала 7,0 ГБ до того, як відповісти на перший промпт, — податок на контекст 43 % — і забрала собі 7 963 з 12 288 MiB VRAM. Ваги ніколи не були бюджетом. Бюджетом був контекст.
Звідки беруться зайві гігабайти
У нотатках про пам’ять llama.cpp розписана арифметика, яку сторінки завантаження опускають: вся пам’ять = ваги моделі + KV-кеш + обчислювальний буфер. Постійний лише перший член. KV-кеш росте лінійно з довжиною контексту, буфер — з розміром батчу. Ollama обгортає llama.cpp, тож закон той самий — саме тому ollama ps показав 7,0 ГБ для тега на 4,9 ГБ при вікні у 32 000 токенів, і все це в VRAM.
Квантована модель — не компроміс. Це визнання того, що пам’ять завжди й була справжнім бюджетом.
Тому взагалі існує драбина квантування GGUF. Q4 — не релігія; це спосіб укласти пам’ять у залізо, яке в людей є. І тому дві «ідентичні» зв’язки на 8B поводяться зовсім по-різному: модель та сама, довжина контексту інша, машини інші.
Таблиця, яку ніхто не заповнює перед покупкою
Три класи моделей, обидва типи пам’яті, карта на 12 ГБ і 32 ГБ RAM — конфігурація, яка реально стоїть у тисяч розробників:
| Клас моделі (Q4) | Завантаження | У пам’яті + 32k ctx | На 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 обидва просто повільні. Ця різниця — між «неможливо» і «повільно» — і є вся практична різниця між VRAM і RAM. Помістилося у VRAM — швидко. Помістилося у RAM — працює. Не помістилося ніде — ви свопитесь на NVMe, і час втрачає сенс.
Offload іде через PCIe, і FAQ Ollama чесно називає ціну: шари, що не помістилися у GPU, рахуються на CPU, і пропускна здатність падає разом із часткою GPU. Цей компроміс ніхто не обирає свідомо. Він наступає тихо, шар за шаром, а симптом звучить як «локальні моделі переоцінені».
Чесна бухгалтерія
Що зламалося чи здивувало, поки я писав цей текст, по порядку:
- Саме число 43 %. Я чекав, що 8B займе «приблизно розмір свого файла». Він резервував 7,0 ГБ при 4,9 ГБ завантаження. Якщо мене це здивувало — це здивує кожного, хто читає специфікації замість
ps. - Сесія зі скріншотами. Перша спроба впіймала не те вікно. Друга спрацювала — вона вище. Докази — це процес, а не вайб, і цикл pull → знімок →
ollama rmтримає диск чесним. - Що не зламалося: GPU жодного разу не переповнився. 8B при контексті 32k на 12 ГБ — справді комфортно. Карта в порядку. Неправильно відкалібрований дискурс навколо карти.
Ніщо з цього не значить, що GPU не важливі — рядок 100 % GPU на знімку і є причиною, чому генерація відчувалася миттєвою. Це значить, що GPU — друге питання. Вибір між Ollama та llama.cpp робиться після того, як ви зрозуміли, що поміщається, а не до.
Правило, яке варто запам’ятати
Потрібно RAM = файл моделі + KV-кеш під реальний контекст + 4 ГБ на те, щоб залишатися комп’ютером. Для 7–8B у Q4 комфортні 16 ГБ. Для 14B–32B 32 ГБ перестають бути розкішшю і стають сенсом. VRAM купують за швидкість на потрібному вам контексті; RAM — за все, що ви колись завантажите.
Один погляд на
ollama ps— і релігія специфікацій тихо закінчується.
Підсумок, два питання. Збираючи наступну машину, ви купуєте VRAM заради бенчмарків, які постиш, — чи RAM заради моделей, які реально запустите? І чесно: скільки моделей, завантажених о другій ночі, ви видалили до сніданку? Я видалив сьогодні, прямо під час посту. Напишіть у коментарях, що я не сам такий — і по який бік лінії RAM/VRAM стоїть ваша збірка.
FAQ
Скільки RAM потрібно для локального LLM?
Розмір файлу моделі плюс контекст плюс ваш робочий стіл. 16 ГБ комфортні для моделей 7–8B у Q4; 32 ГБ перетворюють 14–32B з демо на повсякденний інструмент.
Що важливіше для локальних LLM: VRAM чи RAM?
VRAM вирішує швидкість, коли все в неї поміщається. RAM вирішує, чи запуститься модель взагалі і скільки контексту виживе. Offload через PCIe між ними — повільна середина, яку ніхто не любить.
Чому завантажена модель займає більше пам'яті, ніж її розмір для завантаження?
KV-кеш і обчислювальні буфери ростуть із довжиною контексту. У документації llama.cpp наведена арифметика: ваги + KV-кеш + обчислювальний буфер — і лише перше число є на сторінці завантаження.
— mrsaynothing
— mrsaynothing
Думки проходять навантажувальне тестування перед релізом. Здебільшого.
Обговорити пост на dev.to dev.to ↗
Наступний аргумент — на email
Один лист на пост. Погодьтеся — або рознесіть.
що це таке?SSH Permission Denied (publickey): справжнє виправлення
Читається добре? Таке я будую за гроші. найміть мене