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 для вашей команды.
Open WebUI это вообще отдельная история — у нас вся команда пользуется, люди которые никогда с LLM не работали сразу разобрались. Отличная связка с Ollama.