Как запустить LLM локально: Ollama, LM Studio и llama.cpp

Пошаговый запуск языковой модели на своём компьютере: Ollama, LM Studio и llama.cpp, выбор GGUF, настройка GPU, API и типичные ошибки.

Запустить модель можно за десять минут, если не гнаться за максимальным качеством. Сначала нужен рабочий сценарий «скачал — запустил — получил ответ», потом уже квантование, контекст и API.

Ниже три пути: простой (Ollama), наглядный (LM Studio) и полный контроль (llama.cpp). Все три работают на Windows, macOS и Linux, но с разными оговорками.

Что выбрать

ИнструментКому подойдётПлюсыМинусы
OllamaНовичкам, скриптам, APIОдна команда, сервер, OpenAI-совместимый APIМеньше настроек, свои теги моделей
LM StudioТем, кто любит графический интерфейсКаталог моделей, настройка слоёв, чатЗакрытый исходный код, больше памяти
llama.cppТем, кто хочет controlГибкость, скорость, GGUF, серверСборка и флаги, интерфейс минимальный
vLLMСерверам с NVIDIAВысокая пропускная способностьLinux, сложнее, не для дома

Совет

Начните с Ollama. Если чего-то не хватает — переходите на LM Studio или llama.cpp. Модели в GGUF можно использовать во всех трёх.

Вариант 1: Ollama

Ollama — это локальный сервер и CLI, который сам скачивает модель, подбирает квантование и держит её в памяти. Установщик есть для Windows, macOS и Linux.

Установка

  1. Скачайте установщик с ollama.com.
  2. Запустите и дождитесь, пока иконка появится в трее.
  3. Откройте терминал и проверьте:
ollama --version

На Linux удобна установка скриптом с официального сайта. На macOS есть версия для Apple Silicon, которая использует Metal.

Первая модель

ollama pull qwen3:8b
ollama run qwen3:8b

pull скачивает модель, run запускает чат. Внутри чата работают команды /bye для выхода, /clear для очистки истории, /set parameter num_ctx 16384 для изменения контекста.

Полезные команды:

ollama list          # что скачано
ollama ps            # что загружено в память
ollama rm qwen3:8b   # удалить модель
ollama serve         # запустить сервер вручную

Модели хранятся в системной папке Ollama. На Windows это обычно %USERPROFILE%\.ollama\models, на macOS и Linux — ~/.ollama/models. Папку можно перенести переменной OLLAMA_MODELS.

Контекст и параметры

По умолчанию контекст может быть меньше, чем хочется. Для длинных документов создайте Modelfile:

FROM qwen3:8b
PARAMETER num_ctx 16384
PARAMETER temperature 0.6
PARAMETER top_p 0.9

Затем:

ollama create qwen3-16k -f Modelfile
ollama run qwen3-16k

Другой способ — задать параметры при запуске через API или в клиенте, который их поддерживает. Помните: большой контекст съедает VRAM.

API

Ollama поднимает сервер на http://127.0.0.1:11434. У него есть свой API и OpenAI-совместимый endpoint:

curl http://127.0.0.1:11434/api/chat -d "{\"model\":\"qwen3:8b\",\"messages\":[{\"role\":\"user\",\"content\":\"Привет\"}],\"stream\":false}"
curl http://127.0.0.1:11434/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d "{\"model\":\"qwen3:8b\",\"messages\":[{\"role\":\"user\",\"content\":\"Привет\"}]}"

Второй вариант позволяет подключить Ollama к OpenCode, Cursor-подобным редакторам и любым библиотекам, которые умеют OpenAI API.

Переменные окружения

  • OLLAMA_HOST — адрес и порт, например 127.0.0.1:11434.
  • OLLAMA_MODELS — папка с моделями.
  • OLLAMA_NUM_PARALLEL — число одновременных запросов.
  • OLLAMA_MAX_LOADED_MODELS — сколько моделей держать в памяти.
  • OLLAMA_KEEP_ALIVE — сколько держать модель после запроса.
  • OLLAMA_FLASH_ATTENTION — включает flash attention, если поддерживается.
  • OLLAMA_KV_CACHE_TYPE — тип кэша, например q8_0.

На Windows переменные задаются через «Параметры системы» → «Переменные среды». После изменения перезапустите Ollama.

Важно

Не выставляйте OLLAMA_HOST=0.0.0.0 без пароля и файрвола. Так вы откроете модель всей локальной сети, а иногда и интернету. Для доступа с других устройств используйте reverse proxy с авторизацией.

Вариант 2: LM Studio

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

Порядок действий

  1. Скачайте LM Studio с официального сайта и установите.
  2. Откройте вкладку поиска моделей, введите название, например Qwen3 8B.
  3. Выберите квантование. Для 8 ГБ VRAM — Q4_K_M, для 16 ГБ — Q5_K_M или Q6_K.
  4. Скачайте модель и откройте чат.
  5. В настройках загрузки проверьте:
  6. Context Length — 8k–16k для начала;
  7. GPU Offload — максимум слоёв, которые помещаются в VRAM;
  8. Flash Attention — включить, если доступно.
  9. Отправьте тестовый запрос и посмотрите на скорость в токенах в секунду.

Локальный сервер

