Локальные LLM модели в Ollama: пошаговый запуск без сети

Локальные LLM модели в Ollama на обычном ПК без интернета БЛОГ

⚡️ Кратко: ключевые факты и быстрый ответ

  • Ollama — это бесплатный open-source рантайм поверх llama.cpp, который поднимает локальную LLM одной командой ollama run: установка занимает 5–10 минут, интернет нужен лишь на этапе скачивания весов.
  • Ключевое отличие от облачных флагманов (GPT-6.1 Sol, Claude 5.5, DeepSeek-V4 в API) — данные не покидают вашу машину, а генерация не зависит от лимитов и блокировок провайдера.
  • На практике ориентируйтесь на правило: 7–9B в Q4_K_M комфортно живут в 8–10 ГБ видеопамяти, 14B требуют 12–16 ГБ, а 32B и выше имеет смысл ставить только на 24 ГБ VRAM или на CPU с 32–64 ГБ RAM.
  • Главный подводный камень — не размер модели, а контекст: длинное окно съедает VRAM быстрее весов, и при переполнении Ollama молча уводит часть слоёв на CPU, роняя скорость в 5–10 раз.

Зачем держать LLM на своём ПК: приватность, офлайн и экономика

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

Сценарий первый — приватность. Договоры под NDA, медицинские выписки, клиентские базы, зарплатная ведомость. Любой запрос в чужой дата-центр уходит в логи, а иногда и в обучающие выборки.

Зависит от политики провайдера, но проверить это снаружи невозможно. Локальная модель такой роскоши не позволяет: веса лежат на диске, наружу уходит ноль байт. Факт легко подтвердить обычным монитором трафика.

Сценарий второй — изолированный контур. Сеть без выхода в интернет, выезд на объект, командировка без связи, самолёт. Модель на 7–9B параметров в 4-битной квантизации занимает 5–7 ГБ и спокойно живёт на ноутбуке с 16 ГБ памяти.

Сценарий третий — экономика. Топовый облачный тариф стоит около 200 $ в месяц, то есть 180–220 тыс ₽ за год. Видеокарта на 16 ГБ — 65–90 тыс ₽ разово плюс 4–5 тыс ₽ на электричество за год при 8 часах работы в день.

Вариант Первый год Что получаете
Топовый облачный тариф 180–220 тыс ₽ Флагманская логика, но лимиты и выгрузка данных наружу
Видеокарта 16 ГБ + свет 70–95 тыс ₽ Модели до 32B в квантизации, полный офлайн
Локально + API по факту 90–120 тыс ₽ Рутина на своём железе, сложное — в облако

Разрыв в первый год — примерно вдвое. Со второго года видеокарта уже отбита, и вы платите только за киловатты. Методику расчёта окупаемости под свой объём задач я разбирал в материале про ROI внедрения ИИ.

💡 Инсайт: Локальная модель выгодна не «вместо» облака, а как второй контур для рутины — суммаризация, теги, черновики, извлечение полей из PDF, классификация тикетов. Сложные рассуждения, длинный контекст и агентные цепочки по-прежнему логичнее отдавать флагманским API вроде GPT-6.1 Sol или Claude 5.5. Считайте не «или-или», а разделение потоков: 70–80% запросов дешёвые и повторяемые, их и забирает ПК.

Честно про качество: на многошаговой логике, работе с большим контекстом и вызове инструментов флагманы заметно впереди. Локальная 14B-модель там сыпет ошибками, и делать вид, что это не так, смысла нет.

Актуальные лимиты, цены за миллион токенов и набор моделей провайдеры публикуют в открытой документации — линейку OpenAI удобно сверять в официальном описании моделей.

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

Ollama под капотом: как рантайм работает с вашим железом

Ollama — это демон-оркестратор: Go-бинарник, который держит REST API на порту 11434, управляет библиотекой моделей и вызывает под капотом llama.cpp для инференса GGUF-файлов. Сам инференс делают C++ и CUDA/Metal — Ollama только дирижирует.

Разделение простое: llama.cpp — это движок, GGUF — формат упаковки весов, Ollama — удобная обёртка с CLI, автозагрузкой моделей, менеджером версий и Modelfile. Последний работает как Dockerfile: базовый образ, системный промпт, параметры сэмплинга, температурные настройки.

