Розгорніть Ollama на LLM-сервері самостійно та візьміть під контроль цензуру ШІ
Ключові слова
Перш ніж переходити до налаштування, ознайомтесь із термінами, які найімовірніше можуть збентежити читачів у цьому посібнику. Цей короткий глосарій одразу роз’яснює термінологію Linux, GPU та локальних моделей.
| Ключове слово | Коротке пояснення |
|---|---|
| 🤖 LLM | Large Language Model; модель штучного інтелекту, що генерує текст на основі запитів. |
| 🦙 Ollama | Локальний запускач і сервер моделей для завантаження, обслуговування та виклику LLM на власному комп’ютері. |
| 🖥️ GPU | Графічний процесор, який використовується тут для прискорення інференсу моделей. |
| 💾 VRAM | Пам’ять на GPU; є одним із головних обмежень щодо того, яку за розміром модель можна розмістити на карті. |
| ⚡ Inference | Процес запуску моделі для генерації відповіді. |
| 🔄 systemd | Менеджер служб Linux, що використовується для запуску, зупинки, перезапуску та увімкнення служб, таких як Ollama. |
| 🧩 NVIDIA driver | Програмний шар, що дозволяє Ubuntu коректно взаємодіяти з NVIDIA GPU для обчислювальних навантажень. |
| 🚫 nouveau | Відкритий графічний драйвер Linux, який може перешкодити правильному налаштуванню обчислень NVIDIA, якщо він використовується замість офіційного драйвера NVIDIA. |
| 📊 nvidia-smi | Командний інструмент NVIDIA для перевірки видимості GPU, використання VRAM та стану драйвера. |
| 🔌 API endpoint | URL, який інструменти або скрипти викликають для надсилання запитів до Ollama та отримання відповідей. |
| ☁️ Vendor-controlled serving layer | Шар API, керований провайдером, який може додавати модерацію, журналювання, застосування політик або інші засоби контролю перед тим, як модель відповість. |
| 🧬 Fine-tune | Модифікована версія базової моделі, налаштована для іншого тону, поведінки або спеціалізованих завдань. |
| ⚖️ Model weights | Вивчені внутрішні параметри моделі; самостійне розгортання не змінює їх автоматично. |
| 📝 Modelfile | Файл Ollama, що використовується для створення власного варіанта локальної моделі з вашим системним запитом та параметрами виконання. |
| 🪪 UUID | Стабільний апаратний ідентифікатор GPU; він часто є надійнішим за числові ідентифікатори GPU, оскільки порядок пристроїв може змінюватися. |
| 🔒 TLS | Шифрування, що використовується HTTPS та зворотними проксі для захисту трафіку між клієнтами та сервером. |
| 🌐 Reverse proxy | Клієнтська служба, яка може додавати TLS, автентифікацію та контрольований публічний доступ перед пересиланням запитів до Ollama. |
| 🎛️ Temperature / seed | Параметри генерації; temperature впливає на випадковість, тоді як фіксований seed допомагає зробити повторні тести більш порівнянними. |
| 🧱 CPU spill / mixed path | Ситуація, коли частина моделі або навантаження виходить за межі пам’яті GPU та використовує ресурси CPU, що може сповільнити інференс. |
| 🔧 nvidia_uvm | Модуль ядра NVIDIA, пов’язаний із керуванням пам’яттю GPU, який іноді потребує перезавантаження під час усунення несправностей. |
Чому варто самостійно розгортати LLM

