1. Что такое Ollama и зачем это нужно
Ollama — инструмент для локального запуска больших языковых моделей (LLM). Он скачивает модель, управляет её жизненным циклом и предоставляет REST API, совместимый с форматом OpenAI. Никакого облака — всё на вашем сервере.
Приватность
Запросы и ответы не покидают ваш сервер. Подходит для конфиденциальных задач: корпоративные данные, личные документы, внутренние чат-боты.
Экономия
Нет оплаты за токены. VPS за 1 000–2 000 ₽/мес заменяет API-бюджет при активном использовании.
Свобода
Нет цензуры и ограничений политики использования. Работает оффлайн. Доступны дообученные модели под конкретные задачи.
Ollama устанавливается как systemd-сервис и автоматически стартует при загрузке. Поддерживает автоопределение GPU (NVIDIA CUDA, AMD ROCm), но отлично работает и на CPU-only VPS.
Без GPU — тоже работает
На обычном VPS без видеокарты Ollama запускает модели на CPU. Скорость: 2–6 токен/сек для 7–8B моделей. Для API-интеграций, автоматизации и генерации в фоне — вполне достаточно.
2. Требования к ресурсам по моделям
Ключевой параметр — количество RAM. Модели загружаются целиком в память. Ollama автоматически использует квантизацию Q4_K_M, которая сжимает веса в 4 раза практически без потери качества.
| Модель | RAM (Q4) | VPS минимум | CPU скорость | Назначение |
|---|---|---|---|---|
| gemma2:2b | ~2 ГБ | 4 ГБ RAM | 4–8 т/сек | Тесты, лёгкие задачи |
| llama3.2:3b | ~2.5 ГБ | 4 ГБ RAM | 4–8 т/сек | Быстрые ответы, боты |
| mistral:7b | ~5 ГБ | 8 ГБ RAM | 3–6 т/сек | Универсальная, быстрая |
| llama3.1:8b | ~5.5 ГБ | 8 ГБ RAM | 3–6 т/сек | Лучший баланс качество/скорость |
| qwen2.5:7b | ~5 ГБ | 8 ГБ RAM | 3–6 т/сек | Код, русский язык |
| gemma2:9b | ~6 ГБ | 8 ГБ RAM | 3–5 т/сек | Аналитика, суммаризация |
| phi4:14b | ~9 ГБ | 16 ГБ RAM | 2–4 т/сек | Точность, рассуждения |
| deepseek-r1:8b | ~5.5 ГБ | 8 ГБ RAM | 3–6 т/сек | Логика, математика |
| qwen2.5:14b | ~9 ГБ | 16 ГБ RAM | 2–4 т/сек | Код + русский, высокое качество |
| llama3.1:70b | ~42 ГБ | 64 ГБ RAM | < 1 т/сек | Максимум, нужен GPU |
Практический совет
Для большинства задач на обычном VPS оптимальны модели 7–8B. llama3.1:8b или mistral:7b занимают 5–6 ГБ и дают хорошее качество. VPS с 8 ГБ RAM + 4 vCPU — минимально комфортная конфигурация. Модели 70B+ имеют смысл только с GPU.
3. Установка Ollama на Ubuntu
Предварительных зависимостей нет. Официальный скрипт устанавливает Ollama, регистрирует systemd-сервис и автоматически определяет NVIDIA GPU при наличии.
curl -fsSL https://ollama.com/install.sh | shУстановка занимает 30–60 секунд. После этого сервис автоматически запущен:
systemctl status ollama
# ● ollama.service - Ollama Service
# Loaded: loaded (/etc/systemd/system/ollama.service; enabled)
# Active: active (running)
# Проверить версию
ollama --version
# ollama version is 0.6.x
# Проверить API
curl http://localhost:11434/
# Ollama is runningГде хранятся модели
По умолчанию модели скачиваются в ~/.ollama/models/ (для root — в /root/.ollama/models/). Путь можно изменить переменной OLLAMA_MODELS в systemd-конфиге. Учитывайте это при выборе размера диска: модель 7B занимает ~4–5 ГБ.
4. Первый запуск: загрузка и тест модели
Команда ollama run скачивает модель при первом вызове и запускает интерактивный чат.
ollama run mistral:7b
# Pulling manifest
# Pulling fcc5a6bec9da... 100% ▕████████████▏ 4.1 GB
# Verifying sha256 digest
# >>> Send a message (/? for help)
>>> Напиши скрипт на Python для проверки доступности URL# Скачать модель (без запуска)
ollama pull llama3.1:8b
# Список загруженных моделей
ollama list
# NAME ID SIZE MODIFIED
# mistral:7b f974a74358d6 4.1 GB 2 minutes ago
# llama3.1:8b 42182419e950 4.7 GB 1 hour ago
# Информация о модели
ollama show llama3.1:8b
# Удалить модель
ollama rm mistral:7b
# Выйти из интерактивного режима
# /bye или Ctrl+DРекомендуемые модели для старта
ollama pull llama3.1:8b4.7 ГБЛучший выбор для большинства задач. Отличное качество, работает на 8 ГБ RAM.
ollama pull mistral:7b4.1 ГББыстрее llama3.1, чуть скромнее по качеству. Хорош для API-интеграций.
ollama pull qwen2.5:7b4.4 ГБЛучший выбор если нужна работа с русским языком или кодом.
ollama pull deepseek-r1:8b4.9 ГБСпециализирован на рассуждениях, логике, математике. Перед ответом «думает» вслух.
5. Open WebUI — веб-интерфейс как у ChatGPT
Open WebUI — open-source веб-интерфейс для Ollama. Выглядит и работает как ChatGPT: история чатов, переключение моделей, системные промпты, загрузка файлов. Устанавливается через Docker.
Установка Docker (если ещё не установлен)
curl -fsSL https://get.docker.com | sh
systemctl enable --now dockerЗапуск Open WebUI
docker run -d \
--name open-webui \
-p 3000:8080 \
-e OLLAMA_BASE_URL=http://host.docker.internal:11434 \
--add-host=host.docker.internal:host-gateway \
-v open-webui:/app/backend/data \
--restart always \
ghcr.io/open-webui/open-webui:mainПосле запуска Open WebUI доступен на http://<IP_вашего_VPS>:3000. Первый зарегистрированный аккаунт получает права администратора.
Важно: закройте порт 3000 от публичного доступа
Порт 3000 не должен быть открыт для всех — в Open WebUI нет встроенной защиты от перебора. Рекомендуем настроить Nginx с SSL или ограничить доступ по IP через UFW:ufw allow from ВАШ_IP to any port 3000
docker ps
# CONTAINER ID IMAGE PORTS
# a1b2c3d4e5f6 ghcr.io/open-webui/open-webui:main 0.0.0.0:3000->8080/tcp
# Логи Open WebUI
docker logs open-webui --tail 506. REST API — интеграция в свои приложения
Ollama предоставляет REST API на порту 11434. Два основных эндпоинта: /api/generate для одного запроса и /api/chat для диалога с историей. Плюс совместимость с OpenAI через /v1/chat/completions.
/api/generate — простой запрос
curl http://localhost:11434/api/generate \
-d '{
"model": "llama3.1:8b",
"prompt": "Объясни кратко что такое VPS",
"stream": false
}'/api/chat — диалог с историей
curl http://localhost:11434/api/chat \
-d '{
"model": "llama3.1:8b",
"messages": [
{
"role": "system",
"content": "Отвечай кратко и по делу на русском языке."
},
{
"role": "user",
"content": "Сколько RAM нужно для VPS под WordPress?"
}
],
"stream": false
}'OpenAI-совместимый API
Приложения, написанные под OpenAI SDK, работают с Ollama без изменений кода — только меняется base_url:
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:11434/v1",
api_key="ollama", # обязателен по синтаксису, значение игнорируется
)
response = client.chat.completions.create(
model="llama3.1:8b",
messages=[
{"role": "user", "content": "Напиши bash-скрипт для бэкапа директории"}
]
)
print(response.choices[0].message.content)curl http://localhost:11434/api/tags | python3 -m json.tool7. Доступ по сети через Nginx
По умолчанию Ollama слушает только 127.0.0.1:11434 — снаружи недоступен. Чтобы использовать API с других машин, настройте Nginx как reverse proxy с базовой аутентификацией.
Шаг 1: установить Nginx и certbot
apt install nginx certbot python3-certbot-nginx -yШаг 2: создать конфиг Nginx
server {
listen 80;
server_name ollama.example.com;
location / {
proxy_pass http://127.0.0.1:11434;
proxy_buffering off;
proxy_read_timeout 300s;
# Базовая аутентификация
auth_basic "Ollama API";
auth_basic_user_file /etc/nginx/.htpasswd;
}
}apt install apache2-utils -y
htpasswd -c /etc/nginx/.htpasswd myuser
# New password: ****
ln -s /etc/nginx/sites-available/ollama /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
# Получить SSL-сертификат
certbot --nginx -d ollama.example.comШаг 3: проверить доступ снаружи
# С другой машины (замените домен и пароль)
curl https://ollama.example.com/api/tags \
-u myuser:mypassword
# Использование в Python с аутентификацией
from openai import OpenAI
client = OpenAI(
base_url="https://ollama.example.com/v1",
api_key="myuser:mypassword",
)Не открывайте Ollama без защиты
Если выставить Ollama напрямую через OLLAMA_HOST=0.0.0.0 без аутентификации — любой сможет использовать ваши модели и загружать новые. Всегда используйте Nginx + auth_basic или ограничивайте доступ по IP.
8. Какую модель выбрать
Выбор зависит от задачи и объёма RAM. Вот практические рекомендации:
VPS 4 ГБ RAM — только лёгкие модели
Запустите gemma2:2b или llama3.2:3b (~2–2.5 ГБ). Подходит для тестирования и простых задач. Реальной продуктивной нагрузки тут нет.
VPS 8 ГБ RAM — оптимально для большинства задач
Золотой стандарт: llama3.1:8b или mistral:7b. Для русского языка и кода — qwen2.5:7b. Скорость 3–6 т/сек на CPU — медленно для чата, но нормально для API и автоматизации.
VPS 16 ГБ RAM — высокое качество без GPU
phi4:14b или qwen2.5:14b — заметно лучше 7–8B моделей в рассуждениях и работе с русским. Скорость 2–4 т/сек. Также можно держать несколько 7B моделей одновременно.
VPS с GPU (NVIDIA) — максимальная скорость
Скорость 30–80+ т/сек. 8B модели летают. Подходит для продакшн-нагрузки и интерактивных чат-ботов. Ollama автоматически определяет CUDA при установке.
| Задача | Рекомендованная модель |
|---|---|
| Общение, вопросы и ответы | llama3.1:8b |
| Написание и редактирование кода | qwen2.5:7b или qwen2.5:14b |
| Логика, математика, рассуждения | deepseek-r1:8b |
| Суммаризация длинных текстов | mistral:7b или gemma2:9b |
| Работа с русскоязычным контентом | qwen2.5:7b |
| Минимальные ресурсы (4 ГБ RAM) | gemma2:2b или llama3.2:3b |
| Максимальное качество (16 ГБ) | phi4:14b |