Локальные нейросети перестали быть уделом энтузиастов с мощными видеокартами. Сегодня любой веб-мастер может запустить современную языковую модель на своём сервере или даже ноутбуке. Это даёт независимость от облачных сервисов, полную приватность данных и возможность экспериментировать без ограничений.
Ollama — самый простой способ начать. Это инструмент, который берёт на себя всю рутину: скачивание моделей, управление ими, запуск сервера и предоставление удобного API. Вам не нужно разбираться с Python-библиотеками, компиляцией и настройкой GPU. Достаточно установить Ollama и выполнить одну команду.
В этой статье мы подробно разберём:
- Что такое Ollama и зачем она нужна.
- Установку на Linux, macOS и Windows.
- Первоначальную настройку и переменные окружения.
- Основные команды для работы с моделями.
- Запуск первой модели и общение с ней.
- Использование API для интеграции с сайтом.
- Выбор модели под свои задачи.
- Частые ошибки и их решение.
1. Что такое Ollama
Ollama — это open-source инструмент для запуска больших языковых моделей (LLM) локально. Он работает как на обычных компьютерах, так и на серверах, поддерживает Linux, macOS и Windows. Ollama автоматически определяет доступное оборудование (CPU, GPU) и оптимизирует работу модели.
Ключевые возможности:
- Установка одной командой.
- Простой CLI для скачивания и запуска моделей.
- REST API, совместимый с форматом OpenAI.
- Поддержка популярных моделей: Llama 3, Mistral, Gemma, Phi, DeepSeek, ruGPT3 и многих других.
- Работа без интернета после скачивания модели.
- Полная приватность: данные не покидают ваш сервер.
Зачем это веб-мастеру:
- Создать умного чат-бота для сайта без оплаты за API.
- Генерировать описания товаров, мета-теги, тексты.
- Анализировать контент, не отправляя его в облако.
- Экспериментировать с AI без ограничений.
- Использовать в RAG-системах (умный поиск по сайту).
2. Установка Ollama
2.1 Установка на Linux (Ubuntu/Debian)
Самый простой способ — официальный скрипт:
curl -fsSL https://ollama.com/install.sh | shСкрипт автоматически определит вашу систему, скачает и установит Ollama, а также настроит systemd-сервис для автозапуска.
Проверка установки:
ollama --versionЗапуск сервиса:
sudo systemctl start ollama
sudo systemctl enable ollama2.2 Установка на macOS
Скачайте установщик с официального сайта Ollama и запустите его. После установки Ollama появится в меню приложений и будет доступна в терминале.
Через Homebrew:
brew install ollamaЗапуск:
ollama serve2.3 Установка на Windows
Скачайте установщик OllamaSetup.exe с официального сайта и запустите его. После установки Ollama будет доступна в командной строке.
Проверка:
ollama --version2.4 Установка в Docker
Если вы используете Docker, можно запустить Ollama в контейнере:
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollamaДля поддержки GPU добавьте флаг --gpus all (требуется NVIDIA Container Toolkit): nvidia-container-toolkit.
3. Первоначальная настройка
3.1 Переменные окружения
Ollama настраивается через переменные окружения. Основные:
| Переменная | Назначение | Значение по умолчанию |
|---|---|---|
OLLAMA_HOST | Адрес и порт сервера | 127.0.0.1:11434 |
OLLAMA_MODELS | Папка для хранения моделей | ~/.ollama/models |
OLLAMA_NUM_PARALLEL | Количество параллельных запросов | 1 |
OLLAMA_MAX_LOADED_MODELS | Максимум загруженных моделей | 1 |
OLLAMA_KEEP_ALIVE | Время хранения модели в памяти | 5m |
Пример настройки (Linux/macOS):
Добавьте в ~/.bashrc или ~/.zshrc:
export OLLAMA_HOST=0.0.0.0:11434
export OLLAMA_MODELS=/var/lib/ollama/models
export OLLAMA_NUM_PARALLEL=2Затем перезагрузите конфигурацию:
source ~/.bashrcДля systemd (Linux):
Отредактируйте /etc/systemd/system/ollama.service:
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_MODELS=/var/lib/ollama/models"Перезапустите сервис:
sudo systemctl daemon-reload
sudo systemctl restart ollama3.2 Проверка работы сервера
curl http://localhost:11434/api/tagsЕсли сервер работает, вы увидите список установленных моделей (пока пустой).
4. Основные команды Ollama
4.1 Скачивание модели
ollama pull mistralКоманда скачает модель Mistral 7B (около 4 ГБ). Прогресс будет отображаться в терминале.
4.2 Список установленных моделей
ollama listПример вывода:
NAME ID SIZE MODIFIED
mistral:latest f974a74358d6 4.1 GB 2 minutes ago4.3 Запуск модели в интерактивном режиме
ollama run mistralПосле загрузки вы увидите приглашение >>>. Можно вводить вопросы и получать ответы.
Пример:
>>> Привет! Как дела?
Я — искусственный интеллект, у меня всё отлично! Чем могу помочь?
>>> Напиши функцию на PHP для проверки email.
function isValidEmail($email) {
return filter_var($email, FILTER_VALIDATE_EMAIL) !== false;
}Для выхода введите /bye или нажмите Ctrl+D.
4.4 Удаление модели
ollama rm mistral4.5 Просмотр информации о модели
ollama show mistralПокажет параметры модели, размер, лицензию.
4.6 Копирование и переименование
ollama cp mistral my-mistral5. Первый запуск и общение с моделью
5.1 Выбор модели
Для первого запуска подойдёт небольшая модель, которая работает даже на слабом железе:
| Модель | Размер | Требования | Особенности |
|---|---|---|---|
phi | 1.6 ГБ | 4 ГБ RAM | Быстрая, для простых задач |
gemma:2b | 1.4 ГБ | 4 ГБ RAM | Лёгкая, от Google |
llama3:8b | 4.7 ГБ | 8 ГБ RAM | Баланс качества и требований |
mistral | 4.1 ГБ | 8 ГБ RAM | Одна из лучших в своём классе |
deepseek-coder | 4 ГБ | 8 ГБ RAM | Для программирования |
Рекомендация: начните с mistral или llama3:8b. Если ресурсов мало — phi или gemma:2b.
5.2 Запуск
ollama run mistralПервый запуск может занять некоторое время — модель загружается в память.
5.3 Настройка параметров генерации
При запуске можно указать параметры:
ollama run mistral --temperature 0.7 --top-p 0.9 --num-predict 5126. Использование API
Ollama предоставляет REST API на порту 11434. Это позволяет интегрировать модель в любое приложение.
6.1 Генерация текста (эндпоинт /api/generate)
curl http://localhost:11434/api/generate -d '{
"model": "mistral",
"prompt": "Напиши приветствие для сайта",
"stream": false
}'Ответ:
{
"model": "mistral",
"response": "Добро пожаловать на наш сайт! Мы рады видеть вас...",
"done": true
}6.2 Чат (эндпоинт /api/chat)
curl http://localhost:11434/api/chat -d '{
"model": "mistral",
"messages": [
{"role": "user", "content": "Привет! Как дела?"}
],
"stream": false
}'6.3 OpenAI-совместимый API
Ollama поддерживает эндпоинт /v1/chat/completions, совместимый с OpenAI. Это значит, что вы можете использовать существующие библиотеки для OpenAI, просто заменив базовый URL.
Пример на PHP (Guzzle):
<?php
composer require guzzlehttp/guzzle
require 'vendor/autoload.php';
use GuzzleHttp\Client;
$client = new Client(['base_uri' => 'http://localhost:11434']);
$response = $client->post('/v1/chat/completions', [
'json' => [
'model' => 'mistral',
'messages' => [
['role' => 'user', 'content' => 'Напиши функцию для проверки email на PHP']
],
'temperature' => 0.7
]
]);
$data = json_decode($response->getBody(), true);
echo $data['choices'][0]['message']['content'];
?>Пример на JavaScript (Node.js):
const fetch = require('node-fetch');
async function askOllama(prompt) {
const response = await fetch('http://localhost:11434/api/generate', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
model: 'mistral',
prompt: prompt,
stream: false
})
});
const data = await response.json();
return data.response;
}
askOllama('Привет!').then(console.log);6.4 Потоковая передача (streaming)
Для длинных ответов используйте "stream": true. Ответ будет приходить по частям, что удобно для чатов.
curl http://localhost:11434/api/generate -d '{
"model": "mistral",
"prompt": "Расскажи про HTTP/2",
"stream": true
}'7. Выбор модели под задачи
| Задача | Рекомендуемая модель | Почему |
|---|---|---|
| Общие вопросы | mistral, llama3:8b | Хороший баланс качества и скорости |
| Программирование | deepseek-coder, codellama | Обучены на коде |
| Русский язык | rugpt3, mistral (мультиязычная) | Понимают русский |
| Быстрые ответы на слабом железе | phi, gemma:2b | Маленькие и быстрые |
| Сложные рассуждения | llama3:70b, mixtral | Требуют много RAM/VRAM. Если запустите на 8 ГБ — можете повесить сервер. |
Как выбрать:
- Если у вас 8 ГБ RAM —
mistralилиllama3:8b. - Если 4 ГБ RAM —
phiилиgemma:2b. - Если есть GPU с 8+ ГБ VRAM — можно запускать 13B модели.
- Для русского языка проверяйте, поддерживает ли модель русский (Mistral, Llama 3 — да).
ВАЖНО! Эти модели — base, не instruction-tuned. Они делают text completion (продолжение текста), а не чат. То есть ollama run evilfreelancer/rugpt3 и вопрос «Привет, как дела?» могут дать странный результат — модель просто продолжит текст, а не ответит как ассистент. Для чат-сценариев лучше Mistral или Llama 3, а ruGPT3 — для генерации текстов на русском, дообучения и экспериментов.
8. Частые ошибки и их решение
| Ошибка | Причина | Решение |
|---|---|---|
Error: connect: connection refused | Сервер Ollama не запущен | Запустите ollama serve или systemctl start ollama. |
| Модель не загружается | Недостаточно памяти | Используйте меньшую модель или закройте другие приложения. |
| Очень медленная генерация | Нет GPU, мало RAM | Уменьшите модель, включите GPU (если есть), увеличьте OLLAMA_NUM_PARALLEL. |
model requires more system memory | Модель слишком большая | Выберите модель меньшего размера. |
| API не отвечает | Порт занят или фаервол | Проверьте OLLAMA_HOST, откройте порт 11434. |
| Модель не понимает русский | Модель обучена только на английском | Используйте мультиязычную модель (Mistral, Llama 3). |
| Долгая загрузка модели | Первый запуск | Последующие запуски будут быстрее (модель кешируется). |
9. Заключение
Ollama — это идеальный старт для работы с локальными нейросетями. Вы установили её, скачали первую модель, научились общаться через CLI и API. Теперь у вас есть собственный AI-ассистент, который работает без интернета, не требует оплаты за токены и полностью контролируется вами.
Что дальше:
- Попробуйте разные модели и сравните их качество.
- Настройте API для интеграции с сайтом.
- Используйте Ollama в RAG-системах (умный поиск по сайту).
- Запустите модель на сервере и подключайтесь к ней из PHP/JS.