Якщо ви вже зробили найскладніше — орендували GPU-сервер, встановили Ubuntu, розібралися з SSH та підтримуєте власні служби в робочому стані — то швидко починає дратувати те, що хмарний ШІ все одно контролює останній відрізок. Він може відмовити у цілком звичайному запиті, заховати відповідь за застереженнями, без попередження змінити стиль відповідей та передавати кожен запит через чиїсь обмеження. Для багатьох технічних користувачів саме в цьому і полягає справжнє розчарування: не стільки в тому, що говорить модель, а в тому, хто контролює шар обслуговування, коли вона це робить.
Цей посібник присвячений вирішенню цієї проблеми за допомогою відкритих та локальних моделей, а не трюкам для обходу пропрієтарних API. Ви самостійно розгорнете Ollama на Ubuntu GPU-сервері, запустите інференс локально, перевірите, що шлях через GPU є реальним, і побачите, що змінюється, коли ви обираєте іншу сімейство моделей. Одна хибна думка, яку варто розвіяти одразу: самостійне розгортання не означає автоматично необмеженість. Це означає, що ви контролюєте значно більшу частину стека — і перестаєте залежати від шляху обслуговування під контролем постачальника — але модель, яку ви запускаєте, може все одно мати власну поведінку вирівнювання.
📝 Примітка: Команди в цьому посібнику перевірені відповідно до актуальної документації Ollama, але показані нижче виводи терміналу є репрезентативними прикладами, а не результатами реального бенчмаркування. Використовуйте їх як зразок успішного виконання, а не як заяву про продуктивність.
Після завершення у вас буде працюючий сервіс Ollama на Ubuntu, перевірений локальний API за адресою 127.0.0.1:11434, підтвердження того, що інференс із підтримкою GPU дійсно відбувається, та обґрунтоване порівняння між популярною вирівняною моделлю та менш обмеженою альтернативою. Цей посібник розрахований на читачів, які добре знайомі з SSH, Ubuntu, sudo та systemd, але не мають попереднього досвіду роботи з Ollama.
Конкретний Ubuntu GPU-сервер, використаний у цьому посібнику

Цей посібник прив’язаний до реальної однопроцесорної Ubuntu-машини з одним GPU, оскільки розпливчасті поради «має працювати на більшості серверів» — це те, від чого посібники із самостійного розгортання стають оманливими. Еталонна машина тут — це фактичний клас хоста, використаного для цього посібника: тип машини, яку просунутий індивідуальний користувач, лабораторія або невелика команда дійсно б орендували, коли хочуть приватний локальний інференс, не переходячи одразу до стійки корпоративних прискорювачів. Далі буде обговорено поведінку з кількома GPU, оскільки Ollama змінюється, коли модель не вміщується на одній карті, але сприймайте цю частину як контекст на майбутнє, а не як доказ із цього конкретного сервера.
GPU-сервер — Ryzen 9 3950X + RTX 4070 Ti Super
| Компонент | Деталі |
|---|---|
| CPU | AMD Ryzen 9 3950X (16 ядер / 32 потоки) |
| GPU | 1× NVIDIA RTX 4070 Ti Super |
| VRAM | 16GB |
| Можливості | Відмінно підходить для моделей класу 8B; для більших моделей доведеться вирішувати, чи використовувати CPU spill, чи оновлювати обладнання |
На практиці це дуже потужне налаштування для повсякденних моделей класу 8B і все ще корисне для більших локальних завдань аж до моменту, коли 16GB VRAM стає реальним обмеженням. Модель на кшталт llama3.1:8b приблизно з 4.9GB легко вміщується на цій карті. Модель на кшталт gpt-oss:20b приблизно з 14GB — це той тип тесту верхньої межі для одного GPU, який все ще має сенс тут. Модель на кшталт qwen3:30b приблизно з 19GB краще сприймати як орієнтир того, що змінюється на більшому або двопроцесорному хості з GPU, а не як чисте вміщення на цій конкретній машині.
Це розмежування важливе, оскільки мета цієї статті — не втиснути найбільше можливе число в заголовок. Мета — показати, як виглядає розумний самостійно розгорнутий LLM-сервер, коли вам потрібна конфіденційність, локальний контроль і достатньо пам’яті GPU для запуску корисних моделей без постійних компромісів. Саме цей клас обладнання робить самостійний інференс реалістичним, а не теоретичним.
Це також пояснює кілька рішень, які ви побачите далі: mistral використовується спочатку, оскільки вона дає швидке та нескладне підтвердження того, що стек працює, тоді як порівняння поведінки залишається в класі 8B, де ця машина почувається комфортно. qwen3:30b все одно з’являється пізніше, але як теоретичний приклад типу моделі, яка може запустити розміщення на кількох GPU на більшому хості, а не як живий доказ із цього сервера. З урахуванням цих очікувань, наступний крок — перевірити хост перед встановленням Ollama.
Виконайте ці попередні перевірки перед встановленням Ollama

