Самостоятельно разместить Ollama на LLM сервере и взять под контроль цензуру AI
Ключевые термины
Перед началом настройки вот термины, которые с наибольшей вероятностью могут запутать читателей этого руководства. Этот краткий словарь с самого начала проясняет терминологию Linux, GPU и локальных моделей.
| Ключевой термин | Краткое объяснение |
|---|---|
| 🤖 LLM | Large Language Model; AI модель, которая генерирует текст на основе запросов. |
| 🦙 Ollama | Локальный запускатель моделей и сервер для загрузки, развертывания и вызова LLM на вашей собственной машине. |
| 🖥️ GPU | Графический процессор, используемый здесь для ускорения вывода модели. |
| 💾 VRAM | Память на GPU; это один из основных факторов, ограничивающих размер модели, которая может поместиться на карту. |
| ⚡ Inference | Процесс запуска модели для генерации ответа. |
| 🔄 systemd | Менеджер сервисов Linux, используемый для запуска, остановки, перезагрузки и включения сервисов, таких как Ollama. |
| 🧩 NVIDIA driver | Программный слой, который позволяет Ubuntu правильно взаимодействовать с GPU NVIDIA для вычислительных задач. |
| 🚫 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; часто безопаснее числовых ID GPU, так как порядок устройств может измениться. |
| 🔒 TLS | Шифрование, используемое HTTPS и обратными прокси для защиты трафика между клиентами и сервером. |
| 🌐 Reverse proxy | Фронтенд-сервис, который может добавлять TLS, аутентификацию и контролируемый публичный доступ перед перенаправлением запросов в Ollama. |
| 🎛️ Temperature / seed | Параметры генерации; температура влияет на случайность, а фиксированное значение seed помогает сделать повторные тесты более сравнимыми. |
| 🧱 CPU spill / mixed path | Ситуация, когда часть модели или рабочей нагрузки выходит за пределы памяти GPU и использует ресурсы CPU, что может замедлить вывод. |
| 🔧 nvidia_uvm | Модуль ядра NVIDIA, связанный с управлением памятью GPU, который иногда требует перезагрузки при устранении неполадок. |
Почему самостоятельный хостинг LLM стоит того

Если вы уже проделали сложную работу — арендовали GPU сервер, установили Ubuntu, научились работать с SSH и поддерживали собственные сервисы в рабочем состоянии — быстро становится раздражающим, когда размещённый AI всё ещё контролирует последний этап. Он может отклонить совершенно обычный запрос, скрыть ответ под слоем дисклеймеров, изменить стиль ответа без предупреждения и направлять каждый запрос через чужие границы. Для многих технических пользователей это настоящее разочарование: не только то, что говорит модель, но и кто контролирует уровень обслуживания, когда она это говорит.
Это руководство о решении этой проблемы с помощью открытых и локальных моделей, а не о трюках обхода для проприетарных API. Вы будете самостоятельно размещать Ollama на Ubuntu GPU сервере, запускать вывод локально, проверять, что путь GPU реален, и видеть, что меняется при выборе другого семейства моделей. Одно заблуждение, которое нужно развеять с самого начала: самостоятельный хостинг не означает автоматически неограниченность. Это означает, что вы контролируете гораздо большую часть стека — и вы перестаёте зависеть от контролируемого поставщиком пути обслуживания — но модель, которую вы запускаете, всё ещё может иметь собственное поведение выравнивания.
📝 Примечание: Команды в этом руководстве проверены в соответствии с текущей документацией Ollama, но показанные ниже выходные данные терминала являются репрезентативными примерами, а не живыми снимками тестирования производительности. Используйте их как образец успеха, а не как утверждение производительности.
К концу вы будете иметь работающий сервис Ollama на Ubuntu, проверенный локальный API по адресу 127.0.0.1:11434, доказательство того, что вывод на основе GPU действительно происходит, и обоснованное сравнение между основной выровненной моделью и менее ограниченной альтернативой. Это руководство написано для читателей, которые комфортно работают с SSH, Ubuntu, sudo и systemd, но которым не требуется предыдущий опыт работы с Ollama.
Точный GPU сервер Ubuntu, используемый в этом руководстве