Что реально происходит при ollama run qwen3:8b? Сначала идёт проверка манифеста в ~/.ollama/models: есть ли нужный тег, совпадают ли SHA256-хэши слоёв. Если модели нет — качаются блобы. Дальше начинается интересное: слои подгружаются в RAM и по возможности offload-ятся на GPU.

Параметр num_gpu решает, сколько слоёв уедет в VRAM, остальное добирает CPU. На 8 ГБ видеопамяти модель на 7–8 млрд параметров в Q4 уходит на GPU целиком, 30-миллиардная — только частично, и скорость падает с 45–60 токенов/с до 6–10. Второй пожиратель памяти — KV-кэш контекста: 8192 токена на 8B-модели съедают ещё около 1 ГБ.

Квант GGUF Бит на вес 7B-модель Потеря качества
FP16 16 ~14 ГБ эталон
Q8_0 8,5 ~7,6 ГБ почти нет
Q4_K_M 4,5 ~4,4 ГБ 1–3%
Q3_K_S 3,5 ~3,3 ГБ заметно

📌 Важно: именно квантование GGUF определяет, влезет ли модель в вашу память, — движок лишь исполнитель. Q4_K_M против FP16 экономит около 68% памяти при потере качества в пределах 1–3%. Выбирайте квант под железо, а не модель под хайп.

Форматы вроде Safetensors Ollama конвертирует внутри — при импорте через Modelfile она прогоняет веса через конвертер в GGUF и раскладывает по слоям. Так что скачанные с репозиториев исходники тоже заведутся, просто подготовка займёт лишние 5–15 минут.

Хорошая новость: популярные открытые семейства — Qwen, Llama, Gemma, Mistral и открытые веса DeepSeek — уже лежат в GGUF в официальной библиотеке. Тянуть их в оригинальном формате почти никогда не нужно.

💡 Инсайт: держите OLLAMA_KEEP_ALIVE=30m, если гоняете одну модель постоянно. Ollama выгружает веса из VRAM через 5 минут простоя, и каждый следующий запрос платит полную цену загрузки — на 8B-модели это 3–8 секунд впустую.

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

Сравнение моделей: что реально влезает в вашу видеопамять

Короткий ответ: 8 ГБ VRAM — это модели 7–9B в Q4_K_M, 16 ГБ — 14B, 24 ГБ — 24–32B или MoE с 3B активных параметров. Всё крупнее требует 48 ГБ+ памяти и заметно проседает по скорости.

Главная ловушка новичка — путать размер файла с реальным потреблением. К весам добавляется KV-кэш контекста: на 32K токенов модель 14B съедает сверху ещё 2–4 ГБ, а 32B — уже 6–8 ГБ. Ollama и llama.cpp честно печатают расход в логах при загрузке, так что смотрите туда, а не на число в названии тега.

Модель и размер Квантование Память (VRAM/RAM) Скорость, ток/с Под какие задачи брать
Qwen3 4B / Llama 3.2 3B Q4_K_M 2,5–3 ГБ 70–110 Автодополнение, классификация, короткие ответы бота
Qwen3 8B / Mistral 7B / Llama 3.1 8B Q4_K_M 5–6 ГБ 40–70 Универсальная лошадка: тексты, RAG, простой код
То же, 7–9B Q5_K_M 6,5–7,5 ГБ 35–60 Когда Q4 начинает «тупеть» на сложных инструкциях
То же, 7–9B Q8_0 9–10 ГБ 20–35 Почти эталонное качество, нужна карта на 12 ГБ+
Qwen3 14B Q4_K_M 9–10 ГБ 25–45 Аналитика, длинные инструкции, код-ревью
Qwen3 14B Q5_K_M 11–12 ГБ 20–38 Оптимум «качество/память» на 12–16 ГБ
Qwen3 14B Q8_0 16–17 ГБ 12–18 24 ГБ карта, работа почти без потерь
Qwen3 32B / Gemma 3 27B / Mistral Small 3.2 24B Q4_K_M 17–20 ГБ 12–25 Агенты, длинный контекст, тяжёлый код
То же, 24–32B Q5_K_M 21–24 ГБ 10–18 Предел для 24 ГБ, контекст придётся экономить
То же, 24–32B Q8_0 34–36 ГБ — В одну карту не влезает: нужно 2×24 ГБ или 48 ГБ unified
Qwen3 30B-A3B (3B активных) Q4_K_M 18–20 ГБ 60–120 Быстрые чаты и агенты в реальном времени
MoE 100B+ (Llama 4 Scout, Mixtral 8x22B) Q4_K_M 40–65 ГБ 15–35 Только при наличии двух карт или 64 ГБ RAM
Замеры ориентировочные: RTX 3060 12 ГБ, 4060 Ti 16 ГБ и 3090 24 ГБ, контекст 8K, температура 0.7.