Почніть з nvidia-smi. Якщо ця команда відсутня або не виконується, зупиніться і спочатку виправте драйвер NVIDIA. Не встановлюйте Ollama, оскільки несправний стек NVIDIA змусить кожен подальший симптом виглядати як збій застосунку, тоді як насправді це збій платформи.
Спочатку виконайте перевірку GPU:
nvidia-smi❗Якщо Ubuntu повідомляє, що nvidia-smi відсутній, не припускайте, що сервер не має GPU. Поширена проблема на орендованих Ubuntu-машинах полягає в тому, що карта присутня, але все ще прив’язана до nouveau замість драйвера NVIDIA. Спочатку перевірте розділ «Виправлення проблеми з драйвером Nvidia на Ubuntu».
Справний результат на цьому класі серверів має виглядати приблизно так:

Після того як nvidia-smi працює і GPU видимий, продовжте наведені нижче перевірки.
Що вам потрібно підтвердити — це просто: встановлений GPU видимий, він відображає приблизно 16GB VRAM на цьому хості, і драйвер завантажений коректно. Якщо ви на багатопроцесорному GPU-сервері, та сама команда має відображати кожну карту.
nvidia-smi -L
❗ Важливо: Актуальна документація підтримки GPU для Ollama використовує NVIDIA driver 531+ як реальний мінімум для підтримуваного інференсу NVIDIA. Вважайте 531+ вимогою для цього посібника, навіть якщо ви бачили старіші нотатки спільноти з нижчими версіями.
Тепер переконайтеся, що хост дійсно є середовищем Ubuntu, яке передбачає цей посібник:
lsb_release -a
Нарешті, перевірте вільний дисковий простір перед тим, як починати завантаження моделей. Сам інсталятор займає небагато; моделі — ні. Коли ви вийдете за межі невеликих тестів, бібліотека моделей 20B–30B може швидко з’їсти десятки гігабайт, тому 100GB+ вільного простору — правильний підхід перед серйозною роботою з локальними моделями.
df -h /
Якщо ці перевірки пройдені, ви усунули основні невідомі інфраструктури: GPU присутні, базовий рівень драйвера в нормі, Ubuntu підтверджено, і на диску є місце для реального завантаження моделей. Саме в цей момент встановлення Ollama стає чистим наступним кроком, а не здогадкою.
Виправлення проблеми з драйвером Nvidia на Ubuntu
Виконайте наведені нижче кроки, щоб виправити проблеми з командою «nvidia-smi».
lspci -nnk | grep -A3 -Ei 'VGA|3D|NVIDIA'Якщо у виводі відображається карта NVIDIA та рядок на кшталт Kernel driver in use: nouveau, встановіть рекомендований пакет драйвера Ubuntu замість встановлення лише nvidia-utils.
Встановіть пакет ubuntu-drivers-common (необхідний для керування драйверами) та заголовки ядра для вашого поточного ядра.
apt update
apt install -y ubuntu-drivers-common linux-headers-$(uname -r)Скануйте систему та перегляньте список доступних пропрієтарних драйверів (наприклад, драйверів NVIDIA GPU), які можна встановити.
ubuntu-drivers devicesПотім встановіть рекомендований пакет драйвера. У нашому випадку це: nvidia-driver-595-open:
apt install -y nvidia-driver-595-openrebootПісля перезавантаження повторно виконайте:
nvidia-smi
nvidia-smi -LВстановлення Ollama та перевірка справності служби

Підтримуваний шлях для Ubuntu — офіційний інсталятор Ollama, а не спеціальний потік через tarball і не обхід через Docker. Це важливо, оскільки цей посібник спрямований на отримання надійної локальної служби з передбачуваними налаштуваннями за замовчуванням, інтеграцією systemd та коректною поведінкою щодо прав власності в Linux.
Запустіть інсталятор точно так, як описано в документації:
curl -fsSL https://ollama.com/install.sh | shНа справній системі скрипт встановлює бінарний файл, створює службового користувача ollama, додає правильні членства в групах за наявності, записує модуль systemd і запускає службу, прив’язану до 127.0.0.1:11434.

