Своя модель

LLM на ноутбуке без видеокарты: что реально работает

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

Вопрос обычно звучит так: «У меня офисный ноутбук, 16 гигабайт памяти, видеокарта встроенная. Реально запустить нейросеть?» Ответ — да, реально, и именно это делает вопрос коварным. Запустится почти всё. Пользоваться можно будет далеко не всем.

Разница между «запустилось» и «работает» измеряется в токенах в секунду, и её можно посчитать заранее, не скачивая ни одной модели. Ниже — арифметика, порог применимости и то, что делать с интегрированной графикой, которая помогает не так, как ожидается.

#Что понадобится

  • Знание объёма и типа оперативной памяти. На Windows: Get-CimInstance Win32_PhysicalMemory | Select-Object Capacity, Speed, BankLabel. На Linux: sudo lshw -short -C memory. Смотрите две вещи — частоту и число заполненных слотов.
  • Свободное место на диске: несколько гигабайт на модель.
  • Ollama или llama.cpp. Инструмент здесь почти не важен: и тот, и другой считают на процессоре одинаково.

Число заполненных слотов — не формальность. Ноутбук с одной планкой памяти работает в одноканальном режиме и отдаёт вдвое меньшую пропускную способность, чем тот же ноутбук с двумя планками. Для локальной модели это ровно двукратная разница в скорости, и это самый дешёвый апгрейд из возможных.

#Шаг 1. Посчитать свой потолок

Генерация каждого токена требует прочитать все веса модели из памяти. Значит, теоретический максимум скорости равен пропускной способности памяти, делённой на размер модели:

потолок в токенах/с = пропускная способность (ГБ/с) ÷ вес модели (ГБ)

Пропускная способность считается так: частота памяти × 8 байт × число каналов. Двухканальная DDR4-3200 даёт примерно 51 ГБ/с, двухканальная DDR5-5600 — около 90 ГБ/с, одноканальная DDR4-3200 — около 26 ГБ/с.

Реально достигается 40–60% теоретического потолка: часть пропускной способности съедают промахи кэша, накладные расходы и работа операционной системы.

#Шаг 2. Найти свой класс модели в таблице

Таблица ниже посчитана по формуле выше для двухканальной DDR4-3200 (51 ГБ/с) — типичной конфигурации рабочего ноутбука. Это расчётные оценки, а не замеры на конкретной машине: колонка «реалистично» — половина теоретического потолка, что соответствует наблюдаемому на практике диапазону. Свои числа получите замером из шага 4.

Модель, Q4_K_M Вес Теоретический потолок Реалистично Вывод
Qwen2.5 1.5B ~1,0 ГБ ~51 ток/с 20–30 ток/с комфортно
Llama 3.2 3B ~2,0 ГБ ~26 ток/с 10–15 ток/с рабочий вариант
Qwen2.5 7B ~4,7 ГБ ~11 ток/с 4–6 ток/с терпимо для коротких ответов
Qwen2.5 14B ~9,0 ГБ ~5,7 ток/с 2–3 ток/с пользоваться невозможно

Что здесь смотреть: не абсолютные числа, а то, как быстро они падают. Переход от 3B к 7B — это не «чуть медленнее», это в два с половиной раза. Переход к 14B выводит модель за порог применимости полностью.

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

#Шаг 3. Понять, где порог

Порог применимости не абстрактный, он привязан к тому, как человек читает.

  • менее 3 токенов в секунду — текст появляется медленнее, чем вы его читаете. Ждать ответ приходится осознанно. Для интерактивной работы непригодно;
  • 5–10 токенов в секунду — примерно темп неторопливой речи. Терпимо для коротких ответов, мучительно для длинных;
  • 15–30 токенов в секунду — быстрее, чем вы успеваете читать. Ощущается нормально.

