Когда я только начинала разбираться с машинным обучением, мне казалось, что для запуска моделей нужны серверные фермы или сложные облачные платформы с бесконечным количеством кнопок. Но на практике оказалось, что всё можно уместить в одну виртуалку. В этой статье расскажу, как развернуть полноценную среду под ML на обычном VPS: с PyTorch, Jupyter и FastAPI. Всё просто, если знаешь, за что хвататься.
Подбираем VPS для ML задач
Если вы планируете обучать модели, обращайте внимание на конфигурацию:
- Минимум 2 CPU и 4–8 GB RAM — иначе Jupyter будет подвисать.
- SSD-диск от 20 ГБ — под датасеты и модели.
- Ubuntu 22.04 — стабильная и поддерживаемая версия, с которой дружат почти все ML-библиотеки.
Клиенты CloudVPS часто используют такие конфигурации как недорогой ml-сервис — просто и удобно.
Установка Python и PyTorch
После подключения к VPS (через SSH) первым делом обновим систему:
sudo apt update && sudo apt upgrade -y
Устанавливаем Python и pip:
sudo apt install python3 python3-pip -y
Создаём виртуальное окружение:
python3 -m venv venv source venv/bin/activate
Ставим PyTorch:
pip install torch torchvision torchaudio
Готово! Можно импортировать
torch
Настройка Jupyter Notebook
Jupyter — это, грубо говоря, ваш рабочий стол для ML.
Устанавливаем:
pip install notebook
Создаём конфиг:
jupyter notebook --generate-config
Устанавливаем пароль:
from notebook.auth import passwd passwd()
Добавьте сгенерированный хеш в
~/.jupyter/jupyter_notebook_config.py
c.NotebookApp.password = 'sha1:...' c.NotebookApp.ip = '0.0.0.0' c.NotebookApp.open_browser = False c.NotebookApp.port = 8888
Запускаем:
jupyter notebook
Теперь блокнот доступен по IP:8888. Обязательно настройте брандмауэр или reverse proxy для безопасности.
Быстрый API на FastAPI
FastAPI — идеальный выбор, если вы хотите обернуть модель в API. Он быстрый, лаконичный и поддерживает async.
Установка:
pip install fastapi uvicorn
Простой пример:
from fastapi import FastAPI app = FastAPI() @app.get("/") def read_root(): return {"message": "ML-сервер готов!"} # Запуск # uvicorn main:app --host 0.0.0.0 --port 8000
В проде лучше запускать с помощью systemd или docker.
Пример кейса: запуск ML-проекта на VPS
Недавно я разворачивала проект по классификации изображений. На VPS с 4 ядрами и 8 ГБ памяти разместились PyTorch, Jupyter и FastAPI. Обучение шло 3 часа, API разворачивался за 5 минут. Такая связка — находка для pet-проектов, демонстраций и MVP.
Разворачивать ML-инфраструктуру на VPS — это не боль, а скорее приятная рутина. С правильным подходом и чёткими шагами можно за пару часов получить рабочее окружение. Не нужен дорогой ml сервис — достаточно VPS от CloudVPS и желания экспериментировать.