Після завершення роботи скрипта перевірте службу замість того, щоб припускати успіх:
sudo systemctl status ollama --no-pager
Тут ви шукаєте три речі: файл модуля присутній, служба увімкнена для завантаження та Active: active (running) підтверджує, що сервер дійсно запущений.
Спочатку конкретно встановіть обліковий запис службового користувача Linux, і лише після цього подумайте про те, як і де буде керуватися зберігання моделей.
getent passwd ollama
Цей єдиний рядок пояснює багато майбутньої поведінки. Моделі в Linux зберігаються під власністю служби, і якщо ви пізніше перемістите їх на інший диск без виправлення прав для користувача ollama, ви самі спричините проблему.
Ще одна перевірка завершує цикл щодо прив’язки за замовчуванням:
ss -tlnp | grep 11434
⚠️ Попередження: Ollama за замовчуванням не вимагає автентифікації для локального API. Це нормально, коли він прив’язаний до 127.0.0.1, але відкривати порт 11434 безпосередньо в інтернет як захищену публічну службу небезпечно.
Якщо служба не запускається коректно, спочатку зверніться до журналів, а не перевстановлюйте все наосліп:
journalctl -u ollama -n 100 --no-pagerЦе найшвидший спосіб виявити проблеми з правами доступу, помилки запуску, проблеми виявлення драйверів або проблеми прив’язки. Після того як служба справно працює на localhost, наступне, що потрібно зрозуміти, — це поведінка розміщення на GPU під час виконання.
Як Ollama насправді використовує один або кілька GPU
Хоча сервер, використаний у цьому посібнику, має один GPU, поведінку з кількома GPU все одно варто розуміти, оскільки багато користувачів можуть працювати на більших машинах або планувати розширення в майбутньому. Багато плутанини з двома GPU починається з хибних очікувань: «У мене дві карти, тож обидві мають постійно працювати». Саме так Ollama не працює. Практичне правило значно простіше: якщо модель вміщується на одному GPU, Ollama зазвичай тримає її на одному GPU. Він розподіляє навантаження між кількома GPU лише тоді, коли модель не вміщується комфортно на одній карті.
Використовуйте ці дві перевірки разом, щоб побачити продуктивність GPU:
ollama pswatch -n 1 nvidia-smiollama ps показує, як обробляється завантажена модель. 100% GPU означає, що модель повністю розміщена в пам’яті GPU. 100% CPU означає, що апаратне прискорення GPU не використовується. Змішаний стан означає, що частина навантаження або розміщення вийшла за межі шляху GPU. watch -n 1 nvidia-smi доповнює це, показуючи в реальному часі використання VRAM на кожній карті під час завантаження моделі.
Найшвидший спосіб зрозуміти ці ролі такий:
| Команда | Що вона доводить | Що вона не доводить |
|---|---|---|
| ollama ps | Чи модель працює на GPU, CPU або змішаному шляху | Яка саме карта або карти несуть навантаження |
| watch -n 1 nvidia-smi | Активність VRAM у реальному часі на кожному GPU | Чи використання двох GPU автоматично означає кращий вибір моделі |
📝 Примітка: CUDA_VISIBLE_DEVICES — це засіб контролю видимості, а не перемикач «використовувати обидва GPU». Якщо вам коли-небудь потрібно обмежити доступ до GPU, надавайте перевагу UUID з nvidia-smi -L над числовими ідентифікаторами, оскільки порядок GPU може змінюватися між середовищами та після перезавантажень.
Запустіть свою першу локальну модель і перевірте інференс на GPU
На цьому етапі вам не потрібна величезна модель, щоб довести, що сервер працює. Вам потрібен швидкий, чесний успіх. mistral — хороший перший вибір для завантаження, оскільки вона невелика, швидко завантажується і легко запускається, навіть попри те, що llama3.1:8b буде пізніше базовою лінією для порівняння поведінки.
Почніть із завантаження моделі:
ollama pull mistral
Тепер запустіть невеликий запит, щоб машина зробила щось корисне, а не лише адміністративне. Відповідь може зайняти кілька секунд.
ollama run mistral "In one sentence, explain why people self-host LLMs."
Щоб довести, що це інференс із підтримкою GPU, а не резервний варіант із CPU, перевірте стан виконання:
ollama ps
А щоб побачити, що вже є на диску, перегляньте локальний інвентар:
ollama list
mistral — правильний перший доказ, оскільки вона дає швидку відповідь, не перетворюючи перевірку налаштування на тривале очікування. Пізніше llama3.1:8b стає кориснішою, оскільки є більш потужною вирівняною базовою лінією для порівняння поведінки моделей.
Нарешті, перевірте, де інсталяція Linux зберігає моделі:
sudo du -sh /usr/share/ollama/.ollama/models
Цей шлях — /usr/share/ollama/.ollama/models — є стандартним сховищем моделей Linux, задокументованим Ollama.
Після того як ви побачите успішну відповідь, 100% GPU в ollama ps та збільшення використання диска в очікуваному місці, у вас буде перший вагомий доказ того, що локальний стек працює.
Доведіть, що це сервер, а не просто обгортка CLI

