Skip to content

Репозиторий для выполнения практических заданий 2-го семестра.

Notifications You must be signed in to change notification settings

Vika00224/MLOps_Practice

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

-MLOps-Practice

Репозиторий для выполнения практических заданий 2-го семестра.

Модуль 1

  • Необходимо из создать простейший конвейер для автоматизации работы с моделью машинного обучения.
  • Отдельные этапы конвейера машинного обучения описываются в разных python–скриптах, которые потом соединяются в единую цепочку действий с помощью bash-скрипта.
  • Все файлы необходимо разместить в подкаталоге lab1 корневого каталога

Этапы:

  1. Создайте python-скрипт (data_creation.py), который создает различные наборы данных, описывающие некий процесс (например, изменение дневной температуры). Таких наборов должно быть несколько, в некоторые данные можно включить аномалии или шумы. Часть наборов данных должны быть сохранены в папке “train”, другая часть в папке “test”. Одним из вариантов выполнения этого этапа может быть скачивание набора данных из сети, и разделение выборки на тестовую и обучающую. Учтите, что файл должен быть доступен и методы скачивания либо есть в ubuntu либо устанавливаются через pip в файле pipeline.sh
  2. Создайте python-скрипт (data_preprocessing.py), который выполняет предобработку данных, например, с помощью sklearn.preprocessing.StandardScaler. Трансформации выполняются и над тестовой и над обучающей выборкой.
  3. Создайте python-скрипт (model_preparation.py), который создает и обучает модель машинного обучения на построенных данных из папки “train”. Для сохранения модели в файл можно воспользоваться pickle (см. пример)
  4. Создайте python-скрипт (model_testing.py), проверяющий модель машинного обучения на построенных данных из папки “test”.
  5. Напишите bash-скрипт (pipeline.sh), последовательно запускающий все python-скрипты. При необходимости усложните скрипт. В результате выполнения скрипта на терминал в стандартный поток вывода печатается одна строка с оценкой метрики на вашей модели, например:
Model test accuracy is: 0.876

Настоятельно рекомендуем вам проверить работоспособность скрипта в окружении отличном от того в котором происходила разработка.

Модуль 2

  • Вам нужно разработать собственный конвейер автоматизации для проекта машинного обучения. Для этого вам понадобится виртуальная машина с установленным Jenkins, python и необходимыми библиотеками. В ходе выполнения практического задания вам необходимо автоматизировать сбор данных, подготовку датасета, обучение модели и работу модели.
  • Разработанный конвеер требуется выгрузить в файл. Так же все скрипты (этапы конвеера требуется сохранить)
  • Все файлы необходимо разместить в подкаталоге lab2 корневого каталога Этапы задания
  1. Развернуть сервер с Jenkins, установить необходимое программное обеспечение для работы над созданием модели машинного обучения.
  2. Выбрать способ получения данных (скачать из github, из Интернета, wget, SQL запрос, …).
  3. Провести обработку данных, выделить важные признаки, сформировать датасеты для тренировки и тестирования модели, сохранить.
  4. Создать и обучить на тренировочном датасете модель машинного обучения, сохранить в pickle или аналогичном формате.
  5. Загрузить сохраненную модель на предыдущем этапе и проанализировать ее качество на тестовых данных.
  6. Реализовать задания и конвеер. Связать конвеер с системой контроля версий. Сохранить конвеер.

Module 5

Тестирование качества работы моделей машинного обучения

Цель задания: применить средства автоматизации тестирования python для автоматического тестирования качества работы модели машинного обучения на различных датасетах. Результаты размещаются в каталоге lab5.

Этапы задания:

  1. Создать три датасета с «качественными» данными, на которых можно обучить простую модель линейной регрессии, например

image clean data

  1. На одном из этих датасетов обучить модель линейной регрессии
  2. Создать датасет с шумом в данных, например

image clean data

  1. Провести тестирование работы модели на разных датасетах с использованием pytest, анализируя качество предсказания, обнаружить проблему на датасете с шумами.

Критерии: данное задание необходимо полностью выполнить в виде jupyter ноутбука и предоставить его на проверку.

Подсказка: вы можете записать содержимое ячейки jupyter ноутбука в отдельный файл с помощью команды

%%writefile”имя файла”

А также можете выполнить любую linux команду прямо из ячейки jupyter ноутбука, с помощью синтаксиса

! “имя команды”

Финальный проект

Цель проекта: разработать конвеер машинного обучения data-продукта (Web или API приложение).

Проект выполняется в команде. Ссылка на репозиторий: https://github.com/EgorenkovaURFU/style_recognition

Требования к реализации проекта:

  1. Исходные коды проекта должны находиться в репозитории GitHub.
  2. Проект оркестируется с помощью ci/cd (jenkins или gitlab).
  3. Датасеты версионируются с помощью dvc и синхронизируются с удалённым хранилищем.
  4. Разработка возможностей приложения должна проводиться в отдельных ветках, наборы фичей и версии данных тоже.
  5. В коневеере запускаются не только модульные тесты, но и проверка тестами на качество данных.
  6. Итоговое приложение реализуется в виде образа docker. Сборка образа происходит в конвеере.
  7. В проекте может использоваться предварительно обученная модель. Обучать собственную модель не требуется.

About

Репозиторий для выполнения практических заданий 2-го семестра.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published