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 run mistral --temperature 0.7 --top-p 0.9 --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 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):

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

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

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

Что дальше:

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