На вкладке Developer (или Local Server) включите сервер. По умолчанию он слушает http://127.0.0.1:1234 и совместим с OpenAI API. В OpenCode или другом клиенте укажите base URL http://127.0.0.1:1234/v1.

Можно включить требование API-токена — сделайте это, если к серверу есть доступ из сети.

Когда LM Studio лучше Ollama

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

Вариант 3: llama.cpp

llama.cpp — движок, на котором работают многие GUI. Он читает GGUF-файлы и даёт точный контроль над памятью и скоростью.

Установка

Для Windows и macOS проще скачать готовый архив со страницы релизов проекта на GitHub: ищите сборку под свою видеокарту (CUDA, Vulkan, Metal, CPU). Распакуйте в отдельную папку.

Для сборки из исходников нужны CMake и компилятор:

git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp
cmake -B build -DGGML_CUDA=ON
cmake --build build --config Release -j

Для CPU используйте сборку без GGML_CUDA, для AMD — -DGGML_HIP=ON или Vulkan.

Где взять GGUF

Модели в формате GGUF лежат на Hugging Face. Ищите репозитории с суффиксом GGUF и файлами вида model-Q4_K_M.gguf. Скачайте файл и положите в папку models.

Один файл — одна модель. Дополнительные файлы вроде mmproj нужны для мультимодальных моделей.

Запуск в консоли

llama-cli -m models/qwen3-8b-Q4_K_M.gguf -c 8192 -ngl 99 -p "Объясни, что такое RAG"
  • -m — путь к модели;
  • -c — размер контекста;
  • -ngl — сколько слоёв отдать на GPU (99 — все, если хватает памяти);
  • -p — промпт;
  • -t — число потоков CPU;
  • -fa — flash attention;
  • --cache-type-k q8_0 --cache-type-v q8_0 — сжатие KV-кэша.

Если модель не влезает, уменьшайте -ngl, пока не исчезнет ошибка выделения памяти. Часть слоёв останется на CPU, скорость упадёт.

Сервер

llama-server -m models/qwen3-8b-Q4_K_M.gguf -c 16384 -ngl 99 --host 127.0.0.1 --port 8080

Сервер совместим с OpenAI API: http://127.0.0.1:8080/v1. Есть веб-интерфейс по тому же адресу.

Полезные флаги:

  • -np 2 — два параллельных слота;
  • -b 2048 -ub 512 — размер батча и микробатча;
  • --mlock — не выгружать модель в swap (нужны права и память);
  • --no-mmap — загрузить целиком, иногда быстрее на старте.

Замер скорости

llama-bench -m models/qwen3-8b-Q4_K_M.gguf -p 512 -n 128

Утилита покажет скорость обработки промпта и генерации. Это полезнее субъективного «вроде быстро».

Другие клиенты

  • Jan — открытый десктопный клиент с поддержкой локальных и облачных моделей.
  • GPT4All — простой офлайн-клиент для небольших моделей.
  • KoboldCpp — ориентирован на творческие тексты, есть сервер.
  • text-generation-webui — много настроек и расширений, порог входа выше.
  • vLLM — серверный движок для NVIDIA на Linux, высокий throughput, но не для домашнего ноутбука.

Первый тест

После запуска проверьте не «здравствуй», а рабочую задачу:

  1. Попросите пересказать текст на 2–3 тысячи знаков.
  2. Дайте таблицу с ошибкой и попросите найти её.
  3. Попросите ответить по-русски и по-английски.
  4. Проверьте, не обрывается ли ответ на длинном контексте.
  5. Замерьте скорость и сравните с ожиданиями.

Если модель путает факты — это нормально. Если она выдаёт бессвязный текст, скорее всего, проблема в шаблоне чата или квантовании.

Типичные ошибки

OOM (out of memory). Уменьшите контекст, квант или число слоёв на GPU. Закройте браузер и другие программы, которые держат VRAM.

Медленно. Проверьте, что модель действительно на GPU. В Ollama — ollama ps, в llama.cpp — строки загрузки. Возможно, выбран CPU-режим.

Бессвязный ответ. Проверьте chat template. Модели Instruct требуют специального формата; если движок его не знает, качество рушится. В llama.cpp используйте --chat-template или файл шаблона.

Модель не видит длинный документ. Контекст по умолчанию часто 4k. Увеличьте num_ctx или -c, но следите за памятью.

Порт занят. Ollama — 11434, LM Studio — 1234, llama-server — 8080. Смените порт или остановите старый процесс.

Приложение не подключается к API. Проверьте, что сервер слушает 127.0.0.1, а не только внутри контейнера или другого интерфейса. Для Docker нужен проброс порта.

Безопасность

  • Держите сервер на 127.0.0.1, если не нужен удалённый доступ.
  • Если нужен — поставьте reverse proxy с HTTPS и авторизацией.
  • Не отправляйте в локальную модель чужие персональные данные без оснований: они остаются в логах и истории.
  • Проверяйте лицензию модели перед коммерческим использованием.
  • Скачивайте GGUF только из проверенных репозиториев.

Что дальше

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

Редакция НейроСеть. Инструкции проверены на практике. Характеристики моделей и требования к железу меняются — сверяйтесь с документацией проекта и карточкой модели. Если заметили ошибку — напишите нам.

Другие гайды раздела