Ollama - рантайм для локального запуска больших языковых моделей. Установка и запуск модели выполняются одной командой; ручная настройка зависимостей и виртуальных окружений не требуется.
Локальная машина → Ollama → Модель (Llama, Qwen, Mistral...)
Преимущества:
- Данные не покидают локальную машину
- Инференс не требует интернет-соединения
- Отсутствуют подписки и лимиты
- Работает на CPU (с ограниченной производительностью)
Установка
NixOS
# configuration.nix
services.ollama = {
enable = true;
# Опционально: список моделей для автозагрузки
# models = [ "qwen2.5:7b" ];
};
Применение:
sudo nixos-rebuild switch
Linux (Debian/Ubuntu)
curl -fsSL https://ollama.com/install.sh | sh
Windows
- Скачать установщик с ollama.com
- Установить как обычное приложение
- Проверить в терминале:
ollama --version
Проверка установки
ollama --version
ollama serve # Запуск сервера (если не автозапуск)
Базовое использование
Запуск модели
# Интерактивный чат
ollama run qwen2.5:7b
# Один запрос
ollama run qwen2.5:7b "Напиши функцию на Python для сортировки"
# С системным промптом
ollama run qwen2.5:7b --system "Ты эксперт по Linux" "Как настроить firewall?"
Управление моделями
# Список установленных моделей
ollama list
# Скачать модель без запуска
ollama pull qwen2.5:7b
# Удалить модель
ollama rm qwen2.5:7b
# Информация о модели
ollama show qwen2.5:7b
Доступные модели
| Модель | Размер | Назначение |
|---|---|---|
qwen2.5:7b | ~4.5 GB | Универсальная, код, мультиязычные задачи |
llama3.2:3b | ~2 GB | Быстрая, простые задачи |
mistral:7b | ~4 GB | Универсальная, быстрая |
codellama:7b | ~4 GB | Специализация на коде |
gemma2:9b | ~5.5 GB | Качественные ответы |
llama3.1:8b | ~4.7 GB | Универсальная |
deepseek-r1:8b | ~5 GB | Рассуждения, логика |
Настройка
Параметры запуска
# Увеличить контекст
ollama run qwen2.5:7b --num-ctx 8192
# Температура
ollama run qwen2.5:7b --temperature 0.7
# Максимум токенов в ответе
ollama run qwen2.5:7b --num-predict 1024
Переменные окружения
# Порт (по умолчанию 11434)
OLLAMA_HOST=0.0.0.0:11434 ollama serve
# Директория для моделей
OLLAMA_MODELS=/path/to/models ollama serve
# Количество параллельных запросов
OLLAMA_NUM_PARALLEL=4 ollama serve
В NixOS:
services.ollama = {
enable = true;
host = "0.0.0.0:11434"; # Доступ из сети
};
Кастомная модель (Modelfile)
Файл Modelfile:
FROM qwen2.5:7b
SYSTEM Ты эксперт по Linux и DevOps. Отвечай кратко и по делу.
PARAMETER temperature 0.3
PARAMETER num_ctx 8192
Создание модели:
ollama create my-expert -f Modelfile
ollama run my-expert "Как настроить docker-compose?"
API
Локальный API
Ollama предоставляет HTTP API на порту 11434:
# Список моделей
curl http://localhost:11434/api/tags
# Генерация
curl http://localhost:11434/api/generate -d '{
"model": "qwen2.5:7b",
"prompt": "Привет"
}'
# Чат
curl http://localhost:11434/api/chat -d '{
"model": "qwen2.5:7b",
"messages": [{"role": "user", "content": "Привет"}]
}'
OpenAI-совместимый API
curl http://localhost:11434/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "qwen2.5:7b",
"messages": [{"role": "user", "content": "Привет"}]
}'
Использование в Python:
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:11434/v1",
api_key="ollama" # любое значение
)
response = client.chat.completions.create(
model="qwen2.5:7b",
messages=[{"role": "user", "content": "Привет"}]
)
print(response.choices[0].message.content)
Интеграции
Open WebUI
- Запустить Ollama:
ollama serve - Открыть Open WebUI
- Настройки → Подключения → Добавить:
URL: http://localhost:11434
В Docker:
# docker-compose.yml
services:
open-webui:
image: ghcr.io/open-webui/open-webui:main
environment:
OLLAMA_BASE_URL: http://host.docker.internal:11434
ports:
- "3000:8080"
MCP-серверы
{
"model": "qwen2.5:7b",
"api_base": "http://localhost:11434/v1",
"api_key": "ollama"
}
Continue.dev
В ~/.continue/config.json:
{
"models": [
{
"title": "Ollama Qwen",
"provider": "ollama",
"model": "qwen2.5:7b",
"apiBase": "http://localhost:11434"
}
]
}
Прочие инструменты
| Инструмент | Подключение |
|---|---|
| LibreChat | В librechat.yaml добавить endpoints.custom с baseURL: http://localhost:11434/v1 |
| Flowise | В настройках ноды указать baseURL: http://localhost:11434 |
| AnythingLLM | В настройках подключения выбрать Ollama |
Выбор модели под железо
CPU (без GPU)
| RAM | Модели | Скорость |
|---|---|---|
| 8 GB | llama3.2:3b, qwen2.5:3b | ~10-15 ток/с |
| 16 GB | qwen2.5:7b, mistral:7b, llama3.1:8b | ~5-10 ток/с |
| 32 GB | qwen2.5:14b, llama3.1:8b (выше квантизация) | ~3-5 ток/с |
| 64 GB | qwen2.5:32b, llama3.1:70b (Q4) | ~1-3 ток/с |
С GPU
| VRAM | Модели | Скорость |
|---|---|---|
| 8 GB | qwen2.5:7b (полный) | ~30-50 ток/с |
| 12 GB | qwen2.5:14b | ~20-30 ток/с |
| 24 GB | qwen2.5:32b | ~10-15 ток/с |
Для 16 GB RAM без GPU:
qwen2.5:7bс квантизацией Q4- Контекст 4096-8192 токенов
- Температура 0.3-0.7
Производительность
Квантизация
Снижение квантизации уменьшает потребление памяти, но снижает качество:
# Пример: qwen2.5:7b-instruct-q4_K_M
ollama pull qwen2.5:7b-instruct-q4_K_M
| Квантизация | Размер | Качество |
|---|---|---|
q8_0 | ~8 GB | Отличное |
q5_K_M | ~5.5 GB | Хорошее |
q4_K_M | ~4.5 GB | Хорошее (рекомендуется) |
q3_K_M | ~3.5 GB | Среднее |
q2_K | ~2.5 GB | Низкое |
Контекст
# Увеличить контекст (требует больше памяти)
ollama run qwen2.5:7b --num-ctx 8192
Количество потоков
# Количество параллельных запросов (по умолчанию - все ядра)
OLLAMA_NUM_PARALLEL=4 ollama serve
Частые проблемы
| Проблема | Решение |
|---|---|
ollama: command not found | Перезапустить терминал или добавить в PATH |
| Модель не скачивается | Проверить интернет, свободное место на диске |
| Низкая скорость на CPU | Использовать меньшую модель (3b вместо 7b), уменьшить контекст |
connection refused | Проверить, запущен ли ollama serve |
| Open WebUI не видит модели | Проверить OLLAMA_BASE_URL, перезапустить сервисы |
| Модель “забывает” контекст | Увеличить --num-ctx |
| Out of memory | Использовать меньшую модель или квантизацию |