Задание 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 и перезапустит контейнер.
* Представление конвейера *
Наконец конвейер успешно построен:
Контактная информация :
Электронная почта:[email protected]