Квантование — это компрессия весов. Q4_K_M — рабочая лошадка: минус около 70% объёма против FP16 при деградации в пределах статистической погрешности. Q5_K_M — компромисс: плюс 1–2 ГБ за заметно более чистые ответы на коде и математике. Q8_0 — уже роскошь, оправданная только на 24 ГБ и выше.

⚠️ Подводный камень: MoE-модель на 100B+ в Q4 может весить 40–65 ГБ, но генерировать быстрее, чем плотная 14B — ведь на каждый токен активируется лишь 3–13B параметров. Халявы нет: всю память всё равно надо где-то разместить. Если она не влезает в VRAM, лишнее уезжает в RAM, и скорость падает в разы — быстрый MoE превращается в самого медленного участника таблицы.

💡 Инсайт: не гонитесь за размером. Разница между 14B и 32B в Q4 на бытовых задачах — проценты, а по скорости — двукратный разрыв. Часто выгоднее взять 14B в Q5_K_M и отдать освободившиеся гигабайты под контекст.

Для справки: облачные флагманы уровня GPT-6.1 Sol или Claude 5.5 по-прежнему обходят любую домашнюю сборку — актуальный список моделей OpenAI это наглядно показывает, — но они требуют интернета и оплаты за токены.

А если хочется не просто чата, а агента, который сам разбирает файлы на диске, загляните в разбор DeepSeek Harness: десктопные агенты без терминала и кода — там как раз объясняется, почему под такие сценарии разумный минимум начинается с 14B.

Пошаговая установка на Windows, macOS, Linux и в Docker

Установка Ollama занимает 2–5 минут: на Windows через winget, на macOS через brew, на Linux через curl-скрипт, а в Docker запуском официального образа с обязательным пробросом GPU.

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

Windows. Одна команда в PowerShell:

winget install Ollama.Ollama

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

macOS. Через Homebrew:

brew install ollama
ollama serve   # если ставили только CLI, без фонового сервиса

Linux. Скрипт создаёт пользователя и systemd-юнит, всё поднимается само:

curl -fsSL https://ollama.com/install.sh | sh
sudo systemctl status ollama

Docker. Здесь важны ровно два флага: проброс видеокарты и монтирование тома под веса.

docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

Без --gpus=all модель молча уедет на CPU и потеряет 10–20 раз в скорости генерации. Без -v ollama:/root/.ollama каждый пересозданный контейнер будет качать те же 20–40 ГБ весов заново.

⚠️ Подводный камень: в докере для NVIDIA нужен nvidia-container-toolkit. Если после запуска внутри контейнера нет /dev/nvidia0, флаг --gpus=all просто игнорируется, и вы получите CPU-инференс без единой ошибки в логах.

Проверка после установки. Пять команд, которые закрывают 90% вопросов:

ollama --version        # CLI на месте
ollama pull qwen3:32b   # скачать веса (~20 ГБ в Q4)
ollama run qwen3:32b    # чат прямо в терминале
ollama list             # что уже лежит на диске
ollama ps               # что загружено в память сейчас

ollama ps показывает реальное потребление VRAM и метку «100% GPU» или «CPU/GPU split». Это первое место, куда смотреть, когда ответы ползут по 2 токена в секунду.

💡 Инсайт: папку с моделями можно унести с системного диска переменной OLLAMA_MODELS=/mnt/models — достаточно задать её до старта демона. На практике это спасает SSD от 100–300 ГБ весов, а на Linux путь по умолчанию вообще лежит в /usr/share/ollama/.ollama/models, где места обычно меньше всего.

Apple Silicon — отдельная история. У M-чипов unified memory: CPU и GPU видят один пул памяти. Поэтому 32B в Q4 (около 20 ГБ) спокойно живёт на Mac с 32–64 ГБ ОЗУ, тогда как на дискретной карте с 12 ГБ он бы не влез без офлоада и просадки скорости.

