На этой странице
- Зачем размещать LLM самостоятельно?
- Выбирайте GPU по объёму видеопамяти
- Быстрый старт: собственная LLM на Ollama
- OpenAI-совместимый API на vLLM
- Добавьте TLS и аутентификацию
- Измерьте пропускную способность сами
- Сохраняйте приватность промптов
- Стоимость: API, облачный GPU или собственный сервер
- Часто задаваемые вопросы

Чтобы разместить LLM самостоятельно, арендуйте GPU-сервер с достаточным для модели объёмом видеопамяти, установите Ollama для быстрого старта или vLLM для OpenAI-совместимого API и привяжите оба к 127.0.0.1. Подключайтесь к ним через SSH-туннель или обратный прокси с TLS, который проверяет ключ. Модель на 8B работает с полной точностью на
Это руководство превращает пустой GPU-сервер в приватную конечную точку: какую карту арендовать, точные команды для Ollama и vLLM, TLS и аутентификация, бенчмарки и стоимость. Команды рассчитаны на
Зачем размещать LLM самостоятельно?
Ваши промпты остаются на вашем сервере. При использовании облачного API каждый промпт и ответ проходят через чужую инфраструктуру по чужим правилам логирования и хранения. Приватный LLM-сервер запускает модель на вашей собственной GPU. В FAQ Ollama сказано прямо: при локальном запуске «мы не видим ваших промптов и данных».
Стоимость предсказуема. Сервер с помесячной оплатой стоит одинаково и за десять запросов, и за десять миллионов: при постоянной нагрузке это дешевле оплаты за токены, при малой — дороже.
Вы управляете моделью: её версией, квантованием и длиной контекста. Она не меняется, когда провайдер обновляет каталог, и её можно дообучать на данных, которые остаются на сервере.
Компромиссы: обновления, безопасность и мониторинг — на вас, а модели с открытыми весами — это не проприетарные модели крупнейших API. Если нужна одна из них, доступ к ней возможен только через её API.
Выбирайте GPU по объёму видеопамяти
Чтобы запустить LLM на GPU-сервере, начните с памяти: веса, KV-кеш для вашего контекста и некоторый запас должны поместиться в видеопамять. Эти цифры из нашего руководства о том, сколько видеопамяти нужно LLM, учитывают контекст 8K токенов для одного пользователя и 10% запаса.
| Модель (пример) | 4 бит | 8 бит | 16 бит | Подходящая GPU |
|---|---|---|---|---|
| От 7B до 8B ( | Около 7 ГБ | Около 11 ГБ | Около 19 ГБ | |
| От 13B до 14B ( | Около 11 ГБ | Около 18 ГБ | Около 32 ГБ | |
| 32B ( | Около 24 ГБ | Около 40 ГБ | Около 73 ГБ | |
| 70B ( | Около 50 ГБ | Около 85 ГБ | Около 157 ГБ | A100 или H100 в 4-битной точности, |
| Помещается в один GPU на 80 ГБ (нативный MXFP4) | Неприменимо | Неприменимо | A100 или H100 |
Сервер с
Быстрый старт: собственная LLM на Ollama
Установочный скрипт Ollama для Linux настраивает системную службу и обнаруживает GPU NVIDIA. Его можно прочитать перед запуском:
curl -fsSL https://ollama.com/install.sh | sh
ollama pull llama3.1:8b
ollama run llama3.1:8b
ollama ps
llama3.1:8bollama run/byeollama psOLLAMA_CONTEXT_LENGTH
ss -tln | grep 11434
curl http://127.0.0.1:11434/api/generate -d '{"model": "llama3.1:8b", "prompt": "Why is the sky blue?", "stream": false}'
По умолчанию Ollama привязывается к 127.0.0.1, порт 11434, поэтому первая строка должна показывать 127.0.0.1:11434OLLAMA_HOST=0.0.0.0
Ollama также предоставляет маршруты в стиле OpenAI под /v1http://127.0.0.1:11434/v1sudo systemctl edit ollama.service
[Service]
Environment="OLLAMA_NO_CLOUD=1"
Environment="OLLAMA_CONTEXT_LENGTH=16384"
sudo systemctl daemon-reload
sudo systemctl restart ollama
OpenAI-совместимый API на vLLM
vLLM создан для высокой пропускной способности: он обрабатывает на GPU множество запросов одновременно, объединяя их в пакеты, и работает по протоколу OpenAI, поэтому существующий клиентский код работает без изменений. Установите его в отдельное виртуальное окружение, как показано в руководстве по установке vLLM, затем создайте ключ и запустите сервер:
python3 -m venv ~/venvs/vllm
source ~/venvs/vllm/bin/activate
pip install --upgrade pip
pip install vllm --extra-index-url https://download.pytorch.org/whl/cu129
export VLLM_API_KEY=$(openssl rand -hex 32)
echo "$VLLM_API_KEY"
vllm serve Qwen/Qwen2.5-7B-Instruct --host 127.0.0.1 --port 8000 --max-model-len 8192
Ключ обязателен, потому что задана VLLM_API_KEY--api-keyhttp://localhost:8000--host--max-model-lennvidia-smi
from openai import OpenAI
client = OpenAI(base_url="http://127.0.0.1:8000/v1", api_key="YOUR_KEY")
reply = client.chat.completions.create(
model="Qwen/Qwen2.5-7B-Instruct",
messages=[{"role": "user", "content": "Explain RAID 1 in one sentence."}],
)
print(reply.choices[0].message.content)
Тот же код работает с Ollama по адресу http://127.0.0.1:11434/v1--ipc=host
sudo docker run --rm --gpus all --ipc=host -p 127.0.0.1:8000:8000 \
-v ~/.cache/huggingface:/root/.cache/huggingface \
vllm/vllm-openai:latest --model Qwen/Qwen2.5-7B-Instruct --api-key "$VLLM_API_KEY"
На двух или четырёх GPU --tensor-parallel-size 24
Ollama и vLLM вкратце
| Вопрос | Ollama | vLLM |
|---|---|---|
| Вариант установки | Один скрипт, работает как системная служба | Пакет Python или образ Docker |
| Модели | Библиотека Ollama, по имени | Hugging Face, по репозиторию |
| Адрес по умолчанию | 127.0.0.1:11434 | Порт 8000 на всех интерфейсах, если не задан --host |
| Аутентификация | У локального API нет | Необязательный ключ, защищающий лишь некоторые маршруты |
| Для чего | Один пользователь или небольшая команда, быстрые тесты | Много одновременных запросов, работа на нескольких GPU |
Добавьте TLS и аутентификацию
Ни один из этих серверов не стоит выставлять в интернет как есть. В документации Ollama сказано, что локальный API не требует аутентификации. Руководство по безопасности vLLM сообщает, что --api-key/v1/v2/inference/cohere/pause/tokenize
Для себя: SSH-туннель
ssh -N -L 11434:127.0.0.1:11434 -L 8000:127.0.0.1:8000 YOUR_USER@SERVER_IP
Пока туннель работает, клиенты на вашем компьютере используют http://127.0.0.1:11434/v1http://127.0.0.1:8000/v1
Для приложений и команд: Caddy с TLS и ключом
Caddy сам получает и продлевает сертификат и перенаправляет HTTP на HTTPS. Направьте A-запись домена на сервер, откройте порты 80 и 443 в брандмауэре, установите Caddy из официального репозитория, создайте ключ командой openssl rand -hex 32/etc/caddy/Caddyfile
llm.example.com {
@denied {
not {
path /v1/*
header Authorization "Bearer YOUR_LONG_RANDOM_KEY"
}
}
respond @denied 403
reverse_proxy 127.0.0.1:11434 {
header_up Host localhost:11434
}
}
Затем выполните sudo systemctl reload caddy/v1/respondreverse_proxy/api127.0.0.1:8000header_up
Клиенты затем используют https://llm.example.com/v1
Измерьте пропускную способность сами
Число токенов в секунду зависит от карты, модели, квантования, версии движка, длины контекста и параллельности, поэтому мы не публикуем цифры, которые не измеряли. Для одного пользователя на плотной модели потолок — пропускная способность памяти, делённая на размер весов: около 205 токенов в секунду для 4-битной модели на 8B на
С Ollama
ollama run llama3.1:8b --verbose
--verboseeval_counteval_durationeval_count / eval_duration × 10^9
С vLLM
В vLLM есть генератор нагрузки. Эта команда отправляет на 127.0.0.1:8000 200 запросов — по 1 024 случайных входных токена и 256 выходных токенов в каждом, по 16 одновременно, — используя OPENAI_API_KEY
export OPENAI_API_KEY="$VLLM_API_KEY"
vllm bench serve --model Qwen/Qwen2.5-7B-Instruct --dataset-name random --random-input-len 1024 --random-output-len 256 --num-prompts 200 --max-concurrency 16
Смотрите на три строки отчёта: output token throughput — выходная пропускная способность всего сервера, mean TTFT (время до первого токена) — отзывчивость и mean TPOT (время на выходной токен) — то, что видит каждый пользователь. Повторите тест при параллельности 1, 8 и 32, следите в это время за nvidia-smi dmon -s pucm
Сохраняйте приватность промптов
Собственный хостинг оставляет промпты на вашем сервере, только если ничто другое не отправляет их куда-то ещё:
- Никаких публичных портов.
должна показывать 11434 и 8000 только на 127.0.0.1. Разрешите SSH, а также 80 и 443 для Caddy — и больше ничего, как в нашем руководстве по усилению защиты; порты Docker публикуйте какsudo ss -tlnp .127.0.0.1:PORT:PORT - Никаких облачных моделей по случайности. Ollama может также запускать облачные модели, например
, на своих серверах, и тогда ваши промпты обрабатывают они.gemma4:cloud отключает облачные модели и веб-поиск.OLLAMA_NO_CLOUD=1 - Отключите телеметрию. По умолчанию vLLM собирает анонимную статистику использования о вашем оборудовании и конфигурации;
илиVLLM_NO_USAGE_STATS=1 отключают её.DO_NOT_TRACK=1 отключает телеметрию Hugging Face, а после загрузки моделиHF_HUB_DISABLE_TELEMETRY=1 прекращает все обращения к Hub.HF_HUB_OFFLINE=1 - Тихие логи. vLLM записывает запросы в лог только с
, а текст промптов — только на уровне DEBUG. Так и оставьте и проверьте, что хранит любой чат-интерфейс.--enable-log-requests
export VLLM_NO_USAGE_STATS=1
export HF_HUB_DISABLE_TELEMETRY=1
export HF_HUB_OFFLINE=1
Для службы укажите это в её файле окружения. С нашей стороны мы не логируем и не анализируем трафик клиентских серверов: никакой глубокой инспекции пакетов, никакого сканирования содержимого, и мы никогда не смотрим, что работает внутри.
Стоимость: API, облачный GPU или собственный сервер
- API тарифицируется за токены: ничего не нужно запускать и нет затрат на простой, но каждый промпт уходит провайдеру, а счёт растёт с объёмом.
- Облачный GPU тарифицируется почасово. По сравнению с сервером с помесячной оплатой точка безубыточности — это месячная цена, делённая на почасовую ставку: наш
RTX 4090 за $84.99 равен 85 часам при примерной ставке $1.00 в час. - Собственный сервер стоит одинаково под нагрузкой и в простое, поэтому стоимость токена падает по мере роста использования. При круглосуточной работе наш
RTX 4090 обходится примерно в $0.116 в час, а H100 — примерно в $0.797.
По сравнению с API сервер окупается при средней пропускной способности выше этой:
break-even tokens per second = monthly price ÷ (API price per million tokens × 2.628)
2.628 — это число миллионов секунд в месяце из 730 часов. При примерной цене API $1 за миллион токенов сервер за $84.99 выходит на безубыточность при средней скорости около 32 токенов в секунду с учётом простоя, а H100 за $581.99 — около 221. Это примерные цены, а не предложения, и API тарифицируют также входные токены. Почасовая сторона разобрана в нашем сравнении выделенных GPU-серверов и облачных GPU.
Оплата поквартально экономит 5%, а за год — 12%, и тогда
Часто задаваемые вопросы
Можно ли запустить LLM на собственном сервере?
Да. Подойдёт любой Linux-сервер, у GPU NVIDIA которого достаточно видеопамяти для модели: около 7 ГБ для модели на 8B и около 50 ГБ для модели на 70B, обе в 4-битной точности с контекстом. Установите Ollama или vLLM, оставьте их на 127.0.0.1 и подключайтесь через SSH-туннель или обратный прокси с TLS, который проверяет ключ.
Что лучше — Ollama или vLLM?
Они решают разные задачи. Ollama быстрее настроить, и она подходит одному пользователю или небольшой команде. vLLM объединяет множество одновременных запросов в пакеты, распределяет модели между GPU и проверяет ключ API, что подходит для приложений. Оба отвечают на запросы в стиле OpenAI под /v1, поэтому можно начать с Ollama и перейти на vLLM, не переписывая клиент.
Сколько видеопамяти нужно для модели на 70B?
Около 43 ГБ для весов в 4-битной точности или около 50 ГБ с контекстом 8K и запасом: одна A100 или H100 на 80 ГБ либо две
Есть ли у Ollama аутентификация?
У локального API — нет. В документации Ollama сказано, что API на localhost:11434 не требует аутентификации; ключи API применяются только к её облачному сервису. Оставьте привязку по умолчанию к 127.0.0.1, доступную только самому серверу, и добавьте SSH-туннель или обратный прокси с TLS и проверкой ключа, прежде чем подключится кто-то ещё.
Собственная LLM дешевле API?
При стабильном объёме — часто да; при малом или нерегулярном — обычно нет. Разделите месячную цену сервера на цену вашего API за миллион токенов, умноженную на 2.628: результат — средняя скорость в токенах в секунду, которую сервер должен поддерживать, чтобы окупиться. Приватность может быть важнее цены: на вашем собственном сервере промпты остаются под вашим контролем.
Офшорные VPS, выделенные, RDP- и GPU-серверы в семи юрисдикциях. Без KYC, оплата криптовалютой.


