Перейти к содержанию

Поставил 32 ГБ памяти, а нейросеть быстрее не стала: опыт с Ollama и GTX 1070

Я поставил в игровой компьютер 32 ГБ памяти вместо 16, в том числе ради локальной нейросети. Модели на 19 ГБ теперь помещаются целиком и не лезут в подкачку на диск. Логично ждать, что всё полетит.

Не полетело. Модель qwen3-30b выдавала 15–18 токенов в секунду, а стала выдавать 16–18. В посте про проверку памяти я обещал разобраться отдельно. Разобрался: поставил опыт, в котором одну и ту же модель по частям переносил с видеокарты на процессор. Самая интересная находка: если хотя бы треть модели уехала с видеокарты, скорость падает почти втрое.

Кому пригодится: тем, кто запускает нейросети дома через Ollama и думает, что докупить. Коротко: память нужна, чтобы модель поместилась, а скорость даёт видеопамять. Сначала посмотрите ollama ps, потом идите в магазин. Что такое токены и языковая модель — в уроках про токены и про нейросети и языковые модели.

Скорость модели падает с 30,2 до 11,4 токена в секунду, когда на видеокарте остаётся 64% модели

Что было и что стало

Компьютер: i5-10400F, GTX 1070 с 8 ГБ видеопамяти. Памяти было 16 ГБ, стало 32 ГБ, и на этой плате она работает на 2666 МГц. Ollama, контекст 16 тысяч токенов.

Замеры с 29.10.2026, после замены:

Модель На видеокарте Токенов в секунду До замены памяти
qwen3:4b — 46,5 —
qwen3-8b 100% 30,2 —
qwen3-30b-a3b 33% 18,6 (при повторе сегодня 16,4) 15–18
qwen3.8-27b 29% 2,5 2,9

Самая большая модель, qwen3.8-27b, даже просела: 2,5 против 2,9. Думаю, это разброс замеров, а не реальное ухудшение, но и ускорением тут не пахнет. Память убрала подкачку, и это хорошо. На скорости это почти не сказалось.

Опыт: двигаем модель с видеокарты на процессор

В Ollama можно указать параметр num_gpu: сколько слоёв модели положить в видеопамять. Остальные считает процессор. Я взял qwen3-8b, которая целиком влезает в видеокарту, и просто менял это число. Одна и та же модель, один и тот же запрос, 200 токенов ответа.

Слоёв на видеокарте Доля на видеокарте Токенов в секунду
все 100% 30,2
24 64% 11,4
16 45% 8,4
8 27% 6,1
0 0% 6,1

Вот это и есть ответ. Обратите внимание на первые две строки. Убрали 36% модели на процессор, а скорость упала в 2,6 раза. Дальше падать уже почти некуда. При 8 слоях на видеокарте модель работает ровно как совсем без неё.

Это похоже на конвейер. Слои считаются по очереди, и токен готов, только когда пройдёт все. Если часть конвейера быстрая, а часть медленная, общая скорость определяется медленной. Видеокарта ждёт процессор, и её сила простаивает.

Почему память не спасает

Модель — это миллиарды чисел. На каждый токен их надо прочитать из памяти и перемножить. Поэтому главный тормоз — не частота процессора, а то, с какой скоростью память успевает отдавать данные.

Сравним по паспорту. Моя оперативка в двух каналах: 2666 МТ/с × 8 байт × 2 канала, это примерно 43 ГБ/с. На 2400, где она работала сначала, было бы примерно 38 ГБ/с. А GTX 1070, карта 2016 года: 256 ГБ/с. Разница в шесть раз.

То есть переход с 2400 на 2666 двигает цифру 38 на 43. Видеокарта стоит на 256. Настройка памяти может дать проценты, но не разы.

Заметьте: больше памяти не значит быстрее память. 32 ГБ вместо 16 меняют объём, а ширину трубы меняют только частота и число каналов. И если у вас одна планка вместо двух, вот там скорость правда упадёт вдвое: проверьте, что каналов два (как — в посте про память).

Загадка: почему 30b быстрее, чем 8b на процессоре

Если процессор такой медленный, то почему qwen3-30b, у которой на видеокарте всего треть, даёт 16–18 токенов, а маленькая 8b при той же доле — 6?

Потому что название обманывает. У этой модели 30 миллиардов параметров, но приписка a3b означает, что на каждый токен активны только 3 миллиарда. Это устройство называется смесью экспертов (mixture of experts): модель большая, но для каждого слова включается только небольшая её часть. Занимает как большая, считает как маленькая.

Для домашнего компьютера вывод важный: при нехватке видеопамяти такие модели дают заметно больше, чем обычные того же веса. А вот загружаются долго: у меня 58 секунд против трёх с небольшим у 8b.

Как проверить у себя

Запустите модель и посмотрите в соседнем окне:

ollama run qwen3:8b "привет"
ollama ps

Колонка PROCESSOR скажет главное. 100% GPU значит, что всё хорошо. Что-то вроде 67%/33% CPU/GPU значит, что модель не влезла и вы теряете скорость в разы.

Скорость покажет тот же ollama run с ключом --verbose: строка eval rate после ответа.

Что делать, если не влезло:

  • взять модель поменьше или с более сильным сжатием: для видеокарты на 8 ГБ хорошо идут модели на 4–8 ГБ;
  • уменьшить контекст: он тоже занимает видеопамять;
  • взять модель со смесью экспертов, если задача позволяет;
  • докупать видеопамять, а не оперативку, когда хватит денег.

Итог

Было: 16 ГБ, крупные модели лезут в подкачку. Стало: 32 ГБ, подкачки нет, скорость та же. Память решила задачу «поместиться», но не задачу «быстрее».

Урок шире нейросетей: прежде чем покупать железо, найдите, что именно тормозит. Узкое место всегда одно, и всё, что вы улучшили помимо него, не даст ничего. Измерить можно бесплатно за полчаса. Я сначала купил, потом измерил, поэтому пишу этот пост.

Следующий шаг понятен — видеокарта. Когда будут деньги, замерю снова и расскажу. Если у вас есть замеры на других картах, поделитесь в комментариях: интересно сравнить.

Написать комментарий

Адрес почты не публикуется. Обязательные поля отмечены звёздочкой.

Возможно, вы не читали