Репозиторий для выполнения практических заданий 2-го семестра.
- Необходимо из создать простейший конвейер для автоматизации работы с моделью машинного обучения.
- Отдельные этапы конвейера машинного обучения описываются в разных python–скриптах, которые потом соединяются в единую цепочку действий с помощью bash-скрипта.
- Все файлы необходимо разместить в подкаталоге lab1 корневого каталога
Этапы:
- Создайте python-скрипт (data_creation.py), который создает различные наборы данных, описывающие некий процесс (например, изменение дневной температуры). Таких наборов должно быть несколько, в некоторые данные можно включить аномалии или шумы. Часть наборов данных должны быть сохранены в папке “train”, другая часть в папке “test”. Одним из вариантов выполнения этого этапа может быть скачивание набора данных из сети, и разделение выборки на тестовую и обучающую. Учтите, что файл должен быть доступен и методы скачивания либо есть в ubuntu либо устанавливаются через pip в файле pipeline.sh
- Создайте python-скрипт (data_preprocessing.py), который выполняет предобработку данных, например, с помощью sklearn.preprocessing.StandardScaler. Трансформации выполняются и над тестовой и над обучающей выборкой.
- Создайте python-скрипт (model_preparation.py), который создает и обучает модель машинного обучения на построенных данных из папки “train”. Для сохранения модели в файл можно воспользоваться pickle (см. пример)
- Создайте python-скрипт (model_testing.py), проверяющий модель машинного обучения на построенных данных из папки “test”.
- Напишите bash-скрипт (pipeline.sh), последовательно запускающий все python-скрипты. При необходимости усложните скрипт. В результате выполнения скрипта на терминал в стандартный поток вывода печатается одна строка с оценкой метрики на вашей модели, например:
Model test accuracy is: 0.876
Настоятельно рекомендуем вам проверить работоспособность скрипта в окружении отличном от того в котором происходила разработка.
- Вам нужно разработать собственный конвейер автоматизации для проекта машинного обучения. Для этого вам понадобится виртуальная машина с установленным Jenkins, python и необходимыми библиотеками. В ходе выполнения практического задания вам необходимо автоматизировать сбор данных, подготовку датасета, обучение модели и работу модели.
- Разработанный конвеер требуется выгрузить в файл. Так же все скрипты (этапы конвеера требуется сохранить)
- Все файлы необходимо разместить в подкаталоге lab2 корневого каталога Этапы задания
- Развернуть сервер с Jenkins, установить необходимое программное обеспечение для работы над созданием модели машинного обучения.
- Выбрать способ получения данных (скачать из github, из Интернета, wget, SQL запрос, …).
- Провести обработку данных, выделить важные признаки, сформировать датасеты для тренировки и тестирования модели, сохранить.
- Создать и обучить на тренировочном датасете модель машинного обучения, сохранить в pickle или аналогичном формате.
- Загрузить сохраненную модель на предыдущем этапе и проанализировать ее качество на тестовых данных.
- Реализовать задания и конвеер. Связать конвеер с системой контроля версий. Сохранить конвеер.
Цель задания: применить средства автоматизации тестирования python для автоматического тестирования качества работы модели машинного обучения на различных датасетах. Результаты размещаются в каталоге lab5.
Этапы задания:
- Создать три датасета с «качественными» данными, на которых можно обучить простую модель линейной регрессии, например
- На одном из этих датасетов обучить модель линейной регрессии
- Создать датасет с шумом в данных, например
- Провести тестирование работы модели на разных датасетах с использованием pytest, анализируя качество предсказания, обнаружить проблему на датасете с шумами.
Критерии: данное задание необходимо полностью выполнить в виде jupyter ноутбука и предоставить его на проверку.
Подсказка: вы можете записать содержимое ячейки jupyter ноутбука в отдельный файл с помощью команды
%%writefile”имя файла”
А также можете выполнить любую linux команду прямо из ячейки jupyter ноутбука, с помощью синтаксиса
! “имя команды”
Проект выполняется в команде. Ссылка на репозиторий: https://github.com/EgorenkovaURFU/style_recognition
Требования к реализации проекта:
- Исходные коды проекта должны находиться в репозитории GitHub.
- Проект оркестируется с помощью ci/cd (jenkins или gitlab).
- Датасеты версионируются с помощью dvc и синхронизируются с удалённым хранилищем.
- Разработка возможностей приложения должна проводиться в отдельных ветках, наборы фичей и версии данных тоже.
- В коневеере запускаются не только модульные тесты, но и проверка тестами на качество данных.
- Итоговое приложение реализуется в виде образа docker. Сборка образа происходит в конвеере.
- В проекте может использоваться предварительно обученная модель. Обучать собственную модель не требуется.