Ollama — удобный способ запустить языковую модель на своём компьютере или сервере без облака и передачи данных третьим лицам. Она скачивает веса, поднимает HTTP-сервер на порту 11434, поддерживает OpenAI-совместимый интерфейс и позволяет собирать варианты моделей через Modelfile. Разберём установку, выбор модели под память, API, systemd и ограничения локального инференса.

Зачем запускать модель локально

Локальный инференс полезен, когда данные нельзя отправлять в облако: документация, код, черновики, переписка. Он не зависит от лимитов внешнего сервиса и после загрузки модели работает без интернета. Платой становятся требования к памяти, скорость генерации и качество моделей, которые помещаются на ваше железо.

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

Требования к железу

Объём памяти — главный ограничитель. Модель на 7–8 млрд параметров в квантовании Q4 занимает около 5 ГБ и работает при 8–12 ГБ ОЗУ. Версии на 13–14 млрд требуют 10–12 ГБ, а 30 млрд и больше — от 20 ГБ. На GPU генерация быстрее, но при нехватке VRAM часть слоёв уходит на CPU.

free -h
nvidia-smi
rocminfo | head -40
df -h ~/.ollama

Для NVIDIA нужен установленный проприетарный драйвер и CUDA, для AMD — ROCm. Ollama проверяет оборудование при старте. Если nvidia-smi не показывает GPU, приложение работает на процессоре — это нормально для небольших моделей.

Установка и запуск

Официальный скрипт ставит бинарник, создаёт пользователя и службу systemd. Проверьте версию и состояние сервиса. Модели хранятся в домашнем каталоге службы, поэтому для сервера отведите отдельный диск.

curl -fsSL https://ollama.com/install.sh | sh
ollama -v
sudo systemctl status ollama
journalctl -u ollama -f

Служба слушает только 127.0.0.1:11434. Не открывайте порт в интернет без аутентификации и TLS: API не предназначен для публичного доступа.

Модели: загрузка и управление

Имя модели состоит из названия и тега, например llama3.2:3b. Тег задаёт размер и квантование. После запуска модель остаётся на диске, а ollama list показывает занятое место. ollama ps подсказывает, что загружено в память.

ollama pull llama3.2:3b
ollama run llama3.2:3b
ollama list
ollama ps
ollama show llama3.2:3b
ollama rm llama3.2:3b

Для кода удобны специализированные модели вроде qwen2.5-coder:7b, для рассуждений — deepseek-r1:8b, для эмбеддингов — nomic-embed-text. Начинайте с небольшой модели: она быстрее и позволяет оценить качество. Перед использованием проверьте лицензию.

Параметры генерации и Modelfile

Поведение модели описывается в Modelfile: базовые веса, системная инструкция, температура, размер контекста и стоп-последовательности. Собранный вариант получает имя и хранится рядом с остальными.

cat > Modelfile <<'EOF'
FROM llama3.2:3b
PARAMETER temperature 0.3
PARAMETER num_ctx 8192
SYSTEM "Ты помогаешь с Linux. Отвечай кратко и по делу."
EOF
ollama create linux-helper -f Modelfile
ollama run linux-helper

Температура управляет вариативностью: 0,2–0,4 подходит для кода и фактов, 0,7–0,9 — для черновиков. num_ctx задаёт контекстное окно, но увеличение съедает память. Если ответ обрывается, проверьте num_predict и доступную память.

API и интеграция

Сервер предоставляет нативный API и совместимый с OpenAI интерфейс. Нативный запрос возвращает JSON, потоковый режим отдаёт токены по мере генерации. OpenAI-клиенты подключаются по адресу http://localhost:11434/v1, ключ может быть любым непустым.

curl http://localhost:11434/api/tags
curl http://localhost:11434/api/generate -d '{
  "model": "llama3.2:3b",
  "prompt": "Что такое systemd?",
  "stream": false
}'
curl http://localhost:11434/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{"model":"llama3.2:3b","messages":[{"role":"user","content":"Привет"}]}'

Для эмбеддингов используйте /api/embed и модель nomic-embed-text: векторы пригодятся для поиска по документации. Open WebUI запускается в Docker и подключается к Ollama на хосте; не публикуйте его без пароля.

Сетевой доступ и настройка systemd

Если модель нужна другим машинам в доверенной сети, добавьте в override строку OLLAMA_HOST=0.0.0.0:11434. Ограничьте доступ файрволом, а при выходе за localhost поставьте reverse proxy с аутентификацией и HTTPS.

sudo mkdir -p /etc/systemd/system/ollama.service.d
sudo tee /etc/systemd/system/ollama.service.d/override.conf <<'EOF'
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_KEEP_ALIVE=30m"
Environment="OLLAMA_MODELS=/srv/ollama/models"
EOF
sudo systemctl daemon-reload
sudo systemctl restart ollama

Создайте каталог моделей и выдайте права пользователю ollama.

OLLAMA_KEEP_ALIVE определяет, сколько модель остаётся в памяти. Большое значение ускоряет повторные обращения, но занимает память. OLLAMA_NUM_PARALLEL задаёт число одновременных запросов; для домашней машины оставьте единицу.

Производительность и диагностика

Скорость измеряется в токенах в секунду и зависит от модели, квантования, контекста и оборудования. Первый ответ медленнее: модель загружается в память. Смотрите журнал службы и статистику GPU. Сравнивайте замеры на одной модели и одинаковом промпте.

ollama ps
nvidia-smi
journalctl -u ollama -n 100 --no-pager
curl -s http://localhost:11434/api/ps

Если ответы медленные, уменьшите модель или контекст, закройте лишние приложения и проверьте, не ушла ли часть слоёв на CPU. Для нескольких пользователей ограничьте параллелизм и вынесите модели на отдельный диск. Проверяйте свободное место: веса моделей занимают много места.

Безопасность и ограничения

  • не выставляйте порт 11434 в интернет без прокси и аутентификации;
  • считайте вывод модели недостоверным и проверяйте факты, код и команды;
  • не передавайте в промпт секреты, ключи и персональные данные без необходимости;
  • следите за лицензией модели и условиями её коммерческого использования;
  • обновляйте Ollama: новые версии исправляют ошибки и добавляют поддержку оборудования.

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

  • определён объём памяти и выбрана модель под него;
  • проверены драйверы GPU и скорость генерации;
  • настроены каталог моделей и автозапуск службы;
  • ограничен сетевой доступ и включён HTTPS при выходе за localhost;

Итог

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

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 0 / 5. Количество оценок: 0

Оценок пока нет. Поставьте оценку первым.

Поделиться: Telegram ВКонтакте