И про трезвость ожиданий: локальная 32B не обгонит флагманские облачные модели вроде GPT-6.1 Sol или Claude 5.5 на сложных рассуждениях. Зато она бесплатна, работает без сети и не отдаёт ваши данные наружу. А если консоль мозолит глаза, есть десктопные агенты без терминала и кода.

Modelfile и переменные окружения: тонкая настройка под задачу

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

Минимальный рабочий Modelfile выглядит так:

FROM qwen3:8b

PARAMETER temperature 0.3
PARAMETER num_ctx 8192
PARAMETER top_p 0.9
PARAMETER repeat_penalty 1.1

SYSTEM """Ты — технический ассистент. Отвечай по-русски, кратко, без воды."""

TEMPLATE """{{ if .System }}<|im_start|>system
{{ .System }}<|im_end|>
{{ end }}<|im_start|>user
{{ .Prompt }}<|im_end|>
<|im_start|>assistant
"""

Собирается одной командой: ollama create my-assistant -f Modelfile. Дальше запуск — как у обычной модели, только имя своё.

Поле TEMPLATE трогают редко: у базовых весов он уже прописан и заточен под конкретный токенизатор. Переопределять его стоит, только если вы льёте свои дообученные веса или притащили GGUF из другого проекта. А вот SYSTEM и temperature — рабочая лошадка: для кода и извлечения данных ставьте 0.1–0.3, для брейншторма 0.7–0.9.

📌 Важно: снижение num_ctx — самый быстрый способ вытащить модель из свопа, если генерация внезапно стала медленной. Дефолт в Ollama — 4096 токенов, и его вполне хватает для 90 % задач. Контекст 32 768 у модели на 8B съедает примерно 4 ГБ только под KV-кэш.

Теперь про сам сервер. Ключевые переменные окружения:

Переменная По умолчанию Что делает
OLLAMA_HOST 127.0.0.1:11434 Адрес и порт API. 0.0.0.0:11434 открывает доступ из локальной сети
OLLAMA_NUM_PARALLEL 1–4 (авто) Сколько запросов крутится одновременно. Каждый съедает свой кусок KV-кэша
OLLAMA_MAX_LOADED_MODELS 3 × число GPU Сколько моделей держать в памяти разом
OLLAMA_KEEP_ALIVE 5m Сколько модель висит в памяти после ответа. -1 — вечно, 0 — выгрузить сразу
OLLAMA_FLASH_ATTENTION авто Ускоряет генерацию и открывает квантование KV-кэша
OLLAMA_KV_CACHE_TYPE f16 q8_0 режет память KV-кэша вдвое, q4_0 — вчетверо

Комбо OLLAMA_FLASH_ATTENTION=1 + OLLAMA_KV_CACHE_TYPE=q8_0 на модели 8B экономит около 0.5 ГБ при контексте 8192 — и почти без потери качества ответов. На gpt-oss:20b выигрыш уже 1.5–2 ГБ, что часто и решает, влезет модель в 12 ГБ VRAM или нет.

💡 Инсайт: OLLAMA_NUM_PARALLEL=4 и OLLAMA_MAX_LOADED_MODELS=3 звучат заманчиво, но делят одну и ту же память. Для одиночного ПК честнее выставить NUM_PARALLEL=1 и MAX_LOADED_MODELS=1 — модель получит всю VRAM и будет заметно быстрее.

Подключение к своему скрипту — это обычный HTTP:

curl http://localhost:11434/api/chat -d '{
  "model": "my-assistant",
  "messages": [{"role": "user", "content": "Что такое KV-кэш?"}],
  "stream": false
}'

А вот то же самое на Python с переопределением параметров на лету:

import requests

r = requests.post("http://localhost:11434/api/chat", json={
    "model": "my-assistant",
    "messages": [{"role": "user", "content": "Что такое KV-кэш?"}],
    "options": {"temperature": 0.2, "num_ctx": 8192},
    "stream": False,
})
print(r.json()["message"]["content"])

Отдельный бонус: Ollama отдаёт OpenAI-совместимый эндпоинт /v1/chat/completions. Значит, официальный SDK подхватит локальную модель сменой одной строки base_url — удобно, когда прототип на облачном GPT-6.1 Sol нужно перевести на свои железки или наоборот. Подробнее про сами модели можно свериться в документации OpenAI.