Это пошаговое руководство основано на реальной машине 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; более крупные модели становятся решениями о переполнении или обновлении |
На практике это очень мощная конфигурация для повседневных моделей класса 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 531+ как реальный минимум для поддерживаемого NVIDIA inference. Рассматривайте 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-open
rebootПосле перезагрузки повторно запустите:
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 ps
watch -n 1 nvidia-smi
ollama 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-запрос к нативной конечной точке 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 также предоставляет локально конечные точки /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” легко неправильно прочитать. Это не означает, что вы общаетесь с OpenAI, и это не меняет того факта, что сервер по-прежнему локальный. Это только означает, что форма запроса достаточно знакома инструментам и SDK, созданным по шаблону API OpenAI. Базовый 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, и вы больше не маршрутизируете локальные подсказки через уровень модерации, принадлежащий поставщику. Это реальный сдвиг в конфиденциальности и контроле. Что это не доказало, так это то, что каждая локальная модель будет вести себя одинаково или что каждый отказ в будущем был вызван облачным провайдером.
Вот где вступает в игру выбор модели. Если вы хотите практический эффект меньшего количества дисклеймеров, более прямых ответов или поведения, менее склонного к отказам, вы не получите это, говоря “самостоятельно размещено” громче. Вы получите это, выбрав другое семейство модели или тонкую настройку — и поняв компромиссы, которые с этим связаны.
Выберите менее ограниченную локальную модель

Если вы хотите провести честный тест, сравнивайте модели, которые занимают примерно одинаковый размер. Именно поэтому в этом руководстве используется 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 | Основная выровненная базовая модель | Хороший стандартный ориентир для “обычного” современного поведения следования инструкциям |
| dolphin3 | 4.9GB | Основное менее ограниченное сравнение | Аналогичный объём, обычно более прямолинейна, часто менее многословна |
| dolphin-mistral | 4.1GB | Опциональная старая альтернатива | По-прежнему полезна исторически, но не лучший вариант для текущего ежедневного использования |
⚠️ Предупреждение: Другая тонкая настройка — это не “та же модель с удалённой цензурой”. Она может изменить прямолинейность, плотность дисклеймеров и готовность следовать фреймингу пользователя, но также может изменить тон, фактичность, согласованность и общую личность.
Производительность GPU
Перед запуском нужных моделей сначала необходимо понять возможности и ограничения задействованного оборудования. Итак, есть две вещи для концептуального тестирования: во-первых, как выглядит чистое поведение одного GPU на фактическом оборудовании, используемом для этого руководства; во-вторых, что изменится, если позже запустить тот же стек на хосте с двумя GPU. Оба важны, но только первый является живым доказательством с этой точной машины.
На этом сервере лучший тест верхнего диапазона — gpt-oss:20b. Он достаточно большой, чтобы быть интересным, но при этом имеет смысл на одной карте 16GB.
ollama pull gpt-oss:20b

ollama stop mistral
ollama 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, один и тот же prompt, 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 не устраняет всю дисперсию, но снижает достаточно случайности, чтобы различия в тоне и соответствии были легче заметны.
- Безопасный первый prompt: “Означает ли самостоятельное размещение 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 на тот же prompt часто звучит более лаконично:
- 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. - Второй полезный prompt: “Напишите острый аргумент из пяти предложений о том, почему конфиденциальная команда может отклонить управляемый поставщиком AI. Без введения и без заключения.” llama3.1:8b обычно соответствует, но в более взвешенном корпоративном тоне. dolphin3 более охотно следует запрошенной остроте. Это именно то различие, которое вы ищете здесь: не драматичный беззаконный вывод, а изменения в прямолинейности, фреймировании и плотности дисклеймеров.
- Третья категория prompt для валидации может быть следующей: попросите пять фактических причин, по которым писатель может предпочесть локальную модель для необычной, нишевой или немейнстримовой творческой работы. На практике обе модели отвечают, но dolphin3 обычно остается ближе к запрошенному беспристрастному тону и прямым ответам.
Паттерн выглядит так:
| Тип prompt | Базовое поведение llama3.1:8b | Поведение dolphin3 | Практический вывод |
|---|---|---|---|
| Прямолинейность vs осторожность | Более осторожно, немного более объяснительно | Более сжато и прямолинейно | Одни и те же факты, разный стиль отказа/дисклеймера |
| Соответствие острому тону | Часто отвечает, но смягчает риторику | Более готов следовать запрошенному краю | Послушание фреймированию — часть выбора модели |
| Нишевое творческое фреймирование | Фактическое, иногда дополненное | Фактическое, обычно менее морализирующее | “Менее ограниченный” часто проявляется как тон, а не чистая способность |
И таким образом, вот честные выводы:
- Выбор локальной модели значительно изменяет поведение вывода.
- Разные модели различаются по прямолинейности и плотности дисклеймеров.
- Самостоятельное размещение удаляет контролируемый поставщиком уровень обслуживания.
Теперь вы контролируете весь стек, а не только промпт