Командний рядок — це зручно, але причина самостійного розгортання Ollama полягає не лише в тому, щоб спілкуватися в терміналі. Мета — запустити локальний сервер інференсу, який інші інструменти, скрипти та застосунки можуть викликати, не надсилаючи запити через чужу межу API. Найшвидший доказ — один чистий HTTP-запит до нативного endpoint’у Ollama.
Надішліть локальний запит generate з вимкненим потоковим режимом, щоб першу відповідь було легше перевірити:
curl http://localhost:11434/api/generate -d '{
"model": "mistral",
"prompt": "Say hello from a self-hosted Ollama server in one sentence.",
"stream": false
}'Успішна відповідь має повернутися у форматі JSON і виглядати приблизно так:
{
"model": "mistral",
"created_at": "2026-05-13T12:45:12.000000Z",
"response": "Hello from a self-hosted Ollama server running locally on Ubuntu.",
"done": true,
"done_reason": "stop",
"total_duration": 812345678,
"load_duration": 12345678,
"prompt_eval_count": 14,
"eval_count": 12
}
Контрольний список успіху простий: HTTP-запит працює локально, повертається коректний JSON, присутній done: true, і відповідь моделі знаходиться в response. Саме в цей момент Ollama перестає бути «CLI, який просто завантажує моделі» і стає інфраструктурою, яку ви можете реально інтегрувати в локальні інструменти та автоматизацію.
Якщо вам потрібна сумісність із програмним забезпеченням, яке очікує формат запиту у стилі OpenAI, Ollama також надає локальні endpoint’и /v1:
curl -X POST http://localhost:11434/v1/chat/completions
-H "Content-Type: application/json"
-d '{
"model": "mistral",
"messages": [
{"role": "user", "content": "Say this is a test."}
]
}'
📝 Примітка: Мітку «OpenAI-compatible» легко неправильно зрозуміти. Це не означає, що ви спілкуєтеся з OpenAI, і це не змінює той факт, що сервер залишається локальним. Це лише означає, що форма запиту достатньо знайома для інструментів та SDK, побудованих за шаблоном OpenAI API. Базова URL-адреса залишається http://localhost:11434/v1/, а будь-який ключ API-заповнювача, на якому наполягають деякі клієнтські бібліотеки, можна ігнорувати для локального використання Ollama.
Звідки насправді походять обмеження моделей

Цю частину зазвичай зводять до однієї розпливчастої ідеї «цензури», але технічно тут задіяні три різні шари: шар обслуговування постачальника, вирівнювання моделі та навчання з інструкціями, а також поведінка запиту/виконання, яку ви контролюєте самостійно. Самостійне розгортання кардинально змінює деякі з цих шарів. Але не всі.
Простий спосіб уявити це:
Cloud API request: You -> Vendor API gateway -> Vendor moderation / policy layer -> Model -> Response Self-hosted Ollama request: You -> Local Ollama server on 127.0.0.1 -> Model -> Response
Результати:
– Шар обслуговування під контролем постачальника зникає з локального шляху
– Межа локальної мережі та журналювання стає вашою
– Власне навчання та вирівнювання моделі залишаються разом із моделлю
Після розмежування шарів попередні кроки налаштування набувають значно більшого сенсу:
| Шар | Чи контролюється локально після цього налаштування? | Доказ | Що залишається вірним |
|---|---|---|---|
| Процес сервера | Так | ollama.service працює на Ubuntu | Тепер ви контролюєте час роботи, журнали, оновлення та адресу прив’язки |
| Межа мережі | Так | Перевірка прив’язки 127.0.0.1:11434 | Локальні запити більше не потребують проходження через модерацію постачальника |
| Системний запит / налаштування виконання за замовчуванням | Так | Modelfile для контрольованого системного повідомлення | Ви можете керувати поведінкою, але не переписувати навчання |
| Шар модерації на стороні постачальника | Зазвичай видалений для локального інференсу | Виклик локального API успішно виконується на localhost | Це один із найбільших зсувів контролю, який дає вам самостійне розгортання |
| Вирівнювання моделі у вагах | Ні, не автоматично | Різне налаштування моделі дає різні результати | Локальна модель може все одно хеджувати, відмовляти або повчати |
| Вибір сімейства моделей | Так | llama3.1:8b проти dolphin3 | Обирайте ту, що найкраще відповідає вашим потребам |
Можна уявити це як театральну постановку. Самостійне розгортання змінює сцену, освітлення, мікрофони та нотатки режисера. Але воно не перенавчає актора. Якщо модель була налаштована відповідати обережно, часто хеджувати або відмовляти від певних формулювань, запуск її локально магічно не скасує це навчання.
Те, що ваше поточне налаштування вже довело, є вужчим, але все одно важливим: ви контролюєте процес сервера, ви контролюєте межу API, і ви більше не маршрутизуєте локальні запити через шар модерації, що належить постачальнику. Це реальний зсув у конфіденційності та контролі. Що це не довело — так це те, що кожна локальна модель поводитиметься однаково або що кожна майбутня відмова була спричинена хмарним провайдером.
Саме тут на перший план виходить вибір моделі. Якщо ви хочете практичного ефекту у вигляді менше застережень, більш прямих відповідей або меншої кількості відмов, ви досягнете цього не тим, що гучніше скажете «самостійно розгорнуто». Ви досягнете цього, обравши інше сімейство моделей або fine-tune — і розуміючи компроміси, які з цим пов’язані.
Вибір менш обмеженої локальної моделі