Дальше эту ручку легко превратить в агента: примеры уже разбирали в материале про десктопные агенты без терминала и про SEO-агента на n8n. Локальный сервер на OLLAMA_HOST подключается туда точно так же, как любой внешний API.

GUI и рабочие сценарии: Open WebUI, RAG и локальные агенты

Open WebUI — оптимальная оболочка для локальных LLM на домашнем ПК: она даёт чат, встроенный RAG, агентные цепочки и OpenAI-совместимый API поверх Ollama, поднимаясь одной командой в Docker за 30–60 секунд.

Но это не единственный путь. Терминал быстрее и не жрёт RAM на веб-морду, LM Studio удобнее для первого старта, а встраивание в редактор кода — вообще отдельный жанр. Расклад по четырём сценариям:

Оболочка Плюсы Минусы Кому
Терминал (ollama run) 0 накладных, полный контроль флагов Нет истории, RAG руками Скриптам и пайплайнам
Open WebUI Чат, RAG, агенты, API, мультиюзер ~1,5 ГБ образ, нужен Docker Основной рабочий стол
LM Studio GUI-выбор модели, замер tok/s Слабее в агентных цепочках Новичкам и бенчмаркам
Continue / Cline Подсказки прямо в IDE Контекст режется до 8–16k Кодингу на закрытом контуре

Самый сочный сценарий — локальный RAG на своих документах. Схема простая: эмбеддинги (bge-m3 или nomic-embed-text), нарезка на чанки по 500–1000 токенов с перехлёстом 10–15%, векторный индекс (ChromaDB, Qdrant) и подача top-k фрагментов в промпт.

Сотня PDF превращается примерно в 10–15 тысяч чанков. На CPU индекс строится 3–8 минут, дальше поиск летает за 50–150 мс.

Когда это оправдано? Когда данные нельзя выносить наружу: договоры, медкарты, внутренняя документация под NDA. Если же вопрос разовый — облако дешевле и точнее.

⚠️ Подводный камень: RAG и агентные цепочки дают кратную нагрузку на контекст. Один запрос с поиском, реранкером и двумя шагами агента сжигает 4–6 тысяч токенов — это 60–75% окна у модели на 8k. Модели на 3–4B в такой схеме начинают «плыть», терять инструкции и галлюцинировать. Либо апгрейд железа до 7–14B (Q4/Q5), либо упрощение пайплайна до одного шага поиска без агентов. Полумеры не работают.

Гибридный поиск плюс реранкер bge-reranker-v2 поднимают точность на 15–25%, но добавляют 200–400 мс и ещё пару гигабайт VRAM. На RTX 3060 12 ГБ модель 7–8B в Q4 выдаёт 30–45 токенов/с — комфортно для чтения, но не для автодополнения кода.

Про кодинг честно: локальные модели пока уступают специализированным облачным инструментам вроде Claude Code CLI и Cursor на базе Claude 5.5 Opus или GPT-6.1 Sol — особенно на многофайловых рефакторингах. Это нормальный компромисс: вы платите скоростью и качеством за полную приватность. Для сравнения возможностей современных облачных линейк полезно держать под рукой официальную документацию OpenAI.

Если терминал и Docker — не ваш путь, есть готовые десктопные агенты: разбирали их в материале DeepSeek Harness: десктопные агенты без терминала и кода.

Частые ошибки, узкие места и диагностика производительности

Пять граблей убивают локальный запуск: медленный диск, выгрузка слоёв на CPU, неподхваченные драйверы GPU, занятый порт 11434 и нехватка места при pull. Диагностика — ollama ps и ollama logs.

Начнём с самого обидного. Модель грузится «вечно», хотя железо вроде бы нормальное. Виноват диск: 7B в Q4_K_M весит около 4,5 ГБ. На HDD со скоростью 100–150 МБ/с только чтение съест 40–60 секунд. На NVMe Gen4 (5–7 ГБ/с) та же модель поднимается за 2–4 секунды. Разница в 10–20 раз, и это чистый проигрыш в ожидании.

💡 Инсайт: Замеряйте не «ощущения», а токены в секунду на своём промпте — ollama run --verbose показывает eval rate. Заведите табличку: модель, квант, размер контекста, ток/с, время до первого токена. Без этих цифр выбор модели превращается в гадание на кофейной гуще.

