Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
iis-project/services/ml_service
syropiatovvv 23eb72d090
wip: lab_4 до дашборда в Prometheus
1 месяц назад
..
app wip: lab_4 до дашборда в Prometheus 1 месяц назад
.dockerignore добавить веб-сервис предсказания цен, с dockerfile 2 месяцев назад
Dockerfile wip: lab_4 до дашборда в Prometheus 1 месяц назад
README.md добавлены методы вызовов HTTP в README 1 месяц назад
requirements.txt wip: lab_4 до дашборда в Prometheus 1 месяц назад

README.md

Сервис предсказания цен

Веб-сервис предсказания цен на подержанные автомобили; только stateless API. Об используемой предсказательной модели см. research/README.md.

API

Базовый URL: /api. Все указанные далее URL записаны относительно базового URL, если не указано иное.

  • Полная интерактивная документация (Swagger UI): /docs.

  • Предсказать цену подержанного автомобиля: /predict (POST).

    Пример запроса:

    • requst query: item_id=16 (параметр item_id необходим!);

    • request body:

      {
          "selling_price": 5.59,
          "driven_kms": 27000.0,
          "age": 5.0,
          "fuel_type": "petrol",
          "selling_type": "dealer",
          "transmission_type": "manual"
      }
      
    • response body:

      {
          "item_id": 16,
          "price": 3.743508852258851
      }
      
  • Тестовый эндпоинт: / (GET).

    Возвращает простой демонстрационный объект JSON.

    Может использоваться для проверки состояния сервиса.

Развёртывание

Файл модели

Файл используемой предсказательной модели model.pkl можно извлечь из MLFlow скриптом services/models/fetch_model_as_pickle_from_mlflow.py. Файл модели можно разместить в директории проекта, а именно в services/models/.

Например, извлечь модель по имени (<model-name>) и версии (<model-version>) (например, UsedCardPricePredictionFinal/1) (команда запускается из корневой директории проекта — от этого зависит путь к создаваемому файлу):

python services/models/fetch_model_as_pickle_from_mlflow.py --model "models:/<model-name>/<model-version>" services/models/model.pkl

Можно указать адрес tracking сервера MLFlow, например: --tracking-uri "http://localhost:5000".

Информация о других опциях доступна:

python services/models/fetch_model_as_pickle_from_mlflow.py --help

Образ Docker

Сборка образа (замените <version> на номер версии) (команда запускается из корневой директории проекта — от этого зависит путь к директории):

docker build -t ml_service:<version> services/ml_service/

Запуск образа (замените <version> на номер версии образа, <models-dir> на абсолютный путь к директории, где размещён файл предсказательной модели model.pkl, <port> на порт для запуска веб-сервиса (например, 8000)):

docker run -v "<models-dir>:/models" -p <port>:8000 ml_service:<version>

Модель может быть размещена в директории проекта; тогда, например, при запуске команды из корна проекта: $(pwd)/services/models (здесь $(pwd) используется потому, что необходим абсолютный путь).