Введение
В сети сейчас полно «гуру» и коучей, которые обещают запустить собственную LLM почти на ноутбуке. Да, это технически возможно, но обычно речь идёт о моделях в диапазоне от млн до млрд параметров. Такая модель будет работать, однако — медленно, и её практическая ценность будет ограничена. В результате многие пользователи разочаровываются в локальных LLM.
В этой статье я расскажу, как пошагово развернуть собственный сервер для инференса LLM, чтобы получить действительно полезный инструмент.
Зачем нужен локальный сервер LLM?
-
Снижение расходов
-
Доступ к API крупных облачных сервисов (OpenAI, Anthropic, Google AI и т.д.) обходится дорого, особенно при интенсивном использовании.
-
Контроль над данными
-
При работе с конфиденциальной информацией часто требуется, чтобы запросы и ответы оставались внутри вашей инфраструктуры.
-
Гибкость и кастомизация
На локальном сервере вы можете дообучать модель, подгонять её под узкоспециальные задачи и управлять параметрами инференса.
Качество ответов
При правильном подборе модели локальный LLM может давать ответы, сравнимые или даже превосходящие ответы крупных коммерческих сервисов (DeepSeek, Grok, ChatGPT и т.п.). Об этом подробнее в заключении.
Что нам потребуется:
-
быть очень уверенным пользователем ПК
-
отличать байт от бита
-
ну и собственно сам сервер.
О сервере немного подробней, нужно понимать что это недешево и чем мощнее железо, тем более мощную LLM получится запустить. Минимально рекомендую конфигурацию: 2 видеокарты RTX4070 12Gb, процессор Core i7-14700K, 64Gb RAM, блок питания от 850 ватт, хорошо продуваемый корпус и желательно материнская плата которая имеет два PCI X16 слота, я начинал как раз с такой конфигурации если самому собирать то можно уложить до 200т.р. примерно.
Ну собственно поехали.
Первое что нам нужно сделать, это скачать образ Ubuntu 25.10 вот ссылка https://ubuntu.com/download/desktop размер 5.9 Гб и сделать из него загрузочную флешку например через rufus-4.8. Установка системы не сильно отличается от установки windows, занимает минут 20 и описывать ее нет смысла. При установке нужен интернет.
После установки запускаем на сервере терминал, в левом нижнем углу нажмите значек Приложения. Установим SSH‑доступ. Для дальнейшей работы удобно подключаться к серверу по SSH из любой точки мира.
в терминале выполняем команды:
sudo apt update
sudo apt install -y openssh-server
sudo systemctl enable --now ssh
Проверка
В терминале выполняем
systemctl status ssh
# Ожидаем статус "active (running)"
Проверка видеокарты и драйвера NVIDIA
nvidia-smi
После выполнения этой команды должны быть показаны все установленные GPU.
Устанавливаем утилиты для мониторинга системы
sudo apt install -y nvtop htop mc
-
nvtop – интерактивный монитор загрузки GPU.
-
htop – улучшенный top для CPU, памяти и процессов.
-
mc – Midnight Commander – удобный файловый менеджер, работающий в терминале.
Установка Apache2 (опционально)
Если планируете размещать статический контент или использовать Apache как обратный прокси, установите его:
sudo apt install -y apache2
sudo systemctl enable --now apache2
Установка Miniconda (рекомендую этот вариант).
Miniconda – лёгкий дистрибутив Anaconda, позволяющий управлять отдельными окружениями.
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
При установке согласитесь со всеми лицензиями (введите yes).
После установки откройте новый терминал. Вы должны увидеть:
(base) user@host:~$
Почему именно Miniconda?
Она занимает минимум места, а ��се нужные пакеты можно установить в отдельные окружения без конфликтов.
Теперь к главному, установка Ollama
Ollama – локальный сервер для запуска LLM‑моделей.
curl -fsSL https://ollama.com/install.sh | sh
После установки проверьте, что сервис запустился:
systemctl status ollama
# Должен быть статус “active (running)”
Теперь можно приступить к загрузке первой модели, для этого переходим на сайт ollama https://ollama.com/search.
И например загружаем модель gpt-oss:20b, очень неплохая модель для минимальной комплектации сервера, это моя личная рекомендация и кто то с ней может быть несогласен.
Пишем в терминале
ollama run gpt-oss:20b
Должен начаться процесс загрузки, ждем окончания, весит она 14 гигабайт, так что время будет зависеть от скорости вашего провайдера интернет.
Еще одно замечание, при установке чего либо в терминале, закрывать его до завершения ни в коем случае нельзя.
После загрузки модель автоматически запустится и вы уже можете задавать ей вопросы. Но в терминале это не очень удобно. Поэтому нажмите ctr-Z или напишите /bye b продолжим установку сервера.
Так же вы можете посмотреть перечень загруженных моделей набрав в терминале:
ollama list
Развёртывание Open‑WebUI
Open‑WebUI – удобный веб‑интерфейс для работы с Ollama (и другими back‑ends).
Создаём отдельное conda‑окружение, так как для запуска нужен Python версии 3.11, а у вас будет скорее всего Python 3.13
conda create -n openwebui python=3.11 -y
conda activate openwebui
Устанавливаем пакеты
pip install open-webui
pip install firecrawl # опционально, если нужен скрейпинг контента
Запускаем сервер в тестовом режиме
open-webui serve
По умолчанию интерфейс будет доступен в браузере по адресу http://<IP‑сервера>:8080
Если всё работает – переходите к автоматическому запуску.
Автозапуск Open‑WebUI как systemd‑службы
Скрипт‑обёртка
Создайте в домашнем каталоге файл run_openwebui.sh:
sudo nano run_openwebui.sh
Вставляем в него
#!/usr/bin/env bash
# 1 Подгружаем функции Conda
source /домашний каталог/miniconda3/etc/profile.d/conda.sh
# 2 Активируем нужное окружение
conda activate openwebui
# 3 Запускаем ваш основной процесс
open-webui serve
Сохраняем ctrl-O и выходим из редактора ctrl-X
Сделайте скрипт исполняемым:
chmod +x ~/run_openwebui.sh
Тестовый запуск
bash ~/run_openwebui.sh
Если скрипт работает – создаём systemd‑службу.
создаем файл openwebui.service
sudo nano /etc/systemd/system/openwebui.service
вставляем
[Unit]
Description=OpenWebUI (conda env) service
After=network.target
[Service]
Type=simple
User=root
ExecStart=/домашний каталог/run_openwebui.sh
Restart=on-failure
RestartSec=30
Environment=”PATH=/домашний каталог/miniconda3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin”
# Если нужен вывод в журнал systemd:
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
Сохраняем ctrl-O и выходим из редактора ctrl-X
Регистрация и запуск сервиса
sudo systemctl daemon-reload
sudo systemctl enable openwebui.service
sudo systemctl start openwebui.service
Проверьте статус:
sudo systemctl status openwebui.service
# Ожидаем "active (running)"
Теперь Open‑WebUI будет автоматически стартовать после перезагрузки и работать в фоне и интерфейс будет доступен по адресу http://<IP‑сервера>:8080 постоянно.
Когда вы первый раз откроете этот адрес в браузере, вы попадете на форму регистрации, пройдя ее, вы станете администратором собственого ИИ чата. Сможете добавлять и удалять пользователей и многое другое.
Так же очень рекомендую установить WEB панель управления сервером
Установка Webmin (веб‑панель администрирования), Webmin позволяет управлять системой через браузер (порт 10000).
Создаём отдельное conda‑окружение (чисто для изоляции)
conda create -n webmin -y
conda activate webmin
Добавляем репозиторий и ставим пакет
curl -o webmin-setup-repo.sh https://raw.githubusercontent.com/webmin/webmin/master/webmin-setup-repo.sh
sudo sh webmin-setup-repo.sh
sudo apt install -y webmin
После этого веб‑интерфейс будет доступен по https://<IP‑сервера>:10000.
Полезные утилиты для мониторинга
sudo apt install -y lm-sensors smartmontools
lm‑sensors – покажет температуры CPU, GPU, материнской платы (sensors).
smartmontools – состояние SSD/HDD (smartctl -A /dev/nvme0n1)
Но пока не запускайте в браузере. Откройте для редактирования файл настроек WEBMIN
sudo nano /etc/webmin/miniserv.conf
В нем отредактируйте 2 строки
ssl=0
ssl_hsts=0
По умолчанию в них стоят 1. Если этого не сделать вам браузер вынесет мозг.
Ну в общем и целом если вы до сюда дошли, то у вас запущен полноценный LLM сервер.
Если вы закажете у провайдера интернет услугу белый IP адрес, то к своему серверу вы можете получить доступ откуда угодно, сможете давать доступ друзьям и коллегам если нужно. Для того что бы получить доступ к своему серверу извне, вам необходимо в роутере сделать проброс портов 22, 80, 8080 и 10000.
Еще бы хотелось рассказать про настройку Open-WEBUI, как настроить модель, как запустить RAG с помощью нее, но статья получилась довольно длинной и если будут пожелания я сздам про это отдельную статью.
Ну и небольшие дополнения к статье.
Как я написал в начале, локальные LLM часто решают задачи точнее и быстрее публичных сервисов, вот моя статья по этому поводу Локальная модель vs Гигачат: мой опыт и выводы / Хабр У меня загружено 9 разных моделей, но в основном использую только 3, а именно gpt-oss120b, qwen3-next:80b и qwen3:235b. Считаю их самыми оптимальными, но это сугубо мое мнение. Протестировал я более 30 разных моделей, общий объем которых при загрузке был более 2Тб.
Интересное замечание, модель gpt-oss:20b справилась со сложной задачей не хуже своей старшей модели которую я использую gpt-oss:120b, только немного хромает с русским языком. Но для запуска моделей типа gpt-oss:120b требуется не менее 80Гб видеопамяти. У меня сейчас у сервера 96Гб видеопамяти, и хотелось бы еще столько же.
Автор: softel