Разочарование с начала этого руководства было не только в том, что модель отказывается выполнять запрос. Это было о том, что уровень обслуживания, уровень политики и граница приватности находились где-то в другом месте. После этой настройки это изменилось. Ваш сервер вывода работает на вашей машине 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 или большего VRAM | Лучше как цель будущего обновления, чем чистое соответствие для этой конкретной машины |
| Уровень, ориентированный на код | deepseek-coder:33b | 19GB | Требует двойного GPU или большего VRAM | Сильный вариант, если вы перейдёте на более крупный сервер или добавите второй GPU позже |
| Только экспериментально | llama3.1:70b | 43GB | Серьёзное переполнение CPU / намного медленнее / компромиссы по сокращённому контексту | Не реалистичная цель для этого хоста, если вы не согласны с тяжёлыми компромиссами |
Автозапуск и обслуживание
После интересной части приходит часть, которая сохраняет локальный сервер LLM полезным через месяц. Подтвердите поведение при загрузке, держите сервис в актуальном состоянии, следите за логами и знайте, как выгрузить большие модели, когда вам нужна VRAM обратно.
sudo systemctl is-enabled ollama
sudo systemctl enable --now ollama
curl -fsSL https://ollama.com/install.sh | sh
journalctl -u ollama -n 100 --no-pager
Для повседневных операций с моделями это команды, которые вы будете использовать чаще всего:
ollama list
ollama ps
ollama stop gpt-oss:20b
sudo du -sh /usr/share/ollama/.ollama/modelsИ если хранилище модели должно переместиться на больший диск, подготовьте каталог для пользователя сервиса перед переориентацией Ollama:
sudo mkdir -p /mnt/ai/ollama-models
sudo chown -R ollama:ollama /mnt/ai/ollama-modelsЗатем установите OLLAMA_MODELS через systemctl edit ollama. Эта деталь владения — это то, что предотвращает превращение миграции хранилища в проблему с разрешениями.
Справочник по устранению неполадок
Когда что-то ломается, самый быстрый путь — это обычно сопоставление симптома с правильным уровнем вместо попыток случайных циклов переустановки. Используйте эту таблицу как первый проход:
| Симптом | Вероятная причина | Проверить | Исправление |
|---|---|---|---|
| nvidia-smi не работает | Проблема с драйвером или стеком GPU | nvidia-smi, lspci -nnk | grep -A3 -Ei ‘VGA|3D|NVIDIA’, ubuntu-drivers devices | Сначала исправьте слой NVIDIA; если Ubuntu использует nouveau, установите рекомендуемый драйвер NVIDIA, перезагрузитесь и повторно запустите nvidia-smi |
| ollama.service не запускается | Проблема с сервисом, разрешениями или привязкой | systemctl status ollama, journalctl -u ollama -n 100 –no-pager | Разрешите ошибку сервиса перед загрузкой моделей |
| Модель работает на CPU | Обнаружение GPU не удалось или произошёл откат | ollama ps, логи | Перезапустите сервис; если необходимо, перезагрузите nvidia_uvm |
| Активен только один GPU | Модель подходит на одну карту | watch -n 1 nvidia-smi | Это нормально; на хосте с несколькими GPU протестируйте с моделью, которая превышает конверт VRAM одной карты, если вы хотите наблюдать размещение с несколькими GPU |
| Порт 11434 открыт на 0.0.0.0 | Адрес привязки изменён | ss -tlnp | grep 11434 | Установите OLLAMA_HOST=127.0.0.1:11434 и перезапустите |
| Ошибки пути модели после перемещения хранилища | Неправильное владение каталогом модели | ls -ld <model-dir> | sudo chown -R ollama:ollama <model-dir> |
| GPU исчезает после приостановки/возобновления | Проблема NVIDIA UVM | логи и проверки GPU | Перезагрузите nvidia_uvm и перезапустите сервис при необходимости |
Если вы помните только одно операционное правило из этого раздела, пусть это будет: относитесь к Ollama как к реальному сервису, а не как к одноразовой утилите CLI. Логи, владение, адреса привязки и пути хранилища имеют такое же значение, как и окно подсказок.
на всех хостинговых услугах