Вторая классика — часть слоёв уходит на CPU. Ollama сама решает, сколько влезет в VRAM. Модель 8B в Q4 требует ~5,5 ГБ, а на карте свободно 4 ГБ, и половина слоёв уезжает в оперативку. Скорость при этом падает с 40–60 ток/с до 3–8 ток/с. Признак: CPU загружен под 100%, GPU простаивает.

Третья напасть — драйверы. При первом запуске ищите в логе строку no compatible GPUs were detected. Если она есть, nvidia-smi тоже не увидит карту: старый драйвер, разъехавшаяся CUDA или WSL без проброса. Обновите драйвер и перезапустите службу, прежде чем винить модель.

Симптом Причина Что делать
Загрузка 40–60 с Модель на HDD Перенести на NVMe, задать OLLAMA_MODELS
3–8 ток/с вместо 50 Слои выгружены на CPU Квант Q4 → Q3_K_M, освободить VRAM
no compatible GPUs Драйвер или CUDA Обновить драйвер, проверить nvidia-smi
address already in use Порт 11434 занят OLLAMA_HOST=127.0.0.1:11435
Pull падает на 80% Нет места Освободить 15–25 ГБ в ~/.ollama/models

⚠️ Подводный камень: Рост num_ctx с 4K до 32K раздувает KV-кэш на 2–4 ГБ для 8B. Модель снова частично уезжает на CPU, и вы теряете всю выгоду от длинного контекста.

