Ollama: как запустить LLM локально и на сервере

20 мин. чтения   /  Статьи

Чтобы использовать в работе большую языковую модель (Large Language Model, LLM) и при этом не передавать третьим лицам коммерческую тайну, клиентские базы и исходный код, нужно развернуть локальную модель в собственном закрытом контуре. Еще недавно запуск открытых моделей требовал сборки llama.cpp под конкретное железо, ручной работы с квантованными весами в формате GGUF и написания собственных серверных обвязок для приема запросов.

Ollama снимает эту рутину. Это инструмент для быстрого развертывания Local AI, который запускает открытые модели буквально в пару команд. По сути, это Docker для LLM: сервис сам скачивает веса, распределяет их между видеопамятью и оперативной памятью и предоставляет готовый интерфейс командной строки и стандартный REST API. Ниже мы собрали практическое руководство по запуску Local LLM на домашнем компьютере и на боевом сервере.

Что такое Ollama и зачем он нужен

Принцип работы и архитектура. Чтобы понять, что такое Ollama, заглянем под капот. Это клиент-серверное приложение: в системе работает фоновый движок, который загружает слои нейросети в память, распределяет их между видеокартой и процессором и обрабатывает очередь запросов. Пользователь взаимодействует с ним через консоль, API или внешние клиенты. Ollama AI автоматически определяет доступное оборудование и выбирает подходящий режим вычислений: CUDA для видеокарт NVIDIA, ROCm для AMD, Metal для Apple Silicon или оптимизированный режим для CPU.

В инструмент встроен публичный каталог моделей. Вам не нужно вручную искать файлы весов на Hugging Face: утилита сама скачивает нужные файлы из реестра и сверяет их контрольные суммы. Чтобы обновить модель до последней версии, достаточно повторно выполнить команду загрузки.

Преимущества собственного контура. Развитие сектора Open-source AI сделало открытые модели реальной альтернативой коммерческим подпискам. Локальный запуск закрывает сразу несколько важных задач:

  • Безопасность данных. Запросы и документы не покидают ваш контур: обработка идет внутри сети компании. Исключение составляют облачные модели Ollama с пометкой cloud в каталоге: они выполняются на внешних серверах, поэтому для конфиденциальных данных их лучше не использовать.
  • Предсказуемые расходы. Вы не платите за каждый сгенерированный токен. Затраты определяются стоимостью собственного оборудования или аренды вычислительных ресурсов.
  • Независимость от внешних сервисов. Сервис Generative AI на локальном сервере продолжит работать внутри корпоративной сети, даже если доступ в интернет пропадет. На него также не повлияют сбои, лимиты и изменения тарифов у внешних API-провайдеров.

Что нужно для запуска Ollama: системные требования

Операционные системы. Ollama официально поддерживает три платформы: Windows 10 (версии 22H2 и новее) и Windows 11, macOS 14 Sonoma и новее, а также популярные дистрибутивы Linux (Ubuntu, Debian, RHEL и другие).

Процессор или видеокарта. Модель можно запустить и на обычном процессоре (CPU), но это вариант скорее для старта. Даже на современном многоядерном чипе с поддержкой инструкций AVX2 модель на 7–8B параметров обычно выдает от нескольких до 10–15 токенов в секунду. Этого хватит, чтобы проверить гипотезу или выполнить фоновую классификацию текста, но для живого диалога, особенно с моделями крупнее, скорости будет мало.

Для комфортной работы нужна дискретная видеокарта или серверный ускоритель (GPU). Чтобы сгенерировать каждый следующий токен, модель должна прочитать из памяти все свои веса (у моделей с архитектурой MoE только активную часть), поэтому скорость генерации упирается в пропускную способность памяти. У двухканальной DDR5 в настольном компьютере она составляет около 70–100 ГБ/с, а у видеопамяти современных GPU достигает от 700 ГБ/с до 2 ТБ/с и выше. Именно поэтому на видеокарте инференс работает в разы быстрее.

Расчет оперативной памяти и VRAM. Основное правило простое: веса модели должны целиком помещаться в видеопамять (VRAM), а если инференс идет на процессоре, то в оперативную память сервера. К размеру самих весов добавляйте 2–4 ГБ на контекстное окно (память диалога) при стандартной длине контекста. Чем длиннее контекст, тем больше нужен запас.

