Деплой ИИ-модели в production на VPS
От «запустил в терминале» до «работает в проде» — дистанция. Продакшн-модель должна сама подниматься после перезагрузки, переживать сбои, отдавать стабильный API и не падать под нагрузкой. Собираем такой деплой.
Содержание
Выбираем рантайм под нагрузку
['Для прода бери рантайм с OpenAI-совместимым API — тогда клиенты и SDK работают без переделок. Варианты:', '- llama.cpp server — лёгкий, CPU-friendly, отдаёт /v1/chat/completions.
- Ollama — удобное управление моделями, простой API, хорош для старта.
- vLLM — высокая пропускная способность, но заточен под GPU.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.
Арендовать VPS под ИИ в productionЗапуск как сервис через systemd
['Продакшн-процесс не должен зависеть от твоей SSH-сессии. Оформляем systemd-юнит с автоперезапуском. Создай /etc/systemd/system/llm.service:', '[Unit]\nDescription=LLM API\nAfter=network.target\n\n[Service]\nUser=llm\nWorkingDirectory=/opt/llama.cpp\nExecStart=/opt/llama.cpp/llama-server -m /opt/models/model-q4_k_m.gguf --host 127.0.0.1 --port 8080 -c 8192\nRestart=always\nRestartSec=5\n\n[Install]\nWantedBy=multi-user.target', 'systemctl daemon-reload\nsystemctl enable --now llm\njournalctl -u llm -f']
Нужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.
Вариант с Docker
['Если предпочитаешь контейнеры — Ollama удобно катить в Docker с сохранением моделей в volume:', 'docker run -d --name ollama --restart unless-stopped \\\n -v ollama:/root/.ollama -p 127.0.0.1:11434:11434 ollama/ollama\ndocker exec ollama ollama pull qwen2.5:7b-instruct-q4_K_M', 'Обрати внимание на -p 127.0.0.1:11434 — публикуем порт только на localhost, наружу отдаём через nginx.']
Nginx-фронт: HTTPS, лимиты, ключ
['Перед моделью ставим nginx: он терминирует HTTPS, режет флуд и проверяет API-ключ. Ограничение частоты запросов защищает от исчерпания ресурсов:', 'limit_req_zone $binary_remote_addr zone=ai:10m rate=10r/s;\n\nserver {\n location /v1/ {\n limit_req zone=ai burst=20;\n proxy_pass http://127.0.0.1:8080/v1/;\n proxy_read_timeout 300s;\n }\n}', 'proxy_read_timeout поднят намеренно: генерация длинного ответа не должна обрываться по таймауту. Сертификат — через certbot.']
Проверка и мониторинг
['После деплоя проверь, что API отвечает в формате OpenAI:', 'curl http://127.0.0.1:8080/v1/chat/completions \\\n -H \'Content-Type: application/json\' \\\n -d \'{"messages":[{"role":"user","content":"ping"}]}\'', 'Следи за ресурсами и логами в бою:', "journalctl -u llm --since '10 min ago'\nwatch -n 2 'free -h; ss -s'", 'Ключевое для стабильности прода — не уходить в swap (см. расчёт RAM) и держать быстрый диск под модель. На AMD EPYC + NVMe у MAATRIX сервис поднимается за секунды после рестарта, а ежедневные бэкапы и root-доступ дают откат и полный контроль над конфигурацией.']
Чеклист перед выкатом
['- Сервис под systemd/Docker с Restart=always.
- Модель слушает 127.0.0.1, наружу только nginx с HTTPS.
- Rate-limit и API-ключ включены.
- RAM с запасом, swap не задействуется под нагрузкой.
- Логи пишутся, есть команда быстрой диагностики.
- Бэкап конфигов и модели настроен.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.
Арендовать VPS под ИИ в productionНужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.
Частые вопросы
Какой API отдавать клиентам?
OpenAI-совместимый (/v1/chat/completions). Его понимают почти все SDK и библиотеки, миграция между моделями проходит без переписывания кода.
systemd или Docker для прода?
Оба рабочие. systemd проще и легче по ресурсам для одного сервиса, Docker удобнее при нескольких сервисах и воспроизводимости окружения.
Как защитить продакшн-API от перегрузки?
Ставьте nginx с limit_req перед моделью, требуйте API-ключ и поднимите proxy_read_timeout, чтобы длинные ответы не обрывались.
Почему модель иногда резко тормозит в проде?
Чаще всего сервер ушёл в swap из-за нехватки RAM. Держите память с запасом и следите, чтобы swap не задействовался под нагрузкой.