Ollama: установка и первый запуск локальной нейросети

Локальные нейросети перестали быть уделом энтузиастов с мощными видеокартами. Сегодня любой веб-мастер может запустить современную языковую модель на своём сервере или даже ноутбуке. Это даёт независимость от облачных сервисов, полную приватность данных и возможность экспериментировать без ограничений.

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)

Самый простой способ — официальный скрипт:

Bash
curl -fsSL https://ollama.com/install.sh | sh

Скрипт автоматически определит вашу систему, скачает и установит Ollama, а также настроит systemd-сервис для автозапуска.

Проверка установки:

Bash
ollama --version

Запуск сервиса:

Bash
sudo systemctl start ollama
sudo systemctl enable ollama

2.2 Установка на macOS

Скачайте установщик с официального сайта Ollama и запустите его. После установки Ollama появится в меню приложений и будет доступна в терминале.

Через Homebrew:

Bash
brew install ollama

Запуск:

Bash
ollama serve

2.3 Установка на Windows

Скачайте установщик OllamaSetup.exe с официального сайта и запустите его. После установки Ollama будет доступна в командной строке.

Проверка:

Bash
ollama --version

2.4 Установка в Docker

Если вы используете Docker, можно запустить Ollama в контейнере:

Bash
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:

Bash
export OLLAMA_HOST=0.0.0.0:11434
export OLLAMA_MODELS=/var/lib/ollama/models
export OLLAMA_NUM_PARALLEL=2

Затем перезагрузите конфигурацию:

Bash
source ~/.bashrc

Для systemd (Linux):

Отредактируйте /etc/systemd/system/ollama.service:

Перезапустите сервис:

Bash
sudo systemctl daemon-reload
sudo systemctl restart ollama

3.2 Проверка работы сервера

Bash
curl http://localhost:11434/api/tags

Если сервер работает, вы увидите список установленных моделей (пока пустой).

4. Основные команды Ollama

4.1 Скачивание модели

Bash
ollama pull mistral

Команда скачает модель Mistral 7B (около 4 ГБ). Прогресс будет отображаться в терминале.

4.2 Список установленных моделей

Bash
ollama list

Пример вывода:

4.3 Запуск модели в интерактивном режиме

Bash
ollama run mistral

После загрузки вы увидите приглашение >>>. Можно вводить вопросы и получать ответы.

Пример:

Для выхода введите /bye или нажмите Ctrl+D.

4.4 Удаление модели

Bash
ollama rm mistral

4.5 Просмотр информации о модели

Bash
ollama show mistral

Покажет параметры модели, размер, лицензию.

4.6 Копирование и переименование

Bash
ollama cp mistral my-mistral

5. Первый запуск и общение с моделью

5.1 Выбор модели

Для первого запуска подойдёт небольшая модель, которая работает даже на слабом железе:

МодельРазмерТребованияОсобенности
phi1.6 ГБ4 ГБ RAMБыстрая, для простых задач
gemma:2b1.4 ГБ4 ГБ RAMЛёгкая, от Google
llama3:8b4.7 ГБ8 ГБ RAMБаланс качества и требований
mistral4.1 ГБ8 ГБ RAMОдна из лучших в своём классе
deepseek-coder4 ГБ8 ГБ RAMДля программирования

Рекомендация: начните с mistral или llama3:8b. Если ресурсов мало — phi или gemma:2b.

5.2 Запуск

Bash
ollama run mistral

Первый запуск может занять некоторое время — модель загружается в память.

5.3 Настройка параметров генерации

При запуске можно указать параметры:

Bash
# В Ollama CLI параметры задаются внутри интерактивного режима. Запустите модель:
ollama run mistral

# Затем внутри приглашения >>> введите команды настройки параметров:
>>> /set parameter temperature 0.7
>>> /set parameter top_p 0.9
>>> /set parameter num_predict 512

6. Использование API

Ollama предоставляет REST API на порту 11434. Это позволяет интегрировать модель в любое приложение.

6.1 Генерация текста (эндпоинт /api/generate)

Bash
curl http://localhost:11434/api/generate -d '{
  "model": "mistral",
  "prompt": "Напиши приветствие для сайта",
  "stream": false
}'

Ответ:

JSON
{
  "model": "mistral",
  "response": "Добро пожаловать на наш сайт! Мы рады видеть вас...",
  "done": true
}

6.2 Чат (эндпоинт /api/chat)

Bash
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
<?php
// КРИТИЧЕСКИ ВАЖНО: Подключение автозагрузчика Composer должно идти до любого вызова классов!
require_once __DIR__ . '/vendor/autoload.php';

use GuzzleHttp\Client;

$client = new Client(['base_uri' => 'http://127.0.0.1:11434']); // Обращаемся к локальной петле
try {
    $response = $client->post('/v1/chat/completions', [
        'json' => [
            'model' => 'mistral',
            'messages' => [
                ['role' => 'user', 'content' => 'Напиши функцию для проверки email на PHP']
            ],
            'temperature' => 0.7
        ],
        'timeout' => 30 // Задаем таймаут, так как локальная генерация на CPU может быть долгой
    ]);
    
    $data = json_encode(json_decode($response->getBody(), true));
    echo json_decode($data, true)['choices'][0]['message']['content'];
} catch (\Exception $e) {
    echo "Ошибка обращения к Ollama API: " . $e->getMessage();
}
?>

🚨 ВНИМАНИЕ ВЕБ-МАСТЕРУ! Выставляя переменную OLLAMA_HOST=0.0.0.0:11434, вы открываете порт API для всего интернета. Обязательно закройте порт 11434 во внешнем фаерволе (sudo ufw deny 11434/tcp) или настройте базовую HTTP-авторизацию через Nginx-прокси, чтобы защитить ресурсы вашего GPU/CPU от несанкционированного использования третьими лицами.

Пример на JavaScript (Node.js):

JavaScript
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. Ответ будет приходить по частям, что удобно для чатов.

Bash
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, откройте порт локально.
Модель не понимает русскийМодель обучена только на английскомИспользуйте мультиязычную модель (Mistral, Llama 3).
Долгая загрузка моделиПервый запускПоследующие запуски будут быстрее (модель кешируется).

* Если у вас нет дискретной видеокарты, а генерация на CPU идет медленно, обратите внимание на логи сервера Ollama (OLLAMA_DEBUG=1). Убедитесь, что модель полностью помещается в RAM. Если памяти впритык, Ollama начнет частично сбрасывать слои, что увеличивает время ответа в разы. В таком случае лучше переключиться на квантованные версии моделей меньшего размера (например, с Q4_K_M на Q2_K)

9. Заключение

Ollama — это идеальный старт для работы с локальными нейросетями. Вы установили её, скачали первую модель, научились общаться через CLI и API. Теперь у вас есть собственный AI-ассистент, который работает без интернета, не требует оплаты за токены и полностью контролируется вами.

Что дальше:

  • Попробуйте разные модели и сравните их качество.
  • Настройте API для интеграции с сайтом.
  • Используйте Ollama в RAG-системах (умный поиск по сайту).
  • Запустите модель на сервере и подключайтесь к ней из PHP/JS.

👤 Зарегистрируйтесь, чтобы добавить материал в закладки.