Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

Repository files navigation

ML Training & Inference Server

Лёгкий REST API для обучения и инференса scikit-learn моделей, написанный на FastAPI и разворачиваемый через Docker.

Что умеет

  • Обучать ML модели (Logistic Regression, Random Forest, SVM) через HTTP запросы
  • Сохранять обученные модели на диск в формате .joblib
  • Загружать модели в память и делать предсказания
  • Обучение запускается в отдельном пуле процессов — сервер остаётся отзывчивым
  • Настраиваемые лимиты: сколько ядер отдать под обучение, сколько моделей держать в памяти

Стек

  • FastAPI — REST API
  • scikit-learn — ML модели
  • joblib — сериализация моделей
  • Docker / Docker Compose — деплой

Быстрый старт

docker compose up --build

Сервер будет доступен по адресу http://localhost:8000.

API

Обучить модель

POST /fit
{
  "X": [[1.0, 2.0], [3.0, 4.0]],
  "y": [0, 1],
  "config": {
    "model_name": "my_model",
    "model_type": "random_forest",
    "parameters": {"n_estimators": 100}
  }
}

Допустимые значения model_type: logistic_regression, random_forest, svm.


Загрузить модель в память

POST /load
{
  "config": { "model_name": "my_model" }
}

Получить предсказание

POST /predict
{
  "X": [[1.0, 2.0]],
  "config": { "model_name": "my_model" }
}

Выгрузить модель из памяти

POST /unload
{
  "config": { "model_name": "my_model" }
}

Удалить модель с диска

POST /remove
{
  "config": { "model_name": "my_model" }
}

Удалить все модели

POST /remove_all

Проверка состояния сервера

GET /health

Возвращает список загруженных моделей и количество свободных слотов для обучения.

Конфигурация

Настраивается через .env перед запуском:

Переменная По умолчанию Описание
MODEL_DIR /app/models Куда сохранять .joblib файлы
TRAINING_CORES 4 Всего ядер CPU (1 ядро резервируется под сервер)
MAX_LOADED_MODELS 10 Максимум моделей одновременно в памяти

Структура проекта

ml_project/
├── app/
│   ├── main.py           # FastAPI приложение и все эндпоинты
│   ├── model_manager.py  # Хранилище моделей в памяти (load/unload)
│   └── training.py       # Обучение моделей (запускается в подпроцессе)
├── backend.ipynb         # Примеры работы с API
├── frontend.ipynb        # Клиентское демо
├── Dockerfile
├── docker-compose.yml
├── requirements.txt
└── .env

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages