Все эти ChatGPT, Claude, Gemini — удобно, мощно, но есть нюанс: твои данные уходят на чужие серверы. Для личных задач это окей. Но что если работаешь с чувствительными данными? Или просто хочешь чтобы ИИ работал без интернета, без подписки и без лимитов?
Вот тут приходит Ollama. Это инструмент который позволяет запускать большие языковые модели прямо на своём железе — будь то домашний компьютер, рабочий ноутбук или VPS.
Я поднял Ollama на своём сервере несколько месяцев назад. Расскажу как это работает, что реально можно делать и где границы возможностей.
Что такое Ollama и почему именно оно
Ollama — это по сути менеджер локальных LLM-моделей. Он берёт на себя всю сложность: скачивает модели, управляет ими, предоставляет API. Ты просто говоришь «хочу llama3» — и через несколько минут у тебя работающая модель с API совместимым с OpenAI.
Почему Ollama а не что-то другое? Несколько причин.
Установка занимает одну команду. Нет зависимостей которые нужно собирать вручную, нет сложных конфигов. Работает из коробки.
Огромный выбор моделей. Llama 3, Mistral, Gemma, Phi, CodeLlama, Qwen — всё это доступно одной командой. Новые модели появляются быстро.
API совместим с OpenAI. Это значит что любое приложение которое умеет работать с ChatGPT — можно переключить на локальную Ollama просто поменяв URL.
Работает на CPU если нет GPU. Медленнее, но работает. На GPU — быстро.
Требования к железу — честно
Здесь важно не питать иллюзий. Локальные LLM требуют ресурсов.
Оперативная память — главное ограничение. Модели загружаются целиком в RAM (или VRAM если есть GPU). Примерный ориентир:
- Маленькие модели (1-3B параметров) — 2-4 ГБ RAM. Быстро, но качество скромное.
- Средние модели (7-8B параметров) — 5-8 ГБ RAM. Хороший баланс качества и скорости.
- Большие модели (13B+) — 10-16+ ГБ RAM. Качество высокое, нужно серьёзное железо.
CPU vs GPU. На CPU модели работают медленно — 5-15 токенов в секунду для средней модели. Это примерно 1-3 слова в секунду. Читать можно, но ждать придётся. На GPU — 30-100+ токенов в секунду, разница ощутимая.
Для сервера без GPU — берите модели до 8B параметров. Для домашней машины с игровой видеокартой — можно и 13B, и больше.
Установка — одна команда
На Linux и macOS:
bash
curl -fsSL https://ollama.com/install.sh | sh
На Windows — скачать установщик с сайта ollama.com.
После установки Ollama запускается как системный сервис и доступен на localhost:11434.
Проверить что работает:
bash
ollama --version
curl http://localhost:11434/api/tags
Первые шаги — скачать и запустить модель
bash
ollama pull llama3.2
Скачает модель Llama 3.2 (3B параметров, ~2 ГБ). Хороший старт — небольшая, быстрая, качество приличное.
Запустить интерактивный чат:
bash
ollama run llama3.2
Пишешь вопрос — получаешь ответ прямо в терминале. Для выхода — /bye.
Популярные модели которые стоит попробовать:
bash
ollama pull llama3.2 # Meta Llama 3.2 3B — быстрая, лёгкая
ollama pull llama3.1:8b # Meta Llama 3.1 8B — хороший баланс
ollama pull mistral # Mistral 7B — отлично для кода
ollama pull codellama # CodeLlama — специализация на коде
ollama pull gemma2:9b # Google Gemma 2 9B — качественная
ollama pull phi3 # Microsoft Phi-3 — маленькая но умная
ollama pull qwen2.5:7b # Alibaba Qwen — хороша с русским языком
Посмотреть скачанные модели:
bash
ollama list
Удалить модель:
bash
ollama rm llama3.2
API — подключаем свои приложения
Вот где начинается настоящая польза. Ollama предоставляет REST API.
Простой запрос:
bash
curl http://localhost:11434/api/generate \
-d '{
"model": "llama3.2",
"prompt": "Объясни что такое Docker одним абзацем",
"stream": false
}'
OpenAI-совместимый endpoint:
bash
curl http://localhost:11434/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "llama3.2",
"messages": [
{"role": "user", "content": "Привет! Как дела?"}
]
}'
Этот endpoint совместим с OpenAI API. Любой код который использует OpenAI SDK — можно переключить на Ollama просто поменяв base URL:
javascript
import OpenAI from 'openai';
const client = new OpenAI({
baseURL: 'http://localhost:11434/v1',
apiKey: 'ollama', // любая строка, не используется
});
const response = await client.chat.completions.create({
model: 'llama3.2',
messages: [{ role: 'user', content: 'Напиши функцию на JavaScript' }],
});
console.log(response.choices[0].message.content);
Запуск на сервере с доступом извне
По умолчанию Ollama слушает только на localhost. Чтобы открыть доступ с других машин:
bash
# Установить переменную окружения
sudo systemctl edit ollama
Добавить в файл:
ini
[Service]
Environment="OLLAMA_HOST=0.0.0.0"
bash
sudo systemctl daemon-reload
sudo systemctl restart ollama
Теперь API доступен на всех интерфейсах. Не забудь закрыть порт файрволом и открыть только для нужных IP:
bash
ufw allow from 192.168.1.0/24 to any port 11434
Или настроить nginx как reverse proxy с авторизацией — чтобы не светить Ollama напрямую.
Docker — запуск в контейнере
Если хочешь изолировать Ollama в контейнере:
yaml
version: '3.8'
services:
ollama:
image: ollama/ollama
ports:
- "11434:11434"
volumes:
- ollama-data:/root/.ollama
restart: unless-stopped
volumes:
ollama-data:
bash
docker compose up -d
# Скачать модель в контейнер
docker exec -it ollama-ollama-1 ollama pull llama3.2
Реальные сценарии использования
Локальный помощник для кода. Настраиваешь Continue или Copilot-альтернативу в VS Code — указываешь Ollama как бэкенд. Автодополнение кода работает локально, никаких данных наружу.
Обработка чувствительных документов. Есть документы которые нельзя загружать в облако — медицинские данные, юридические документы, внутренняя документация компании. Ollama позволяет анализировать их локально.
Автоматизация на сервере. Bash-скрипт который анализирует логи и генерирует отчёт на человеческом языке. Или бот который отвечает на вопросы по внутренней документации. Всё это можно сделать с Ollama без внешних API.
Эксперименты и обучение. Хочешь разобраться как работают LLM, потестировать разные модели, сравнить качество — делай это локально без лимитов и оплаты.
Какие модели хорошо работают с русским языком
Честно — большинство западных моделей обучены в основном на английском. Русский они понимают, но качество ниже чем на английском.
Лучшие варианты для русского:
Qwen2.5 — китайская модель от Alibaba, неожиданно хорошо работает с русским. Рекомендую попробовать в первую очередь.
bash
ollama pull qwen2.5:7b
Llama 3.1 8B — Meta обучила эту модель на многоязычных данных, русский понимает лучше предыдущих версий.
GigaChat и другие русскоязычные модели — иногда появляются в репозитории Ollama, стоит периодически проверять.
Для серьёзной работы на русском языке — пока лучше использовать облачные модели. Локальные хороши для технических задач где основной язык — английский (код, конфиги, документация).
Ограничения — говорю честно
Качество ниже GPT-4 и Claude. Это факт. Локальные открытые модели хорошие, но до топовых закрытых моделей пока не дотягивают — особенно в рассуждениях и сложных задачах.
Скорость на CPU невысокая. Если нет GPU — придётся ждать. Для интерактивного чата терпимо, для batch-обработки большого количества документов — медленно.
Контекстное окно меньше. У большинства локальных моделей контекст 4-8k токенов против 200k у Claude. Длинные документы не влезут.
Требует ресурсов. На слабом VPS с 2 ГБ RAM — работать будет плохо. Минимум 4-8 ГБ RAM для комфортной работы.
Итог
Ollama — отличный инструмент если у тебя есть задачи которые требуют приватности, или ты хочешь поиграть с LLM без подписки. Установка простая, моделей много, API удобный.
Не ждать чудес в качестве — локальные модели хороши, но не идеальны. Используй их там где это подходит: помощь с кодом, анализ документов, автоматизация, эксперименты.
А если нужно максимальное качество — облачные модели пока выигрывают. Оптимальная стратегия: Ollama для рутины и приватных задач, Claude или GPT-4 для сложных случаев.