llama.cpp на процессоре: запуск локальной модели без видеокарты
Как запустить llama.cpp только на CPU, какая модель реально пойдёт без видеокарты, почему всё упирается в пропускную способность памяти и каких скоростей ждать.
llama.cpp с самого начала делали ради этого сценария: запустить модель там, где нет дорогой видеокарты. Работает он и сегодня — вопрос только в том, какую модель брать и на какую скорость рассчитывать.
Ответ на второй вопрос обычно разочаровывает меньше, чем ожидают, но зависит не от того, о чём думают в первую очередь.
Что качать
Нужна CPU-сборка: архив вида llama-<номер>-bin-win-cpu-x64.zip со страницы релизов. Она не
требует ни CUDA, ни драйверов, распаковывается в папку и работает.
Про остальные варианты сборок и выбор под железо есть отдельная статья.
Запуск ничем не отличается:
llama-server.exe -m models/qwen3-4b-q4_k_m.gguf --port 8080
Ключ -ngl в CPU-сборке не нужен: выгружать слои некуда.
Что на самом деле ограничивает скорость
Здесь главное недоразумение темы. Люди смотрят на количество ядер и частоту процессора, а упирается всё обычно в память.
Генерация текста устроена так, что для каждого следующего токена нужно прочитать веса модели из оперативной памяти. Модель на 4 гигабайта — это 4 гигабайта чтения на каждый токен. Процессор при этом успевает посчитать быстрее, чем память успевает отдать данные, и простаивает.
Отсюда практические следствия, которые ломают привычную логику:
- быстрая память даёт больше прироста, чем более мощный процессор;
- двухканальный режим заметно лучше одноканального, а это вопрос того, как воткнуты планки;
- добавление ядер сверх некоторого числа почти ничего не меняет;
- модель меньшего размера ускоряет генерацию почти линейно, потому что читать надо меньше.
Какую модель брать
Правило простое: на процессоре размер важнее, чем где-либо ещё.
Модели на 3–4 миллиарда параметров в квантизации Q4_K_M — разумная точка старта. Они дают
несколько токенов в секунду на обычном ноутбуке, то есть текст появляется медленнее, чем
человек читает, но работать можно.
Модели на 7–8 миллиардов на процессоре идут заметно медленнее. Для коротких ответов терпимо, для длинных — уже испытание.
Всё, что крупнее, без видеокарты имеет смысл только если ты готов ждать минуты. Что означают
метки квантизации и почему Q4_K_M берут по умолчанию, разобрано в статье про
формат GGUF.
На процессоре сильнее всего чувствуется длина контекста. Модель обрабатывает весь поданный текст перед первым словом ответа, и на большом документе это ожидание занимает больше времени, чем сама генерация. Не подавай на CPU лишнего.
Чего ждать по скорости
Точных цифр называть не буду — они слишком зависят от памяти, поколения процессора и настроек. Порядок величин такой: маленькая модель на современном ноутбуке даёт скорость, при которой чат ощущается медленным, но пригодным. Средняя модель превращает каждый ответ в паузу на чай.
Померить своё стоит за пять минут: одна модель, один и тот же вопрос, смотришь токены в секунду. Это честнее любых чужих таблиц, потому что твоя память и твой процессор в этих таблицах не участвовали.
Где CPU перестаёт справляться
Разговор в чате на процессоре возможен. Агентские сценарии — гораздо хуже, и причина не в скорости как таковой.
Агент делает много шагов, и на каждом заново обрабатывает накопленный контекст: описания инструментов, историю, содержимое файлов. То, что в чате ощущается как «медленно», в многошаговой задаче умножается на число шагов. Плюс маленькая модель, которую ты вынужден взять ради скорости, хуже держит цель и путается в аргументах инструментов.
Поэтому честный ответ на вопрос «потяну ли я локального агента без видеокарты» звучит так: попробовать можно, но начинать надо с простых задач и коротких контекстов. Что даёт видеокарта и сколько памяти закладывать, разобрано отдельно.
Если видеокарты нет, а результат нужен
Есть промежуточный путь, который часто упускают. Локальная модель и облачная — не взаимоисключающий выбор: можно держать локальную для всего обычного, а на редкие тяжёлые задачи точечно подключать облачную по своему ключу.
Дока так и работает: локальная GGUF-модель ставится из интерфейса и подбирается под твоё железо, а облачную модель можно подключить отдельно, когда локальной не хватает. Для машины без видеокарты это разумнее, чем упираться в один вариант: обычная работа идёт локально и бесплатно, а тяжёлое не приходится ждать по десять минут.
Начать проще всего с маленькой модели на своих реальных задачах — скачай и посмотри, где именно упирается твоя машина. Практика тут информативнее любых расчётов.