COMRAD404 / HOWTO

Как запустить модель на CPU (без GPU)

Пошагово разбираем три официальных пути запуска модели на CPU без GPU: PyTorch + Transformers, llama.cpp и Ollama, с проверкой, что вычисления реально идут через CPU.

Понадобится

15–40 минут
  • Компьютер с macOS, Windows или Linux
  • Терминал
  • Для Python-маршрута — установленный Python и пакетный менеджер
  • Для llama.cpp — локальная модель, обычно в формате GGUF
  • Для Ollama — установленное приложение или CLI

Результат: после этой инструкции вы сможете запустить модель на CPU без GPU тремя официально подтвержденными способами: в Python через PyTorch и Hugging Face Transformers, локально через llama.cpp и максимально быстро через Ollama. Для каждого маршрута ниже есть отдельная проверка, что вычисления действительно идут через CPU.

  • Время: 15–40 минут
  • Сложность: начальный–средний
  • Стоимость: в источниках из набора не указаны региональные цены; в статье рассматривается только локальный запуск на вашем компьютере
  • Что потребуется: macOS, Windows или Linux; терминал; для Python-маршрута — Python и пакетный менеджер; для llama.cpp — локальная модель, обычно GGUF; для Ollama — установленное приложение или CLI
  • Актуальная версия: официальные страницы PyTorch Start Locally, документация Hugging Face Transformers ветки main, репозиторий llama.cpp ветки master и документация Ollama, проверено 2026-08-15
Маршрут Когда выбирать Как задать CPU Как проверить
PyTorch + Transformers Если у вас свой Python-код и нужен прямой inference без отдельного рантайма В PyTorch выберите Compute Platform = CPU; в Transformers pipeline работает на CPU по умолчанию, явно можно задать device=-1 Проверка импорта PyTorch, создание тензора, torch.cuda.is_available(), затем запуск pipeline
llama.cpp Если нужна локальная GGUF-модель и контроль над бэкендами или локальный HTTP-сервер Запускайте с --device none; при необходимости сначала посмотрите устройства через --list-devices Проверьте endpoint /health; после успешной загрузки он должен вернуть статус ok
Ollama Если нужен самый короткий локальный запуск через CLI В quickstart показан запуск модели; фактическое размещение на CPU проверяйте командой ollama ps Статус 100% CPU в ollama ps означает, что модель полностью находится в системной памяти

Практический вердикт: если нужен самый короткий путь без Python-кода, начинайте с Ollama. Если у вас уже есть свой Python-пайплайн, не добавляйте лишний рантайм и используйте PyTorch + Transformers. Если нужна GGUF-модель и локальный HTTP-сервер, берите llama.cpp.

Редакционное ограничение: часть официальных страниц в этой теме привязана к веткам main и master, а не к фиксированному релизу. Это значит, что отдельные команды и формулировки на страницах могут измениться после 2026-08-15. Поэтому для PyTorch безопаснее копировать установочную команду прямо из селектора Start Locally, а не из старых заметок или сторонних статей.

Маршрут 1: Python через PyTorch и Transformers

Этот путь подходит, если вы запускаете модель из собственного Python-кода и хотите обойтись без GPU и без отдельного локального сервера.

  1. Откройте страницу PyTorch Start Locally и выберите Compute Platform = CPU. Скопируйте команду, которую страница сгенерирует под вашу ОС и пакетный менеджер. Ожидаемый результат: у вас есть актуальная команда установки CPU-сборки без CUDA.
  2. Выполните сгенерированную команду установки. Не подставляйте заранее сохраненную команду из старых инструкций: в наборе источников отдельно отмечено, что точный установочный фрагмент может меняться по версии страницы. Ожидаемый результат: PyTorch установлен в текущее окружение.
  3. Проверьте, что библиотека запускается и окружение не опирается на CUDA.
import torch

x = torch.rand(5, 3)
print(x)
print(torch.cuda.is_available())

Ожидаемый результат: код создает тензор; проверка torch.cuda.is_available() помогает убедиться, доступна ли CUDA в окружении.

  1. Запустите inference через Transformers на CPU. В официальном tutorial для pipeline CPU используется по умолчанию; это соответствует device=-1. Если хотите зафиксировать поведение явно, передайте device=-1.
from transformers import pipeline

pipe = pipeline(task='<ваша-задача>', model='<ваша-модель>', device=-1)
result = pipe('<ваш-вход>')
print(result)

Ожидаемый результат: вы получаете ответ модели без переключения на GPU. Не используйте device одновременно с device_map: официальная документация Pipelines предупреждает, что эти параметры не следует совмещать.

Если базовый запуск на CPU оказывается слишком медленным, текущая CPU-страница Transformers в ветке main перечисляет официальные направления оптимизации: Optimum/ONNX Runtime, BetterTransformer, TorchScript, Intel Extension for PyTorch и OpenVINO. Практическое ограничение здесь в том, что эта страница сама помечена как main-документация и указывает на установку из исходников.

Маршрут 2: llama.cpp на CPU с локальным сервером