Модель Параметры Формат Минимум VRAM для GPU Минимум RAM для CPU
Llama 3.2 / Qwen3 1–4B Q4_K_M 2–4 ГБ 8 ГБ
Llama 3.1 / Mistral 8B / 7B Q4_K_M 6–8 ГБ 16 ГБ
Gemma 3 / Qwen3 12B / 14B Q4_K_M 10–12 ГБ 24 ГБ
Qwen3 32B Q4_K_M 24 ГБ 48 ГБ
Llama 3.3 / DeepSeek-R1 (дистиллированная версия) 70B Q4_K_M 48 ГБ 64 ГБ

Отдельно стоит упомянуть векторные модели (Embedding Models), которые преобразуют текст в числовые векторы для поиска по базам знаний. Они занимают от сотен мегабайт до 1–2 ГБ и не требуют больших ресурсов. Также в каталоге есть открытые модели OpenAI GPT-OSS: версии на 20B параметров достаточно около 16 ГБ памяти, а версия на 120B рассчитана на один ускоритель с 80 ГБ видеопамяти.

Облачные серверы с GPU Servercore

Почасовая оплата, запуск от 2 минут и SLA 99,98%

Арендовать сервер

Как установить Ollama на компьютер

Установка в Windows. Переходим на официальный сайт ollama.com, скачиваем установщик OllamaSetup.exe и запускаем его. Программа установит нужные файлы, добавит путь к ollama в переменную PATH и пропишет приложение в автозагрузку. В трее появится значок сервиса. В актуальных версиях приложения для Windows и macOS есть и встроенное окно чата, но в этой статье мы будем работать через терминал.

Установка в macOS. Основной способ: скачать установщик для macOS с официального сайта и перенести приложение в папку «Программы». Пользователям Homebrew удобнее установить Ollama через терминал:

brew install ollama
brew services start ollama

Вторая команда запускает сервер Ollama в фоне. Без нее команды вроде ollama run не смогут подключиться к движку.

На компьютерах с процессорами Apple Silicon (M-серии) оперативная память общая для процессора и графики. На Mac с 64 ГБ памяти можно комфортно запускать модели до 32B параметров прямо «из коробки», а модели на 70B в 4-битном квантовании работают уже на пределе возможностей.

Установка в Linux. Перед установкой убедитесь, что в системе есть базовые утилиты: curl для загрузки скрипта и pciutils, с помощью которых установщик определяет видеокарту:

sudo apt update && sudo apt install -y curl pciutils

Сама установка в Ubuntu или Debian выполняется одной строкой:

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

Скрипт сам создаст системного пользователя ollama и зарегистрирует сервис в systemd.

Проверка работы службы. Убедимся, что фоновый сервис запустился и отвечает на запросы. По умолчанию он слушает адрес localhost:11434. Выполняем в консоли простой GET-запрос:

curl http://localhost:11434/

Если служба работает, терминал вернет ответ: Ollama is running. Установленную версию можно посмотреть командой ollama -v.

Как запустить Ollama и первую LLM

Выбор и скачивание модели. Разберем, как пользоваться Ollama через терминал. Список доступных моделей с размерами и вариантами квантования есть в каталоге на сайте ollama.com/library. Чтобы скачать веса на компьютер, но пока не открывать окно чата, используется команда ollama pull.

Скачаем модель Gemma2 на 9 миллиардов параметров:

ollama pull gemma2:9b

Утилита покажет прогресс загрузки манифеста и слоев модели.

Интерактивный диалог через терминал. Для запуска модели достаточно команды run:

ollama run llama3:8b

Модель llama3:8b мы заранее не скачивали, поэтому утилита сама выполнит загрузку, поместит модель в память и выдаст строку ввода. После этого можно сразу приступать к задачам.

Для выхода из диалога введите команду /bye. После выхода модель еще около 5 минут остается в памяти, чтобы следующий запрос обработался быстрее. Выгрузить ее сразу можно командой ollama stop llama3:8b.

Управление скачанными моделями. Каждая загруженная модель занимает место на диске. Посмотреть список сохраненных моделей позволяет команда:

ollama list

Если модель больше не нужна, освобождаем место на диске:

ollama rm gemma2:9b

Команда удалит файлы модели из хранилища. Слои, которые используют другие модели, останутся на месте.

Основные команды Ollama. Команды, которые чаще всего понадобятся в работе:

Команда Что делает
ollama pull <модель> Скачивает модель из каталога
ollama run <модель> Запускает диалог с моделью, при необходимости сначала скачивает ее
ollama list Показывает скачанные модели
ollama ps Показывает модели, загруженные в память, и распределение нагрузки между CPU и GPU
ollama stop <модель> Выгружает модель из памяти
ollama rm <модель> Удаляет модель с диска
ollama show <модель> Выводит параметры модели: размер, квантование, длину контекста
ollama serve Запускает сервер Ollama вручную, без менеджера служб

Как настроить Ollama для удаленного доступа на сервере Servercore

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

Выбор серверной конфигурации. В Servercore под такие задачи подходят три варианта:

  • Облачный сервер (VPS) на CPU. Оптимален для эмбеддингов, классификации текстов, компактных моделей и отладки микросервисов. Ядра и память можно увеличить в панели управления без переустановки окружения.
  • Облачный сервер с GPU. Размер модели здесь ограничен только объемом видеопамяти выбранной карты. Видеокарта подключается к виртуальной машине целиком, поэтому все ее ресурсы доступны вашей модели. Оплата почасовая, а сервер можно остановить, когда видеокарта не нужна: удобно для пилотных проектов и переменной нагрузки.
  • Выделенный сервер с GPU. Подходит для постоянной круглосуточной нагрузки, например для корпоративных сервисов и диалоговых систем с большим числом пользователей. Все ресурсы физического сервера принадлежат только вам и не делятся с другими клиентами, а конфигурацию можно подобрать под задачу.
Выделенные серверы с GPU Servercore

Ресурсы только ваши, SLA 100% и замена железа за 3 часа

Арендовать сервер

Установка и сетевая конфигурация. Развернем сервис на сервере с Ubuntu 22.04 или 24.04 LTS. Если на сервере есть GPU, предварительно установите драйвер NVIDIA и проверьте его командой nvidia-smi.

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

По умолчанию служба принимает подключения только с адреса 127.0.0.1. Разберем, как настроить Ollama, чтобы к сервису можно было обращаться с других машин и из Docker-контейнеров. Открываем настройки системного юнита:

sudo systemctl edit ollama.service

В открывшемся редакторе добавляем строки:

[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"

Переменная OLLAMA_HOST со значением 0.0.0.0 разрешает принимать входящие подключения на всех сетевых интерфейсах. Перезапускаем сервис:

sudo systemctl daemon-reload
sudo systemctl restart ollama

Если запускать Ollama вручную без менеджера служб, переменную нужно передать в команду: OLLAMA_HOST=0.0.0.0:11434 ollama serve. Но для постоянной работы надежнее systemd: он автоматически перезапустит сервис после сбоя или перезагрузки сервера.

Настройка безопасности и проксирование трафика. Будьте предельно внимательны: у Ollama нет встроенной авторизации, паролей или проверки токенов. Если просто открыть порт 11434 в интернет, любой желающий сможет отправлять запросы, расходовать ресурсы GPU, скачивать и удалять модели.

Поэтому первым делом закрываем лишние порты файрволом и оставляем открытыми только SSH и веб-трафик:

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw allow 80,443/tcp
sudo ufw allow from 172.16.0.0/12 to any port 11434 proto tcp
sudo ufw enable

Предпоследнее правило открывает порт 11434 только для внутренних сетей Docker. Оно понадобится, если вы будете запускать Open WebUI в контейнере (об этом ниже).

Чтобы безопасно открыть доступ к API, ставим перед сервисом веб-сервер Nginx в роли обратного прокси (reverse proxy). Он будет проверять пароль, а SSL-сертификат зашифрует трафик.

Устанавливаем Nginx и утилиты аутентификации:

sudo apt install -y nginx apache2-utils

Создаем пользователя и пароль:

sudo htpasswd -c /etc/nginx/.htpasswd api_user

Создаем файл конфигурации /etc/nginx/sites-available/ollama:

server {
listen 80;
server_name llm.your-domain.com;
location / {
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_pass http://127.0.0.1:11434;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# Отключаем буферизацию для стриминга токенов
proxy_buffering off;
proxy_read_timeout 600s;
}
}

Включаем виртуальный хост и перезагружаем Nginx:

sudo ln -s /etc/nginx/sites-available/ollama /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl restart nginx

Остается выпустить бесплатный SSL-сертификат Let’s Encrypt. Для этого домен llm.your-domain.com должен указывать на IP-адрес сервера:

sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d llm.your-domain.com

Certbot сам добавит в конфигурацию Nginx настройки для порта 443 и перенаправление с HTTP на HTTPS. Теперь порт 11434 закрыт извне, а все обращения к API идут через зашифрованный шлюз с проверкой пароля.

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

  • Вертикально: перейти на видеокарты с большим объемом VRAM (например, с 24 ГБ на 80 ГБ), чтобы держать в быстрой памяти длинный контекст и параллельные запросы. Сколько запросов одна модель обрабатывает одновременно, задает переменная OLLAMA_NUM_PARALLEL.
  • Горизонтально: поднять несколько серверов с одинаковыми моделями за балансировщиком нагрузки. Это может быть облачный балансировщик Servercore или собственный HAProxy либо Nginx с алгоритмом Least Connections, который отправляет запрос на наименее загруженный сервер.
Managed Kubernetes от Servercore

Кластеры с GPU-нодами, автообновления и SLA

Узнать больше

Как пользоваться Ollama API и подключить внешние интерфейсы

Интеграция через REST API. Сервис предоставляет готовые эндпоинты: /api/generate для одиночных запросов и /api/chat для диалога с сохранением контекста. Кроме того, у Ollama есть эндпоинт /v1/chat/completions, совместимый с API OpenAI: к нему можно подключить приложения и библиотеки, написанные под OpenAI, просто заменив адрес.

Пример прямого запроса через curl:

curl http://localhost:11434/api/generate -d '{
"model": "llama3:8b",
"prompt": "Опиши принцип работы шины PCI Express за одно предложение.",
"stream": false
}'

Пример отправки запроса в коде на Python:

import requests
url = "http://localhost:11434/api/chat"
payload = {
"model": "llama3:8b",
"messages": [
{"role": "user", "content": "Как посчитать свободную память в Linux?"}
],
"stream": False
}
response = requests.post(url, json=payload)
print(response.json()["message"]["content"])

Если Ollama работает на сервере за Nginx, запросы отправляются на ваш домен с логином и паролем:

curl -u api_user:ваш_пароль https://llm.your-domain.com/api/generate -d '{
"model": "llama3:8b",
"prompt": "Привет!",
"stream": false
}'

Развертывание веб-панели Open WebUI. Если работать через консоль неудобно и нужен полноценный графический интерфейс (GUI), похожий на популярные AI-чаты, поднимаем Open WebUI. Панель поддерживает учетные записи сотрудников, сохраняет историю переписки и позволяет загружать документы для баз знаний.

Проще всего запустить панель с помощью Docker и плагина Docker Compose. Создаем файл docker-compose.yml:

services:
open-webui:
image: ghcr.io/open-webui/open-webui:main
container_name: open-webui
restart: always
ports:
- "3000:8080"
extra_hosts:
- "host.docker.internal:host-gateway"
environment:
- 'OLLAMA_BASE_URL=http://host.docker.internal:11434'
volumes:
- open-webui-data:/app/backend/data
volumes:
open-webui-data:

Запускаем контейнер в фоновом режиме:

docker compose up -d

Интерфейс будет доступен по адресу http://ip-вашего-сервера:3000. Панель сама подключится к Ollama через адрес host.docker.internal и покажет список доступных моделей в выпадающем меню. Для этого Ollama должен слушать 0.0.0.0, а в ufw должно быть правило для сетей Docker, которое мы добавили выше.

Первый зарегистрированный пользователь автоматически получает права администратора, поэтому создайте учетную запись сразу после запуска. Учтите, что Docker публикует порты в обход правил ufw, и порт 3000 будет открыт в интернет. Для постоянной работы укажите в docker-compose.yml «127.0.0.1:3000:8080» и откройте панель через Nginx с HTTPS так же, как API.

Облачные серверы от Servercore