Финальная проверка автономности — самая честная. Выдерните сетевой кабель и прогоните три сценария. Чат в терминале, запрос к API (curl http://localhost:11434/api/tags) и RAG-контур на локальных эмбеддингах вроде nomic-embed-text плюс векторная БД на том же диске. Если все три отвечают — контур действительно ваш, а не арендованный.

Для сравнения с облачными флагманами держите под рукой официальную документацию моделей OpenAI: локальная 8B в Q4 проигрывает им в reasoning, но выигрывает в приватности и нулевой цене за токен. А если хочется собрать агента поверх такого контура, посмотрите наш разбор десктопных агентов без терминала и кода.

Часто задаваемые вопросы (FAQ)

Сколько нужно видеопамяти и какая модель вообще влезет на мой ПК?

Рабочая формула для квантизации Q4_K_M: примерно 0,55–0,6 ГБ на каждый миллиард параметров плюс 1–2 ГБ на контекст и служебные буферы. То есть 8B занимает около 4,5–5 ГБ, 14B — около 9 ГБ, 32B — порядка 20 ГБ, а 70B уже просит 40+ ГБ.

Отсюда простые ориентиры. 8 ГБ VRAM — комфортно живут модели класса 7–8B: суммаризация, перевод, письма, простой RAG по своим документам. 12–16 ГБ — открывается 14B, а 32B пойдёт только частично, с выгрузкой слоёв в оперативку и заметным падением скорости. 24 ГБ (условная RTX 4090 или RTX 5090) — 32B в Q4_K_M работает бодро, это сегодня самый разумный «сладкий» сетап для локальных LLM. 48 ГБ и выше — можно смотреть в сторону 70B.

Проверить фактическое распределение очень легко: запустите модель и сразу выполните ollama ps. Там будет колонка PROCESSOR — если видите 100% CPU, значит на GPU ушло ноль слоёв, и все ваши 24 ГБ видеопамяти простаивают. Также помогает ollama list (что уже скачано) и флаг --verbose при запуске, который печатает скорость генерации.

Ollama выдаёт 3–5 токенов в секунду и вентилятор воет. Как ускорить?

Первый подозреваемый — модель не на GPU. Начните с ollama ps: если там CPU, копайте драйверы и бэкенд. Для NVIDIA нужны свежие драйверы с CUDA, для AMD — ROCm или Vulkan, для Mac — Metal работает из коробки на чипах Apple Silicon. Второй шаг: убедиться, что в Modelfile выставляно PARAMETER num_gpu на максимум возможных слоёв.

Дальше начинается самое интересное. Главный пожиратель VRAM в инференсе — не веса, а KV-кеш контекста. Каждая лишняя тысяча токенов контекста стоит памяти, поэтому ставить num_ctx «на максимум из жадности» — классическая ошибка. Компрессия кеша через OLLAMA_KV_CACHE_TYPE=q8_0 экономит память почти без потери качества, а OLLAMA_FLASH_ATTENTION=1 заметно оживляет длинные контексты.

И не забывайте про холодный старт: параметр OLLAMA_KEEP_ALIVE=-1 держит модель в памяти постоянно. Если модель хранится на HDD, загрузка 20-гигабайтного файла каждый раз с нуля — это десятки секунд мёртвого ожидания. NVMe здесь не роскошь, а необходимость.

Можно ли подцепить локальную модель к Cursor, VS Code и своему коду вместо облака?

Да, и это, пожалуй, главная киллер-фича Ollama. Демон поднимает не только нативный /api/chat, но и полностью OpenAI-совместимый эндпоинт на http://localhost:11434/v1. То есть в любом инструменте, который умеет работать с OpenAI-совместимым API, вы просто меняете base URL, вписываете в поле ключа любую заглушку вроде ollama — и всё работает. Continue.dev, Cline, LangChain, LlamaIndex, n8n, свои скрипты на Python — всё это цепляется без единой строчки костылей.

Но честно про ограничения. Для автодополнения, объяснения кода, рефакторинга отдельной функции и генерации тестов модели класса 14–32B вполне достаточны. А вот автономные агентные сценарии уровня Cursor или Claude Code CLI, где нужно многошаговое планирование и стабильный вызов инструментов, локальная модель на 7–32B пока потянет слабо. Ошибётся в цепочке вызовов, потеряет контекст, зациклится. Так что локальные LLM оллама — это про «быстро и приватно», а не про «заменить агента целиком».

Данные точно не утекают? И насколько локальная модель слабее GPT-6.1 Sol или Claude 5.5?

По умолчанию демон слушает только localhost, а веса после скачивания лежат у вас на диске. Отсюда и нулевая стоимость за токен, и отсутствие лимитов, и полная приватность — ни один запрос физически не покидает машину. Если выключить телеметрию движка и не ставить сомнительные плагины, утечке просто неоткуда взяться.

Но есть подводный камень, о котором забывают. Переменная OLLAMA_HOST=0.0.0.0 открывает API всей локальной сети, а встроенной аутентификации в Ollama нет вообще. Любой, кто в вашем Wi-Fi, сможет гонять запросы через вашу видеокарту. Проверяйте ss -tlnp или netstat, держите порт 11434 закрытым файрволом и не пробрасывайте его наружу.

Теперь про качество. Модель 70B-класса в Q4-квантизации действительно уступает флагманам вроде GPT-6.1 Sol или Claude 5.5 в сложном ризонинге, длинном контексте и агентных задачах — это факт, и спорить с ним бессмысленно. Зато на типовой рабочей рутине (суммаризация встреч, черновики писем, перевод, извлечение данных, RAG по внутренней базе знаний) разница на практике стирается. Вы получаете 90% результата за 0 рублей и без отправки корпоративных документов на чужой сервер.

Здоровая стратегия — гибрид. Чувствительные данные и потоковые задачи гоняем локально, а сложные аналитические запросы отдаём облачным флагманам. Не «или-или», а разумное разделение труда.

💡 В сухом остатке: главное

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

Чек-лист для внедрения на практике:

  • ✅ Проверьте железо: объём VRAM (nvidia-smi) или unified memory у Apple Silicon, а также свободное место на SSD — квантованные веса занимают 4–40 ГБ.
  • ✅ Установите Ollama под свою ОС (Windows, macOS, Linux или Docker) и убедитесь, что демон слушает порт 11434 локально.
  • ✅ Скачайте 2–3 модели разного класса через ollama pull и сравните их на своих задачах, а не по чужим бенчмаркам.
  • ✅ Настройте OLLAMA_NUM_PARALLEL, OLLAMA_KEEP_ALIVE и параметры Modelfile (temperature, num_ctx) под реальную нагрузку.
  • ✅ Поставьте GUI вроде Open WebUI или LM Studio, если нужен чат с историей, RAG и файлами вместо терминала.
  • ✅ Отключите автообновление и телеметрию, проверьте работу в режиме без интернета — это и есть финальный тест автономности.

Обсудить материал и поделиться своими бенчмарками можно в комментариях к блогу.

Редактор
Оцените автора
Добавить комментарий

Отправляя данную форму вы соглашаетесь с политикой конфиденциальности сайта