Якщо ви хочете чесного тесту, порівнюйте моделі приблизно одного розмірного класу. Саме тому в цьому посібнику використовується llama3.1:8b як популярна вирівняна базова лінія, а dolphin3 — як менш обмежена порівняльна модель. Обидві важать приблизно 4.9GB, що дозволяє легше інтерпретувати різницю в поведінці без надмірної зміни апаратного сліду.
Завантажте порівняльні моделі локально:
ollama pull llama3.1:8b
ollama pull dolphin3
# Optional older reference model
ollama pull dolphin-mistralОсь практичне пояснення для трьох назв, які ви найімовірніше зустрінете в цій частині екосистеми Ollama:
| Модель | Прибл. розмір | Роль у цій статті | Практичне значення |
|---|---|---|---|
| llama3.1:8b | 4.9GB | Популярна вирівняна базова лінія | Хорошa стандартна точка відліку для «нормальної» сучасної поведінки виконання інструкцій |
| dolphin3 | 4.9GB | Основна менш обмежена порівняльна модель | Схожий обсяг, зазвичай більш пряма, часто менш «підбита ватою» |
| dolphin-mistral | 4.1GB | Необов’язкова стара альтернатива | Все ще корисна з історичної точки зору, але не найкраща поточна порівняльна модель для щоденного використання |
⚠️ Попередження: Інше fine-tune — це не «та сама модель із видаленою цензурою». Воно може змінити прямолінійність, щільність застережень і готовність слідувати формулюванням користувача, але також може змінити тон, точність, узгодженість і загальну особистість.
Продуктивність GPU
Перш ніж запускати потрібні моделі, спочатку необхідно зрозуміти можливості та обмеження задіяного обладнання. Отже, є дві речі для концептуального тестування: по-перше, як виглядає чиста поведінка одного GPU на реальному обладнанні, використаному в цьому посібнику; по-друге, що змінюється, якщо ви пізніше запустите той самий стек на хості з двома GPU. Обидва важливі, але лише перший є живим доказом із цієї конкретної машини.
На цьому сервері кращим тестом виконання для верхньої межі є gpt-oss:20b. Він достатньо великий, щоб бути цікавим, і при цьому все ще має сенс на одній карті з 16GB.
ollama pull gpt-oss:20b
ollama stop mistralollama run gpt-oss:20b "Explain in one paragraph why a 14GB model is a realistic upper-end single-GPU test on a 16GB card."
Після завантаження моделі підтвердьте стан виконання:
ollama ps
Це практичний доказ, який вам потрібен на цій машині. Він показує, що менші моделі вміщуються легко, і що більша, але все ще реалістична локальна модель може наблизити одну карту з 16GB до межі її використовуваного обсягу, не потребуючи кількох GPU.
Якщо ви пізніше запустите Ollama на хості з двома GPU, модель на кшталт qwen3:30b стає тим типом навантаження, який може продемонструвати розміщення на кількох GPU. Робочий процес той самий — спостерігайте за nvidia-smi, запускайте модель, перевіряйте ollama ps — але мета полягає не в тому, щоб змусити обидві карти працювати заради самого факту. Мета — підтвердити, що Ollama розподіляє модель між кількома GPU лише тоді, коли модель більше не вміщується на одній карті.
Міркування щодо обходу цензури