Оплата по факту и масштабирование ресурсов в несколько кликов

Арендовать сервер

Частые проблемы при работе с Ollama

Ollama не запускается. Проверьте статус сервиса командой sudo systemctl status ollama, а подробности ошибки посмотрите в журнале: journalctl -u ollama -n 50. Частая причина в том, что порт 11434 уже занят. Например, если запустить ollama serve вручную при работающей службе, второй процесс завершится с ошибкой address already in use. Узнать, какой процесс занял порт, можно командой sudo ss -tulpn | grep 11434.

Модель работает слишком медленно. Если генерация замедлилась до 1–2 токенов в секунду, скорее всего, модель не помещается в видеопамять и движок держит часть слоев в оперативной памяти. Проще всего проверить это командой ollama ps: в колонке PROCESSOR вместо 100% GPU будет указано распределение, например 40%/60% CPU/GPU. Подробности можно найти в системном журнале:

journalctl -u ollama --no-pager -n 50 | grep -i offload

Если в выводе есть строка вида offloaded 10/33 layers to GPU, значит, видеокарте не хватает памяти. Выберите модель с меньшим числом параметров, более сильное квантование (например, Q3 вместо Q4) или уменьшите длину контекста.

Аварийное завершение из-за нехватки RAM. Если модель заведомо не помещается в память, Ollama обычно сообщает об ошибке еще при загрузке. Но если память заканчивается уже в процессе работы, срабатывает защитный механизм ядра Linux (OOM Killer), и сервис аварийно завершается со статусом Killed. Проверить это можно в сообщениях ядра командой dmesg -T | grep -i oom. Решение: выбрать модель меньшего размера или сервер с большим объемом оперативной памяти. Файл подкачки (swap) защитит от падений, но генерация с использованием диска будет очень медленной.

Видеокарта не используется. Если на машине с GPU инференс идет только на CPU, проверьте вывод команды nvidia-smi. Если команда не видит видеокарту, драйвер не установлен или не загружен: установите его и перезагрузите сервер. Если драйвер на месте, посмотрите в журнале (journalctl -u ollama | grep -i gpu), какие устройства обнаружил Ollama, и убедитесь, что системный пользователь ollama добавлен в группы для работы с графическими адаптерами. Официальный скрипт делает это сам, но при ручной установке команду нужно выполнить отдельно:

sudo usermod -aG video,render ollama

После этого перезапустите сервис:

sudo systemctl restart ollama

API недоступен по сети. Если внешний клиент не может подключиться к серверу, проверьте, какие интерфейсы слушает сервис: sudo ss -tlpn | grep 11434.

Если там указан 127.0.0.1:11434, служба принимает только локальные запросы. Проверьте, что в настройках юнита прописан параметр OLLAMA_HOST=0.0.0.0:11434, и перезапустите службу. Если служба слушает 0.0.0.0, но подключиться все равно не удается, проверьте правила файрвола (sudo ufw status) и конфигурацию Nginx (sudo nginx -t).

Закончилось место на системном диске. Языковые модели весят от нескольких до десятков гигабайт и быстро заполняют накопитель. В Linux при установке через официальный скрипт модели хранятся в каталоге /usr/share/ollama/.ollama/models, в Windows и macOS в папке .ollama/models в домашнем каталоге пользователя. Если место не освободилось после ollama rm, проверьте подкаталог blobs: незавершенные загрузки остаются там с суффиксом -partial, их можно удалить при остановленной службе. Чтобы хранить модели на отдельном диске большего объема, укажите путь к нему в переменной OLLAMA_MODELS.

Краткий чек-лист перед запуском

  1. Рассчитайте объем VRAM под нужную модель с запасом 2–4 ГБ на контекст.
  2. Установите Ollama и проверьте ответ сервиса на порту 11434.
  3. Загрузите нужную модель из каталога командой ollama pull.
  4. На сервере обязательно закройте прямой доступ к порту файрволом и настройте Nginx с авторизацией и HTTPS.
  5. Подключите Open WebUI через Docker для удобной командной работы и не оставляйте панель открытой в интернет без защиты.
Начните пользоваться продуктами Servercore сейчас
Регистрация в панели управления займет несколько минут. Уже есть аккаунт? Авторизуйтесь.