Skip to content

Latest commit

 

History

History
72 lines (47 loc) · 6.95 KB

hw1.md

File metadata and controls

72 lines (47 loc) · 6.95 KB

Вам потребуется сделать "production ready" проект для решения задачи классификации, то есть написать код для обучения и предикта, покрыть его тестами и тд

Для обучения модели, можете использовать датасет https://www.kaggle.com/datasets/cherngs/heart-disease-cleveland-uci, либо иной небольшой датасет для классификации(если используете другой, то опишите какой и как его получить в readme)

Пример подобного рассматривали на паре https://github.com/made-ml-in-prod-2021/ml_project_example, не нужно отсюда копировать=)

Код должен находиться в папке ml_project, ветка должна называться homework1. Если вы студент MADE,то добавьте к пуллревесту тэг -- MADE, если вы студент Технопарка -- добавьте тэг TECHNOPARK

Критерии (указаны максимальные баллы, по каждому критерию ревьюер может поставить баллы частично):

  1. В описании к пулл реквесту описаны основные "архитектурные" и тактические решения, которые сделаны в вашей работе. В общем, описание того, что именно вы сделали и для чего, чтобы вашим ревьюерам было легче понять ваш код (1 балл)

  2. В пулл-реквесте проведена самооценка, распишите по каждому пункту выполнен ли критерий или нет и на сколько баллов(частично или полностью) (1 балл)

  3. Выполнено EDA, закоммитьте ноутбук в папку с ноутбуками (1 балл) Вы так же можете построить в ноутбуке прототип(если это вписывается в ваш стиль работы)

    Можете использовать не ноутбук, а скрипт, который сгенерит отчет, закоммитьте и скрипт и отчет (за это + 1 балл)

  4. Написана функция/класс для тренировки модели, вызов оформлен как утилита командной строки, записана в readme инструкцию по запуску (3 балла)

  5. Написана функция/класс predict (вызов оформлен как утилита командной строки), которая примет на вход артефакт/ы от обучения, тестовую выборку (без меток) и запишет предикт по заданному пути, инструкция по вызову записана в readme (3 балла)

  6. Проект имеет модульную структуру (2 балла)

  7. Использованы логгеры (2 балла)

  8. Написаны тесты на отдельные модули и на прогон обучения и predict (3 балла)

  9. Для тестов генерируются синтетические данные, приближенные к реальным (2 балла)

  10. Обучение модели конфигурируется с помощью конфигов в json или yaml, закоммитьте как минимум 2 корректные конфигурации, с помощью которых можно обучить модель (разные модели, стратегии split, preprocessing) (3 балла)

  11. Используются датаклассы для сущностей из конфига, а не голые dict (2 балла)

  12. Напишите кастомный трансформер и протестируйте его (3 балла) https://towardsdatascience.com/pipelines-custom-transformers-in-scikit-learn-the-step-by-step-guide-with-python-code-4a7d9b068156

  13. В проекте зафиксированы все зависимости (1 балл)

  14. Настроен CI для прогона тестов, линтера на основе github actions (3 балла). Пример с пары: https://github.com/demo-ml-cicd/ml-python-package

PS: Можно использовать cookiecutter-data-science https://drivendata.github.io/cookiecutter-data-science/ , но поудаляйте папки, в которые вы не вносили изменения, чтобы не затруднять ревью

Дополнительные баллы=)

Mlflow

  • разверните локально mlflow или на какой-нибудь виртуалке (1 балл)

  • залогируйте метрики (1 балл)

  • воспользуйтесь Model Registry для регистрации модели(1 балл) Приложите скриншот с вашим mlflow run DVC

  • выделите в своем проекте несколько entrypoints в виде консольных утилит (1 балл). Пример: https://github.com/made-ml-in-prod-2021/ml_project_example/blob/main/setup.py#L16 Но если у вас нет пакета, то можно и просто несколько скриптов

  • добавьте датасет под контроль версий (1 балл)

  • сделайте dvc пайплайн(связывающий запуск нескольких entrypoints) для изготовления модели(1 балл)

Для большего удовольствия в выполнении этих частей рекомендуется попробовать подключить удаленное S3 хранилище(например в Yandex Cloud, VK Cloud Solutions или Selectel)

Процедура сдачи:

После выполнения ДЗ создаем пулл реквест, в ревьюеры добавляем Mikhail-M, ждем комментариев (на которые нужно ответить) и/или оценки.

Сроки выполнения:

Мягкий дедлайн: 9 мая 23:59

Жесткий дедлайн: 16 мая 23:59

После мягкого дедлайна все полученные баллы умножаются на 0.6