Для порівняння поведінки тримайте умови під контролем, щоб ви тестували модель більше, ніж випадковість. Використовуйте той самий endpoint, той самий запит, stream: false, низьку температуру та фіксований seed:
curl http://localhost:11434/api/generate -d '{
"model": "llama3.1:8b",
"prompt": "<comparison prompt>",
"stream": false,
"options": {
"temperature": 0.2,
"seed": 42
}
}'Потім повторіть той самий запит із “model”: “dolphin3”. Фіксований seed не усуває всю варіативність, але достатньо зменшує випадковість, щоб полегшити виявлення відмінностей у тоні та дотриманні вимог.
- Безпечний перший запит: «Чи означає самостійне розгортання LLM, що користувач повністю контролює поведінку моделі? Відповідайте у 4 пунктах. Будьте прямолінійні та пропускайте преамбули.» Типова відповідь llama3.1:8b зазвичай звучить так:
- Self-hosting gives you more control over deployment, privacy, and availability. - It does not automatically remove the model's built-in alignment behavior. - The model may still refuse or soften some responses depending on its training. - Full control comes from combining self-hosting with careful model selection and configuration.
Типова відповідь dolphin3 на той самий запит часто звучить більш стисло:
- You control the machine, the network boundary, and the serving layer. - You do not erase the model's training history just by running it locally. - Vendor-side policy can disappear, but model-side alignment can still remain. - Real control comes from choosing a model whose behavior matches your use case.
- Другий корисний запит: «Напишіть гостре аргументоване обґрунтування з п’яти речень, чому команда, чутлива до конфіденційності, може відмовитися від ШІ під управлінням постачальника. Без вступу та висновку.» llama3.1:8b зазвичай відповідає, але більш виваженим корпоративним тоном. dolphin3 охочіше дотримується запитуваної гостроти. Саме такого роду відмінності ви тут шукаєте: не драматично беззаконного результату, а змін у прямолінійності, формулюванні та щільності застережень.
- Третя категорія запитів для перевірки може бути такою: попросіть п’ять фактичних причин, чому письменник може надати перевагу локальній моделі для незвичайної, нішевої або нетрадиційної творчої роботи. На практиці обидві моделі відповідають, але dolphin3 зазвичай залишається ближчою до запитуваного тону без повчань та прямих відповідей.
Шаблон виглядає так:
| Тип запиту | Базова поведінка llama3.1:8b | Поведінка dolphin3 | Практичний висновок |
|---|---|---|---|
| Прямолінійність проти хеджування | Більш обережна, трохи більш пояснювальна | Більш стисла та пряма | Ті самі факти, різний стиль відмов/застережень |
| Дотримання більш гострого тону | Часто відповідає, але пом’якшує риторику | Більш схильна дотримуватися запитуваного тону | Слухняність до формулювання є частиною вибору моделі |
| Нішеве творче формулювання | Фактична, іноді з надмірними доповненнями | Фактична, зазвичай менш повчальна | «Менш обмежена» часто проявляється як тон, а не чиста можливість |
Отже, ось чесні висновки:
- Вибір локальної моделі суттєво змінює вихідну поведінку.
- Різні моделі відрізняються прямолінійністю та щільністю застережень.
- Самостійне розгортання усуває шар обслуговування під контролем постачальника.
Тепер ви контролюєте стек, а не лише запит