Этот путь удобен, когда у вас уже есть локальная LLM и вам нужен контролируемый CPU-запуск, обычно с GGUF-моделью.

  1. Подготовьте путь к локальной модели. В supplied sources отдельно отмечено практическое ограничение: для llama.cpp обычно используются GGUF или квантизированные варианты модели, и не все возможности исходных моделей доступны без адаптации. Ожидаемый результат: у вас есть путь вида /path/to/model.gguf.
  2. Для server-маршрута проверьте, какие устройства видит бинарник. Официальный build guide советует использовать флаг --list-devices.
llama-server --list-devices

Ожидаемый результат: вы видите список доступных устройств и понимаете, нужно ли дополнительно отключать более приоритетные бэкенды.

  1. Запустите сервер и принудительно отключите GPU. В build guide для полного CPU-режима официально указан вариант запуска с --device none.
llama-server -m /path/to/model.gguf --device none

Ожидаемый результат: модель загружается, а сервер стартует без использования GPU-устройства.

  1. Проверьте состояние сервера через HTTP. В server README официальный способ проверки — endpoint /health, который после успешной загрузки модели должен вернуть статус ok.
curl http://localhost:<порт_вашего_сервера>/health

Ожидаемый результат: вы получаете ответ со статусом ok.

Если сервер все равно пытается использовать GPU-бэкенд, официальная документация по сборке отдельно указывает два рычага: отключать более приоритетные бэкенды на этапе сборки или запускать бинарник с --device none.

Маршрут 3: Ollama без GPU

Это самый короткий путь, если вам не нужен собственный Python-код и вы хотите быстро поднять локальную модель через CLI.

  1. Установите Ollama для вашей ОС. В официальном Quickstart указана установка приложения для macOS, Windows или Linux. Ожидаемый результат: CLI ollama доступен в системе.
  2. Запустите модель командой из Quickstart.
ollama run gemma4

Ожидаемый результат: модель запускается локально и готова к работе в CLI.

  1. Проверьте, что модель реально находится в CPU. В официальном FAQ сказано, что ollama ps показывает, размещена ли модель в GPU или CPU; значение 100% CPU означает, что модель полностью находится в системной памяти.
ollama ps

Ожидаемый результат: вы видите статус 100% CPU, если модель целиком работает из системной памяти.

  1. Если нужен полностью локальный режим, отключите облако. Официальный FAQ допускает два варианта: задать переменную окружения OLLAMA_NO_CLOUD=1 или включить disable_ollama_cloud в ~/.ollama/server.json. После этого в логах должно отображаться, что облако отключено.

Ожидаемый результат: вы получаете локальный режим без облачной части, насколько это описано в официальном FAQ.

Как проверить, что всё работает

Инструмент Что сделать Что считать успехом
PyTorch Запустить тестовый код с torch.rand(5, 3) и torch.cuda.is_available() Тензор создается, а проверка CUDA дает вам понятный ответ о доступности CUDA в окружении
Transformers Запустить pipeline без указания GPU или явно с device=-1 Модель возвращает результат inference на CPU
llama.cpp Открыть endpoint /health у локального сервера Сервер возвращает статус ok после загрузки модели
Ollama Выполнить ollama ps Строка 100% CPU означает, что модель полностью находится в системной памяти

Если вам важна именно верификация режима без GPU, маршруты различаются. Для PyTorch это проверка окружения, для Transformers — явный device=-1, для llama.cpp — принудительный --device none, для Ollama — наблюдение через ollama ps.

Частые ошибки и исправления

  • Ошибка: вы поставили не ту сборку PyTorch или скопировали старую команду установки.
    Решение: заново откройте страницу Start Locally, выберите вашу ОС и Compute Platform = CPU, затем скопируйте новую команду прямо из селектора.
  • Ошибка: в Transformers одновременно заданы device и device_map.
    Решение: не совмещайте эти параметры. Официальная документация Pipelines отдельно предупреждает, что device_map не следует использовать одновременно с device.
  • Ошибка: llama.cpp все равно пытается использовать GPU-бэкенд.
    Решение: сначала посмотрите доступные устройства через --list-devices, затем запускайте с --device none. Если этого недостаточно, официальный build guide рекомендует отключать более приоритетные бэкенды на этапе сборки.
  • Ошибка: в Ollama вы не уверены, что модель идет по CPU, или хотите убрать облачную часть.
    Решение: проверьте ollama ps; статус 100% CPU означает полностью CPU-размещение. Для локального-only режима используйте OLLAMA_NO_CLOUD=1 или disable_ollama_cloud в ~/.ollama/server.json, затем проверьте логи.
  • Ошибка: на CPU все работает, но слишком медленно.
    Решение: универсальной скорости здесь нет: в наборе источников отдельно отмечено, что результат зависит от ISA CPU, объема памяти, квантизации и размера модели. Для оптимизации смотрите официальную CPU-страницу Transformers, где перечислены Optimum/ONNX Runtime, BetterTransformer, TorchScript, Intel Extension for PyTorch и OpenVINO.

