Skip to main content

Інструкція з встановлення та використання Ollama

Зміст

Підготовка до встановлення

Системні вимоги

Залізо:

  • x86_64 процесор з підтримкою AVX2
  • NVIDIA GPU

Linux

Встановлення на Linux

Перевірте наявність/версію NVIDIA драйверу:

nvidia-smi

Arch based:

  1. Встановіть необхідні залежності:
sudo pacman -S base-devel git cuda nvidia-utils curl
  1. Встановіть Ollama:
curl -fsSL https://ollama.com/install.sh | sh
  1. Запустіть сервіс:
sudo systemctl start ollama

3.1 Ввімкнути автостарт сервісу при запуску комп'ютера (рекомендовано):

sudo systemctl enable ollama

Debian based:

  1. Встановіть необхідні залежності:
sudo apt update && sudo apt install -y ca-certificates curl gnupg
  1. Встановіть Ollama:
curl -fsSL https://ollama.com/install.sh | sh
  1. Запустіть сервіс:
sudo systemctl start ollama

3.1 Ввімкнути автостарт сервісу при запуску комп'ютера (рекомендовано):

sudo systemctl enable ollama

Post-installation:

Перевірка викорстання GPU:

Запустіть модель:

ollama run dolphin-mistral:7b

Веддіть команду /bye щоб вийти з інтерактивного чату з моделлю^

/bye

Отримайте список активних моделей:

ollama ps

Якщо значення колонки Proccessor має GPU - Ollama використовує відеокарту

Обмеження доступу до API

!!!УВАГА: Ollama не має механізмів автентифікації, тому за необхіднсти обмежити доступ, помістити АРІ під обернений проксі (reverse proxy) або обмежити доступ через fierwall

Зміна адреси хоста і порту

Ollama за налаштуваннями запускається та очікує на запити на 127.0.0.1:11434 і не прийматиме запитів, надісланих на машину на іншу адресу. Для того щоб Ollama приймала запити надіслані на іншу адресу, необхідно вказати змінну оточення (ENV variable): OLLAMA_HOST з бажаною IP адресою і портом. Для зручности можна вказати 0.0.0.0 адресу і Ollama прийматиме будь-які запити на машину. Для того щоб змінити OLLAMA_HOST:

Linux:

  1. Відредагуйте cервіс systemd за допомогою systemctl edit ollama.service. Це відкриє редактор.

  2. Для кожної змінної оточення додайте рядок Environment у розділі [Service]:

      [Service]
      Environment="OLLAMA_HOST=0.0.0.0»
    
  3. Збережіть і вийдіть.

  4. Перезавантажте systemd і перезапустіть Ollama:

      sudo systemctl daemon-reload
      sudo systemctl restart ollama
    

Базові команди та використання

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

Linux:

ollama serve

Завантаження моделей

ollama pull dolphin-mistral:7b
ollama pull mistral:latest

Запуск з моделей

ollama run dolphin-mistral:7b    # Інтерактивний режим
ollama run ldolphin-mistral:7b

Керування моделями

ollama list          # Список встановлених моделей
ollama rm ldolphin-mistral:7b     # Видалення моделі

API використання

Ollama надає REST API за адресою 127.0.0.1:11434 або адресою, вкащаною в змінній OLLAMA_HOST.

Потокові відповіді

Деякі ендпоїнти передають відповіді у вигляді потоку JSON-об'єктів. Потокове передавання можна вимкнути, вказавши {"stream": false} для цих ендпоїнтів.

POST /api/chat

Генерація тексту, базовано на історії сповіщень

Параметри: Базові:

- `model` (обов'ящковий): назва моделі
- `messages`: список сповіщень чату щоб віслідковувати його історію
- `tools` (опціональний): набір описів інструментів доступних до виклику моделлю. Для використання інтсрументів має бути `{"stream": false}`

Об'єкт сповіщення має наступні поля:

  - `role`: роль сповіщення. `system`, `user`, `assistant`, or `tool`
  - `content`: зміст сповіщення
  - `images` (опціональний): список зображеннь для мультимодальних моделей
  - `tool_calls` (опціональний): список викликів інструментів, які модель хоче використати

Просунуті(Опціональні):

  • format: форматування для відповіді моделі. Може мати значення json або JSON схему
  • options: додаткові параметри моделі. Наприклад temperature для регулювання відхилення ('креативності') моделі
  • stream: якщо false, едпоїнт повертатиме повну відповідь моделі після закінчення генерації
  • keep_alive: як довго модель буде знаходитись вивантаженю в пам'ять після запиту
curl http://localhost:11434/api/chat -d '{
  "model": "llama3.2",
  "messages": [
    {
      "role": "system",
      "content": "You are an experienced forecaster, your task is to answer user questions"
    },
    {
      "role": "user",
      "content": "why is the sky blue?"
    },
    {
      "role": "assistant",
      "content": "due to rayleigh scattering."
    },
    {
      "role": "user",
      "content": "how is that different than mie scattering?"
    }
  ],
  "options": {
    "temperature": 0.7
  },
  "stream": false
}'

Відповідь:

{
  "model": "llama3.2",
  "created_at": "2023-08-04T19:22:45.499127Z",
  "response": "mie scattering involves larger particles and scatters light more evenly.",
  "done": true,
  "context": [1, 2, 3],
  "total_duration": 5043500667,
  "load_duration": 5025959,
  "prompt_eval_count": 26,
  "prompt_eval_duration": 325953000,
  "eval_count": 290,
  "eval_duration": 4709213000
}

Налаштування GPU

  • Для NVIDIA GPU: Переконайтеся, що встановлені останні драйвери та CUDA
  • Ollama автоматично використовуватиме GPU, якщо вона доступна
  • Можна обмежити використання GPU через змінні середовища:
export CUDA_VISIBLE_DEVICES=0  # Використовувати тільки першу GPU

Загрузка другой моделями

https://github.com/ollama/ollama/blob/main/docs/import.md инструкция

Загружаем фаил на сервер с моделью. Создаем фаил Modelfile с содержанием пути к модели FROM /path/to/file.gguf Запускае команду ollama create my-model (Сменить на название которое хочешь) где находиться фаил Modelfile. Модель интегрируеться в олама с названием которое вы указали.

/usr/share/ollama/.ollama/models/blobs удалять хеши моделей

 

 

 


sudo apt-mark hold nvidia-driver-535 nvidia-utils-535 nvidia-dkms-535 linux-image-generic linux-headers-generic Отключил автообновление драйверов что бы не падала видяха для генерации

 

Обновление руками
sudo apt-mark unhold nvidia-driver-535
sudo apt upgrade nvidia-driver-535