Серверное оборудование для бизнеса — надёжные решения для любых задач Подробнее →
Статья

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

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

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

Установка

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

# Проверить что всё работает
ollama --version

На Windows — установщик с официального сайта. Ollama автоматически определяет доступные GPU (NVIDIA CUDA, AMD ROCm, Apple Metal) и использует их если есть.

Первая модель

# Скачать и запустить Llama 3.2 (3B параметров, ~2 ГБ)
ollama run llama3.2

# Или более мощную Qwen 2.5 (7B, ~4.5 ГБ)
ollama run qwen2.5:7b

# Посмотреть все доступные модели
ollama list

# Скачать модель без запуска
ollama pull mistral:7b

После запуска ollama run вы попадаете в интерактивный чат прямо в терминале. Модель уже локально — никаких API-ключей.

REST API

Ollama запускает сервер на localhost:11434. Это позволяет интегрировать его в любое приложение:

# Простой запрос через curl
curl http://localhost:11434/api/generate 
  -d '{"model": "llama3.2", "prompt": "Объясни что такое TCP/IP", "stream": false}'

# Совместимый с OpenAI API endpoint
curl http://localhost:11434/v1/chat/completions 
  -H "Content-Type: application/json" 
  -d '{
    "model": "llama3.2",
    "messages": [{"role": "user", "content": "Привет!"}]
  }'

OpenAI-совместимый endpoint позволяет подключить Ollama к любому инструменту написанному для ChatGPT — без изменений кода, только поменять base_url.

Python интеграция

pip install ollama
import ollama

response = ollama.chat(
    model='qwen2.5:7b',
    messages=[
        {'role': 'system', 'content': 'Ты опытный DevOps инженер.'},
        {'role': 'user', 'content': 'Как настроить nginx для проксирования к FastAPI?'},
    ]
)
print(response['message']['content'])

Стриминг:

for chunk in ollama.chat(model='llama3.2', messages=[...], stream=True):
    print(chunk['message']['content'], end='', flush=True)

Какую модель выбрать

  • 3−7B параметров: работает на CPU или на GPU с 4−8 ГБ VRAM. Llama 3.2 3B, Phi-3 mini, Gemma 2 2B
  • 13−14B: нужно 8−12 ГБ VRAM. Qwen 2.5 14B, Mistral 7B (в GGUF квантованной версии)
  • 30−70B: профессиональные GPU или несколько карт. Llama 3.1 70B, Qwen 2.5 72B

Если GPU нет — Ollama работает на CPU, просто медленнее: 3B модель выдаёт 10−20 токенов/с на современном процессоре, что вполне приемлемо.

Свой Modelfile

Можно создать кастомную модель с системным промптом:

FROM llama3.2
SYSTEM Ты — технический ассистент команды DevOps компании Acme. Отвечай только на русском. Если не знаешь ответ — честно скажи об этом.
PARAMETER temperature 0.3
ollama create acme-assistant -f ./Modelfile
ollama run acme-assistant

Open WebUI: браузерный интерфейс

Для коллег которым терминал не близок — Open WebUI:

docker run -d 
  -p 3000:8080 
  -e OLLAMA_BASE_URL=http://host.docker.internal:11434 
  --name open-webui 
  ghcr.io/open-webui/open-webui:main

Полноценный чат-интерфейс в браузере, поддержка нескольких моделей, история разговоров, загрузка документов. Ollama + Open WebUI — это готовый self-hosted ChatGPT для вашей команды.

3 Ответа

  1. Open WebUI это вообще отдельная история — у нас вся команда пользуется, люди которые никогда с LLM не работали сразу разобрались. Отличная связка с Ollama.

  1. Попробовала Qwen 2.5 7B для написания кода — результат лучше чем ожидала, особенно для Python. На старой RTX 3080 летает нормально.

  1. OpenAI-совместимый endpoint это киллер-фича — подключил к своему Obsidian плагину и теперь локальная нейронка помогает с заметками без единого запроса во внешний интернет.