Безопасность и ограничения

  • Не фиксируйте команды из старых статей. Для PyTorch точный установочный фрагмент безопаснее брать только со страницы Start Locally через выбор Compute Platform = CPU.
  • Учитывайте нестабильность веточных страниц. Документация Hugging Face CPU и страницы llama.cpp из этого материала привязаны к main и master; после даты проверки они могут измениться без смены версии в заголовке статьи.
  • Не ожидайте универсальной производительности. Официальные источники не дают общего обещания по скорости CPU; она зависит от архитектуры процессора, памяти, размера модели и степени квантизации.
  • Для llama.cpp закладывайте ограничение по формату модели. На практике этот путь обычно предполагает GGUF или квантизированные варианты модели, а часть возможностей исходных моделей может потребовать адаптации.
  • Если важна локальность в Ollama, включайте ее явно. Официальный FAQ позволяет отключить облако через OLLAMA_NO_CLOUD=1 или disable_ollama_cloud в ~/.ollama/server.json, после чего статус нужно подтвердить по логам.
  • Эта инструкция не сравнивает цены и не обещает конкретные бенчмарки. В supplied sources нет региональных цен и универсальных цифр производительности, поэтому практический выбор делайте по типу задачи, а не по чужим FPS/токенам в секунду.

Что делать дальше

Источники

Вопросы и ответы

Можно ли запустить модель на CPU вообще без Python?

Да. По официальным источникам для этого подходят как минимум два маршрута: llama.cpp и Ollama. Первый удобен для GGUF-моделей и локального сервера, второй — для самого быстрого CLI-запуска.

Нужно ли явно задавать CPU в Hugging Face Transformers?

Не обязательно. В official pipeline tutorial указано, что pipeline по умолчанию работает на CPU; это соответствует device=-1. Если хотите зафиксировать поведение явно, используйте device=-1, но не комбинируйте его с device_map.

Как полностью отключить GPU в llama.cpp?

Официальный build guide рекомендует либо отключать более приоритетные бэкенды на этапе сборки, либо запускать бинарник с --device none. Перед этим удобно посмотреть список устройств через --list-devices.

Как понять, что Ollama действительно использует CPU?

Проверьте ollama ps. В официальном FAQ сказано, что значение 100% CPU означает, что модель полностью находится в системной памяти.

Можно ли использовать Ollama без облака?

Да. Официальный FAQ указывает два способа: переменная окружения OLLAMA_NO_CLOUD=1 или параметр disable_ollama_cloud в ~/.ollama/server.json. После этого в логах должно отображаться, что облако отключено.

Шаги

HOW-TO
  1. Выберите маршрут запуска

    | Определите, нужен ли вам Python-код, GGUF-модель с локальным сервером или самый быстрый CLI-запуск. Для Python берите PyTorch + Transformers, для GGUF и контроля — llama.cpp, для простого старта — Ollama.

  2. Установите PyTorch в CPU-режиме

    | На странице PyTorch Start Locally выберите Compute Platform = CPU и выполните сгенерированную команду установки для вашей ОС и пакетного менеджера.

  3. Проверьте PyTorch и запустите Transformers на CPU

    | Создайте тестовый тензор и проверьте torch.cuda.is_available(), затем запустите pipeline. По официальной документации pipeline работает на CPU по умолчанию, при необходимости явно задайте device=-1.

  4. Запустите llama.cpp без GPU

    | Для server-маршрута посмотрите устройства через --list-devices и запустите llama-server с моделью GGUF и флагом --device none, чтобы принудительно отключить GPU.

  5. Проверьте локальный сервер llama.cpp

    | Откройте endpoint /health на адресе локального сервера. После успешной загрузки модели официальный README ожидает статус ok.

  6. Запустите Ollama и подтвердите CPU-режим

    | Установите Ollama, выполните ollama run gemma4, затем проверьте ollama ps. Значение 100% CPU означает, что модель полностью находится в системной памяти. При необходимости отключите облако через OLLAMA_NO_CLOUD=1 или disable_ollama_cloud.

Источники

SOURCES

Вопросы и ответы

FAQ
Можно ли запустить модель на CPU вообще без Python?

Да. По официальным источникам для этого подходят как минимум два маршрута: llama.cpp и Ollama. Первый удобен для GGUF-моделей и локального сервера, второй — для самого быстрого CLI-запуска.

Нужно ли явно задавать CPU в Hugging Face Transformers?

Не обязательно. В official pipeline tutorial указано, что pipeline по умолчанию работает на CPU; это соответствует device=-1. Если хотите зафиксировать поведение явно, используйте device=-1, но не комбинируйте его с device_map.

Как полностью отключить GPU в llama.cpp?

Официальный build guide рекомендует либо отключать более приоритетные бэкенды на этапе сборки, либо запускать бинарник с --device none. Перед этим удобно посмотреть список устройств через --list-devices.

Как понять, что Ollama действительно использует CPU?

Проверьте ollama ps. В официальном FAQ сказано, что значение 100% CPU означает, что модель полностью находится в системной памяти.

Можно ли использовать Ollama без облака?

Да. Официальный FAQ указывает два способа: переменная окружения OLLAMA_NO_CLOUD=1 или параметр disable_ollama_cloud в ~/.ollama/server.json. После этого в логах должно отображаться, что облако отключено.

Читайте также

LINKS