Эта задача показывает «Как вы можете автоматизировать свои проекты ML/DL».

Сведения о задаче :-
интеграция #ML-DevOps

Для кода, используемого в этой задаче, используйте эту ссылку GitHub: -
https://github.com/apt-x4869/MLOPsT3.git

1. Создайте образ контейнера с Python3 и Keras или numpy, установленными с помощью файла dockerfile. Когда мы запускаем этот образ, он должен автоматически запускать обучение модели в контейнере.

* Создайте цепочку заданий job1, job2, job3, job4 и job5, используя плагин сборки конвейера в Jenkins.

2. Job1: автоматическое получение репозитория Github, когда некоторые разработчики отправляют репозиторий на Github.

3. Job2: просмотрев код или программный файл, Дженкинс должен автоматически запустить соответствующее программное обеспечение для машинного обучения, установить интерпретатор, установить контейнер изображения, чтобы развернуть код и начать обучение (например, если код использует CNN, тогда Дженкинс должен запустить контейнер, который уже установлено все программное обеспечение, необходимое для обработки cnn).

4. Job3: Обучите свою модель и предскажите точность или показатели.

5. Job4: если точность метрик меньше 80 %, настройте архитектуру модели машинного обучения.

6. Job5: переобучить модель или уведомить, что создается лучшая модель

7. Создайте одно дополнительное задание job6 для монитора: если контейнер, в котором запущено приложение. происходит сбой по какой-либо причине, то это задание должно автоматически снова запускать контейнер с того места, где осталась последняя обученная модель.

Шаг 1. Образ Docker с использованием Dockerfile

Для Deep Learning Docker Image я использовал CentOS в качестве базового образа и установил все библиотеки и зависимости с помощью Dockerfile. Аналогичное изображение для проекта ML вы можете найти по ссылке на GitHub.

Шаг 2. Задание 1 — получение репозитория GitHub с помощью Jenkins

Как видите, я создал задание в jenkins для загрузки и копирования исходного кода из репозитория GutHub в каталог /mlopsT3.

Шаг 3. Задание 2 — Просмотр контейнера запуска кода для модели глубокого обучения или машинного обучения

Задание 2 будет выглядеть следующим образом: оно может запускать контейнеры двух типов: 1) Глубокое обучение (keras) и 2) Машинное обучение (sklearn). Это задание будет запускаться сразу после первого задания, т. е. после копирования данных.

Шаг 4: Задание 3 – будет выполняться наш код внутри контейнера, который мы запустили в предыдущем задании.

Как вы можете видеть, в зависимости от кода Python он запускает указанный код ML/DL в этом контейнере. Я также установил дистанционный триггер для нашей следующей работы.

Шаг 5. Задание 4. Проверка точности и настройка гиперпараметра

Он запускает код Python tweak.py, который проверяет точность и настраивает / изменяет гиперпараметры для лучшего результата. Это задание запускается/собирается автоматически после стабильной сборки Job3.

Это также снова вызовет задачу 3 после настройки гиперпараметров, которые хранятся в файлах hPara.csv и

6. Задание 5. Уведомление о том, что создается лучшая модель

Здесь я использовал скрипт Python для отправки электронной почты, но вы также используете уведомление по электронной почте Jeknkins, и для этого вы можете обратиться к моему предыдущему сообщению https://link.medium.com/E0TOXrRWC7.

Это задание будет удаленно запущено заданием 4. Если точность модели является обязательным критерием, то это задание будет запущено заданием 4, чтобы отправить сообщение об обучении модели. Для рассылки я сделал скрипт на питоне для почты.

Шаг 7: Задание 6. Это задание постоянно проверяет, запущен контейнер или нет. Если контейнер не запущен, он перезапускается для нас.

Это задание создается периодически (каждую минуту).
Оно проверяет, запущен ли желаемый контейнер или нет, с помощью команды docker ps.