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

  1. Скачать установщик с ollama.com
  2. Установить как обычное приложение
  3. Проверить в терминале: 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

  1. Запустить Ollama: ollama serve
  2. Открыть Open WebUI
  3. Настройки → Подключения → Добавить:
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 GBllama3.2:3b, qwen2.5:3b~10-15 ток/с
16 GBqwen2.5:7b, mistral:7b, llama3.1:8b~5-10 ток/с
32 GBqwen2.5:14b, llama3.1:8b (выше квантизация)~3-5 ток/с
64 GBqwen2.5:32b, llama3.1:70b (Q4)~1-3 ток/с

С GPU

VRAMМоделиСкорость
8 GBqwen2.5:7b (полный)~30-50 ток/с
12 GBqwen2.5:14b~20-30 ток/с
24 GBqwen2.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Использовать меньшую модель или квантизацию

Ссылки