Розчарування з початку цього посібника полягало не лише в тому, що модель відмовляла у запиті. Воно полягало в тому, що шар обслуговування, шар політики та межа конфіденційності знаходилися десь в іншому місці. Після цього налаштування ця частина змінилася. Ваш сервер інференсу працює на вашій Ubuntu-машині, локальна межа API належить вам, меню моделей належить вам, і налаштування запитів/виконання за замовчуванням належать вам для налаштування.
Те, що все ще вимагає судження, — це частина, яку жоден інсталятор не може вирішити за вас: вибір моделей, що відповідають вашому варіанту використання, керування ними з розумними налаштуваннями за замовчуванням та безпечне відкриття доступу, якщо ви виходите за межі localhost. Саме так виглядає реальний контроль при самостійному розгортанні. Не магічна свобода від будь-яких обмежень, а власність над стеком, який вирішує, як, де і з якою моделлю відбувається інференс. Якщо ви хочете зробити найкращий наступний крок, почніть зі створення власного Modelfile — або налаштуйте безпечний віддалений доступ перед локальним API, коли будете готові.
Що робити після базового налаштування

На цьому етапі основна обіцянка виконана. Сервер працює, API працює, шлях через GPU реальний, і відмінності в поведінці моделей більше не є абстрактними. Наступний крок — це не «встановлювати більше речей наосліп». Це налаштування тих частин стека, які тепер належать вам.
Налаштування поведінки моделі за допомогою Modelfile
Modelfile — це найчистіший спосіб змінити локальні налаштування запитів за замовчуванням, не торкаючись самих ваг моделі. Почніть з перегляду поточного визначення моделі, щоб зрозуміти, що ви розширюєте:
ollama show --modelfile dolphin3Потім створіть просту локальну варіацію:
FROM dolphin3 SYSTEM You are a direct, factual assistant for a self-hosted Ubuntu LLM server. Prefer short, practical answers and avoid padded disclaimers. PARAMETER temperature 0.2 PARAMETER num_ctx 8192
Зберіть її під новою назвою моделі та протестуйте:
ollama create dolphin3-local -f ./Modelfile
ollama run dolphin3-local "Summarize what changed in this custom model in 3 bullets."❗ Важливо: Modelfile змінює поведінку запитів і виконання, а не історію навчання моделі. Він може керувати тоном та налаштуваннями за замовчуванням, але не перенавчає базову модель.
Захист налаштування
Прив’язка до localhost є хорошим налаштуванням за замовчуванням, але це не кінець історії безпеки. Спочатку повторно перевірте поточну адресу прослуховування:
ss -tlnp | grep 11434Якщо мета — залишити Ollama лише локальним, явно зафіксуйте цю поведінку за допомогою перевизначення systemd:
sudo systemctl edit ollamaДодайте наступне:
[Service] Environment="OLLAMA_HOST=127.0.0.1:11434" Environment="OLLAMA_NO_CLOUD=1"
Потім перезавантажте та перезапустіть службу:
sudo systemctl daemon-reload
sudo systemctl restart ollamaЯкщо вам пізніше знадобиться віддалений доступ, не публікуйте 11434 напряму. Замість цього поставте перед ним зворотний проксі з TLS та автентифікацією:
server {
listen 443 ssl http2;
server_name llm.example.com;
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
location / {
proxy_pass http://127.0.0.1:11434;
proxy_set_header Host localhost:11434;
}
}⚠️ Попередження: Сприймайте публічний доступ як окремий проект із посилення захисту. Ollama сам по собі є локальним сервером інференсу, а не готовим до виробництва публічним шлюзом API із вбудованою автентифікацією, обмеженням частоти запитів та налаштуваннями для роботи в інтернеті.
Рекомендовані моделі для цього обладнання
Після того як базова інсталяція працює, найбільш цінним покращенням є вибір моделей, які дійсно добре підходять для цієї машини, замість погоні за найбільшим заголовком. Для сервера з одним 4070 Ti SUPER, використаного тут, практичне меню виглядає так:
| Варіант використання | Модель | Розмір | Очікуване розміщення | Чому підходить для цієї машини |
|---|---|---|---|---|
| Перший успіх | mistral | 4.4GB | Один GPU | Швидка, проста перевірка з мінімальними труднощами |
| Загальна базова лінія | llama3.1:8b | 4.9GB | Один GPU | Потужна популярна точка відліку |
| Менш обмежена 8B | dolphin3 | 4.9GB | Один GPU | Найкраще порівняння «один до одного» з llama3.1:8b |
| Рівень міркування | gpt-oss:20b | 14GB | Зазвичай один GPU | Сильніше міркування при цьому все ще вміщується без проблем |
| Локальний рівень вищої якості | qwen3:30b | 19GB | Потрібен подвійний GPU або більший |
