Задание Mlops- 3 ☆*:

1. Создайте образ контейнера с Python3 и Keras или numpy, установленным с помощью Dockerfile.

2. Когда мы запускаем этот образ, он должен автоматически запускать обучение модели в контейнере.

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

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

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

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

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

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

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

Прежде чем мы перейдем к практической части, давайте рассмотрим основные понятия:

Требуемое программное обеспечение:

  • Гит и Гитхаб
  • Дженкинс
  • Докер
  • нгрок (необязательно)
  • среда python3

машинное обучение — это тип искусственного интеллекта (ИИ), который позволяет компьютерному приложению (веб-программному обеспечению) стать более точным в прогнозировании результатов без явного выполнения, то есть автоматически. он использует алгоритмы, которые собирают данные для построения прогностических моделей, которые выбирают, где искать информацию.

Сверточная нейронная сеть:

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

KERAS (модуль Python):

Это библиотека нейронной сети с открытым исходным кодом, написанная на Python и работающая поверх Tensorflow.

📌Создание модели keras:

  • Определение архитектуры: нет. слоев, нет. узлов в слоях, функция активации, которая будет использоваться.
  • Компиляция: определяет функцию потерь и некоторые подробности о том, как работает оптимизация.
  • Соответствие :цикл обратного распространения и оптимизации весов модели с вашими данными.
  • Predict : для прогнозирования подготовленной модели.

📌Зачем использовать keras:

  • Позволяет легко и быстро создавать прототипы (за счет удобства для пользователя, модульности и расширяемости).
  • Поддерживает как сверточные сети, так и рекуррентные сети, а также их комбинации.
  • Без проблем работает на CPU и GPU.

Практическая часть ✨ :

💡Использование нгрока:

Сделать сервер общедоступным, чтобы github мог обращаться к нему по мере необходимости для автоматизации.

КОМАНДА СДЕЛАТЬ ТОННЕЛИРОВАНИЕ:

  • ./ngrok http 8080

Блокнот Юпитера:

Прежде чем перейти к прямому поезду модели, мы вручную проверим, работает ли наш мл-код нормально или нет. Итак, я тестирую свой код на Jupyter Notebook.

Здесь я работаю над набором данных о кошках и собаках, используя CNN:

модель предсказывает точность 86,07%, что является довольно хорошим числом.

Гитхаб:

Создайте репозиторий Github с инициализацией (или вы можете предпочесть git bash также для автономного режима) и создайте файл кода, который соответствует модели обучения CNN.

Докер:

сначала создайте каталог, содержащий набор данных вашей модели (т. е. cnn_dataset) и Dockerfile со средой Python со всеми необходимыми модулями. Основными модулями, используемыми в моей модели, являются Keras, Tensorflow и подушка.

Создайте образ среды Python:

docker build -t <image name>:<version>  <path>

Особый момент: Tensorflow — это модуль очень большого размера, поэтому для импорта потребуется много времени, даже если это время может быть увеличено до 3 часов, это также зависит от скорости вашего интернета, так что наберитесь терпения (●'◡'●) .

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

иногда изображение не строится успешно, и появляется оборванное изображение (т. е. «ни одного» изображения). поэтому, чтобы удалить его, просто запустите эту команду →

docker rmi -f $(docker images --filter "dangling=true" -q           --no-trunc)

Дженкинс:

давайте перейдем к части Jenkins, сначала установим все необходимые плагины:

  • Гитхаб
  • Сборка конвейера/конвейера доставки (для просмотра конвейера)
  • расширение электронной почты
  • шаблон расширения электронной почты
  • прямая почтовая рассылка

*Job1:загрузить репозиторий Github. и загрузите обучающий код модели мл.

*Задание 2 : Теперь запустите контейнер, содержащий среду Python, для развертывания кода, начните обучение модели и проверьте точность, просмотрев код. здесь я использую код CNN для обучения модели.

*Job3: сначала мы входим в контейнер и запускаем команду для анализа кода, обучения модели и прогнозирования точности.

*Job4 :Это задание отправит письмо разработчику с достигнутой точностью, только если точность ≥80%. в противном случае настройте job3 и снова начните обучение модели. и этот процесс будет продолжаться до тех пор, пока не будет достигнута желаемая точность.

🤔что необходимо для успешного выполнения части электронной почты ❓

все подробности в моем предыдущем блоге, поэтому вы можете обратиться к нему→ https://medium.com/@raniagrawal2001/setup-of-jenkins-docker-container-f09e0b77ed9?source=friends_link&sk= 8d099723bb16fd099a00f7f921fa277d

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

Помимо этого, для этой задачи также требуются некоторые дополнительные настройки в действиях после сборки. Они следующие 👉

*Job5 :основная обязанность этого задания состоит в отслеживании активности каждый час, если что-то пойдет не так с процессом, то он удалит предыдущий контейнер, настроит job2 и перезапустит контейнер.

* Представление конвейера *

Наконец конвейер успешно построен:

Контактная информация :

Github: https://github.com/rani-gupta/ML_Jenkins.git

Linkedin: https://www.linkedin.com/in/rani-gupta-07a828180

Электронная почта:[email protected]