Отдельная и часто более болезненная величина — время до первого токена. На процессоре обработка длинного запроса идёт медленно: отправив документ на две страницы, вы будете ждать начала ответа десятки секунд, независимо от того, с какой скоростью потом пойдёт генерация. Разбор обеих величин — в материале о том, сколько токенов в секунду считать нормой.

Практический вывод: на ноутбуке без дискретной видеокарты рабочий диапазон — модели до 3–4 миллиардов параметров. Модель 7B возможна, если вы готовы формулировать запросы коротко и получать короткие ответы. Всё, что крупнее, — не «медленно», а неприменимо.

#Шаг 4. Замерить, а не поверить

llama-bench -m models/llama-3.2-3b-instruct-q4_k_m.gguf -ngl 0 -p 128 -n 128 -t 4

Флаг -ngl 0 явно отключает видеокарту, -t 4 задаёт число потоков — начните с числа физических ядер. Утилита выдаст два числа: скорость обработки промпта (pp) и скорость генерации (tg). Второе — то, что вы ощущаете как «скорость ответа».

Через Ollama то же самое получается флагом --verbose при запросе.

#Шаг 5. Разобраться с интегрированной графикой

Интуиция подсказывает, что встроенный графический процессор должен ускорить дело. На практике выигрыш есть, но не там, где ожидается.

Интегрированная графика использует ту же оперативную память, что и процессор, — и упирается в ту же пропускную способность. Поэтому скорость генерации она почти не улучшает: узкое место осталось прежним. А вот обработку промпта, которая ограничена вычислениями, а не памятью, iGPU ускоряет заметно — иногда в несколько раз. Если вы работаете с длинными запросами, это ощутимо сокращает время до первого токена.

Задействуется она через специфический бэкенд: Vulkan в llama.cpp работает почти везде, у Intel и AMD есть собственные линии инструментов. Ожидать удвоения скорости генерации от этого не стоит.

#Проверка результата

Всё настроено правильно, если выполняются три условия. Первое: замеренная скорость генерации попадает в расчётный диапазон из таблицы — значит, вы не упёрлись во что-то постороннее. Второе: загрузка процессора при генерации близка к полной, но не стопроцентная — при слишком большом числе потоков она падает из-за конкуренции. Третье: система не начала использовать файл подкачки, что видно по резкому падению скорости и активности диска.

#Что может пойти не так

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

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

Работа от батареи режет частоты. На большинстве ноутбуков в режиме энергосбережения процессор работает медленнее. Замеряйте в том режиме, в котором собираетесь пользоваться.

Слишком много потоков. Значение -t, равное числу логических потоков, обычно медленнее, чем равное числу физических ядер. Проверьте оба варианта.

Выбрана слишком жёсткая квантизация. Соблазн взять модель 7B в Q2, чтобы «влезла и была умнее», приводит к худшему из двух миров: и медленно, и неточно. Почему ниже Q4 опускаться не стоит — в разборе квантизации LLM.

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

#Какую модель поставить на ноутбук с 16 ГБ памяти без видеокарты?

Модель класса 3–4 миллиарда параметров в квантизации Q4_K_M. Она занимает около двух гигабайт, оставляет память системе и даёт скорость на уровне неторопливого чтения. Подборка конкретных вариантов — в таблице моделей для слабого железа.

#Поможет ли добавить оперативной памяти?

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

#Почему модель отвечает быстро на короткие вопросы и медленно на длинные?

Это две разные фазы. Обработка вашего запроса ограничена вычислительной мощностью, генерация ответа — пропускной способностью памяти. Длинный запрос удлиняет первую фазу, длинный ответ — вторую. Механику разбирает материал о том, от чего зависит скорость LLM на процессоре.

#Стоит ли выгружать часть слоёв на встроенную графику?

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

#Будет ли локальная модель на ноутбуке сравнима с облачной?

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

Хотите ИИ, который помнит вас?

Persona держит контекст между чатами и работает на вашем железе — если развернуть её у себя и подключить локальную модель.

Создать аккаунт