DevOps против MLOps. Изображение: Саурабх Агарвал [1]
В разработке программного обеспечения и ИТ-операциях разработка и эксплуатация (DevOps) — это набор методов и инструментов, которые автоматизируют и интегрируют процессы между командами разработки программного обеспечения и ИТ-операциями.
В машинном обучении операции машинного обучения (MLOps) и непрерывное машинное обучение (CML) представляют собой набор методов, направленных на надежное и эффективное развертывание и поддержку моделей машинного обучения в производственной среде [2]. MLOps включает методы и инструменты для реализации и автоматизации конвейеров машинного обучения: непрерывная интеграция (CI), непрерывная доставка/развертывание (CD), непрерывное обучение/тестирование (CT) и непрерывный мониторинг (CM) [3].
И DevOps, и MLOps нацелены на развертывание/доставку программного обеспечения в автоматизированном, воспроизводимом и отказоустойчивом рабочем процессе, но в MLOps это программное обеспечение также имеет модель машинного обучения. MLOps — это специализированное подмножество DevOps для приложений и проектов машинного обучения [4].
Операции машинного обучения (MLOPs). Изображение Вамси Систла [5]
Полный процесс MLOps включает в себя три широких этапа: Проектирование приложения на основе ML, Экспериментирование и разработка ML и Операции ML [6].
MLOps/CML (CI/CD/CT/CM). Изображение: Visual Science Informatics, LLC
Непрерывная интеграция (CI):
В разработке программного обеспечения непрерывная интеграция (CI) — это практика автоматизации интеграции изменений кода от нескольких участников в один программный проект. CI — это практика слияния всех рабочих копий разработчиков в общую основную ветку несколько раз в день «[7]. Грэди Буч впервые предложил термин КИ в своем методе 1991 года [8], хотя он и не выступал за интегрирование несколько раз в день. Экстремальное программирование (XP) приняло концепцию CI и выступало за интеграцию более одного раза в день — возможно, до десятков раз в день [9].
В ML CI расширяет тестирование и проверку кода и компонентов, добавляя данные тестирования и проверки и модели ML [10].
Непрерывная доставка/развертывание (CD):
Непрерывная поставка (CD) — это подход к разработке программного обеспечения, при котором команды производят программное обеспечение в короткие циклы, гарантируя, что программное обеспечение может быть надежно выпущено в любое время и, при выпуске программного обеспечения, без выполнения этого вручную[11]], [12].
Непрерывное развертывание контрастирует с непрерывной доставкой — аналогичным подходом, при котором программное обеспечение также создается за короткие циклы, но посредством автоматизированного развертывания, а не ручного. Непрерывное развертывание (CD) — это подход к разработке программного обеспечения, при котором функциональные возможности программного обеспечения часто предоставляются посредством автоматизированного развертывания [13],[14],[15].
И Continuous Delivery, и Continuous Deployment нацелены на создание, тестирование и выпуск программного обеспечения с большей скоростью и частотой. Такой подход помогает снизить стоимость, время и риск внесения изменений, позволяя выполнять дополнительные добавочные обновления приложений в рабочей среде. Простой и повторяемый процесс развертывания важен для Continuous Delivery/Deployment [16].
В ML компакт-диск связан с доставкой конвейера обучения ML, который автоматически развертывает другую службу прогнозирования модели ML. В системах ML развертывание не так просто, как развертывание модели ML, обученной в автономном режиме, в качестве службы прогнозирования. Системы машинного обучения могут потребовать от вас развертывания многоэтапного конвейера для автоматического переобучения и развертывания модели. Этот конвейер добавляет сложности и требует от вас автоматизации шагов, которые выполняются вручную перед развертыванием учеными данных для обучения и проверки новых моделей [17].
Непрерывное тестирование/обучение (CT):
Непрерывное тестирование — это процесс выполнения автоматизированных тестов в рамках конвейера доставки программного обеспечения для получения немедленной обратной связи о рисках, связанных с кандидатом в выпуск программного обеспечения [18], [19]. Первоначально непрерывное тестирование было предложено как способ сократить время ожидания обратной связи с разработчиками путем введения тестов, инициируемых средой разработки, а также более традиционных тестов, инициируемых разработчиком/тестировщиком [20].
Производительность модели снижается со временем. Изображение: Акинванде Комолафе [21]
В ML общей задачей является изучение и построение алгоритмов, которые могут учиться и делать прогнозы на основе данных [24]». Такие алгоритмы функционируют, делая предсказания или решения, основанные на данных [25], и строя математическую модель из входных данных. Эти входные данные, используемые для построения модели, обычно делятся на несколько наборов данных. В частности, на разных этапах создания модели обычно используются три набора данных: обучающий, валидационный и тестовый наборы [26].
«…большинство моделей работают в среде, где данные быстро меняются, происходит «дрейф данных», а статистические свойства и взаимосвязи меняются с течением времени непредвиденным образом, «дрейф понятий», что может отрицательно сказаться на точности и надежности моделей. предсказания. Чтобы смягчить «дрейф данных» и «дрейф концепций», модели необходимо отслеживать и переобучать, когда данные становятся неточными или несвязанными.
Непрерывное обучение направлено на автоматическое и постоянное переобучение модели, чтобы реагировать на изменения в данных и предотвращать дрейф данных и дрейф концепции. Эта методология предотвращает превращение модели в ненадежную и неточную [27]».
Ускорители непрерывного обучения:
Компьютерная томография требует больших вычислительных ресурсов и требует высокопроизводительных систем.
Стандартные компьютеры содержат центральный процессор (ЦП), содержащий все схемы, необходимые для обработки ввода, хранения данных и вывода результатов. Основным компонентом ЦП является арифметико-логическое устройство (ALU), которое выполняет арифметические и логические операции.
Специализированные процессоры, такие как графические процессоры (GPU), — это специализированные процессоры, предназначенные для ускорения обработки изображений и рендеринга графики. Графические процессоры расширяют возможности математических вычислений, обеспечивают высокую скорость вычислений и оптимизируют параллельную обработку. Поэтому графические процессоры оптимизированы для обучения моделей машинного обучения и глубокого обучения, поскольку они могут выполнять несколько вычислений одновременно.
Индивидуальные процессоры, такие как блок обработки интеллектуальных данных (IPU) и блок тензорной обработки (TPU), ускоряют непрерывное обучение машинному обучению на основе технологии интеллектуальных полупроводниковых микросхем. IPU — это микропроцессор, предназначенный для обработки рабочих нагрузок машинного обучения. TPU — это специализированная интегральная схема (ASIC), оптимизированная для высокоскоростных вычислений TensorFlow для ускорения вычислений алгоритмов машинного обучения нейронной сети, обучения моделей и вывода моделей.
Непрерывное машинное обучение (CML). Изображение: Диллон [28]
Непрерывный мониторинг:
Фреймворк MLOps:
Чтобы быть эффективным, у вас должны быть автоматизированные инструменты для сбора данных, подготовки, обработки, уточнения ваших данных и обучения вашей модели. Кроме того, вам потребуется платформа для версии и публикации вашей модели, развертывания вашей модели для тестирования, подготовки и производства, а также для мониторинга производительности вашей модели.
Одним из таких фреймворков является vetier framework. «Среда vetiver предназначена для задач MLOps в Python и R. Цель vetiver — предоставить удобные инструменты для версии, развертывания и мониторинга обученной модели».
Фреймворк vetiver предназначен для задач MLOps в Python и R. Изображение: RStudio
По сравнению с одномодальными подходами мультимодальная и унифицированная структура целостного ИИ в медицине (HAIM) представляет собой гибкий и надежный метод повышения прогностической способности моделей машинного обучения в здравоохранении.
Интегрированная мультимодальная структура искусственного интеллекта для приложений здравоохранения. Изображение: Луис Соенксен и др.
Автомл:
В отличие от AutoML, при ручном подходе вам необходимо предварительно обработать необработанные данные, применить методы признаков, выбрать алгоритм, а затем выполнить оптимизацию гиперпараметров, чтобы максимизировать прогностическую эффективность вашей модели.
Сравнение традиционного рабочего процесса машинного обучения и рабочего процесса AutoML. Изображение: Jankiram Msv [31]
Построение модели машинного обучения. Образ Чанин Нантасенамат
AutoML стремится упростить эти сложные ручные шаги и сделать практику машинного обучения более эффективной и действенной.
· Конвейер 1: автоматический выбор модели
· Конвейер 2: оптимизация гиперпараметров
· Конвейер 3: автоматизированная разработка функций
· Конвейер 4: оптимизация гиперпараметров
Визуализация конвейеров: карта отношений между каждым из этих конвейеров. Изображение: Дамла Алтунай, Самая Мадхаван [33]
Визуализация конвейеров: карта прогресса с последовательностью и деталями созданных конвейеров. Изображение: Дамла Алтунай, Самая Мадхаван
Таблица лидеров конвейера: сравните эффективность каждой из этих моделей на основе различных показателей. Изображение: Дамла Алтунай, Самая Мадхаван
Подробный результат метрик: в этом случае конвейер 4 дал лучший результат с метрикой «Площадь под кривой ROC (ROC AUC)». Изображение: Дамла Алтунай, Самая Мадхаван
Факторы, которые следует учитывать при выборе модели машинного обучения, описаны в Architectural Blueprints — The View Model of ML 4+1 {Scenarios, Accuracy, Complexity, Interpretability/Explainability and Operations} [34].
Платформы разработки Low-Code/No-Code (LCNC)/кодирования на естественном языке (NLC):
- Платформа разработки с низким кодом (LCDP) предоставляет среду разработки для создания прикладного программного обеспечения с помощью графических пользовательских интерфейсов с возможностью перетаскивания. LCDP уменьшает объем кодирования и затраты времени.
- Платформа разработки без кода (NCDP) позволяет непрограммистам создавать прикладное программное обеспечение с помощью перетаскивания графических пользовательских интерфейсов и конфигураций вместо традиционного компьютерного программирования.
- Платформа разработки кодирования на естественном языке (NLCDP) позволяет кодировать на простом естественном языке и обрабатывать программы, написанные на естественном языке. NLC переводит человеческий язык в код, который может выполнить компьютер. Например, ChatGPT обеспечивает анализ данных, вводя инструкции простым языком. Вы можете загружать данные и предоставлять инструкции на простом английском языке. ChatGPT очищает ваши данные, анализирует данные и создает полезные визуализации.
Различия между традиционным машинным обучением и разработкой без кода. Изображение: Обучаемая машина в направлении datascience.com
Low-Code/No-Code (LCNC) и AutoML:
Инструменты AutoML автоматизируют ручные задачи, которые должны выполнять специалисты по данным для создания и обучения моделей машинного обучения. Обычно инструменты AutoML путают с платформами LCNC. В то время как платформы LCNC позволяют пользователям, не являющимся техническими специалистами, создавать модели машинного обучения, большинство инструментов AutoML нацелены на повышение эффективности разработки, обеспечение большей прозрачности конвейера машинного обучения и помощь в уточнении моделей машинного обучения [35].
Фреймворки и библиотеки машинного и глубокого обучения для крупномасштабного интеллектуального анализа данных. Изображение: Джианг Нгуен и др.
Инструменты машинного обучения без кода, такие как Orange Data Mining, используют визуальное программирование для анализа данных с интерактивной визуализацией данных. Исследуйте статистические распределения, диаграммы разброса и диаграммы рассеяния или погрузитесь глубже с деревьями решений, иерархической кластеризацией, тепловыми картами, MDS и линейными проекциями. Программа визуально использует «Интерактивное исследование данных для быстрого качественного анализа с чистой визуализацией. Графический пользовательский интерфейс позволяет сосредоточиться на исследовательском анализе данных, а не на кодировании, а умные настройки по умолчанию делают быстрое прототипирование рабочего процесса анализа данных чрезвычайно простым. Разместите виджеты на холсте, подключите их, загрузите свои наборы данных и соберите информацию». Создавайте модели и работайте с ними, включая основные задачи ML по классификации (например, логистическая регрессия, kNN и нейронные сети) и регрессии (например, линейная регрессия, случайный лес и нейронные сети). Оценивайте точность классификации и показатель F1, сравнивайте кривые ROC и создавайте матрицы путаницы для каждой модели. Визуализация ваших многомерных данных может стать разумной в 2D, особенно с умным ранжированием и выбором атрибутов».
Затем прочитайте статью Архитектурные чертежи — модель машинного обучения «4+1» по адресу https://www.linkedin.com/pulse/architectural-blueprintsthe-41-view-model-machine-rajwan-ms. -дск»
— — — — — — — — — — — — — — — — — — — — — — — — — — — — -
[1] https://ai.plainenglish.io/mlops-integrating-ml-with-devops-f340288d3afc
[2] https://towardsdatascience.com/ml-ops-machine-learning-as-an-engineering-discipline-b86ca4874a3f
[3] https://adiksoni095.medium.com/mlops-continuous-delivery-and-automation-pipelines-in-machine-learning-5847e35101ba
[4] https://www.phdata.io/blog/mlops-vs-devops-whats-the-difference
[5] https://medium.com/@vsistla/why-mlops-shouldnt-be-an-afterthought-b73c564b96d7
[6] https://ml-ops.org/content/mlops-principles
[7] https://martinfowler.com/articles/continuousIntegration.html
[8] https://books.google.com/books?id=w5VQAAAAMAAJ&q=continuous+integration+inauthor:grady+inauthor:booch
[9] https://ieeexplore.ieee.org/document/796139
[10] https://cloud.google.com/architecture/mlops-continuous-delivery-and-automation-pipelines-in-machine-learning
[11] https://www.semanticscholar.org/paper/Continuous-Delivery%3A-Huge-Benefits%2C-but-Challenges-Chen/45159ec8403fa87ebde2d695819b202c52e11e04
[12] https://ui.adsabs.harvard.edu/abs/2017arXiv170307019S/abstract
[13] https://ieeexplore.ieee.org/document/7884954
[14] https://ieeexplore.ieee.org/document/6328180
[15] https://www.sciencedirect.com/science/article/abs/pii/S0950584914001694?via%3Dihub
[16] https://en.wikipedia.org/wiki/Continuous_delivery
[17] https://cloud.google.com/architecture/mlops-continuous-delivery-and-automation-pipelines-in-machine-learning
[18] https://www.techwell.com/techwell-insights/2015/08/part-pipeline-why-continuous-testing-essential
[19] https://www.stickyminds.com/interview/relationship-between-risk-and-continuous-testing-interview-wayne-ariola
[20] https://ieeexplore.ieee.org/document/1251050
[21] https://neptune.ai/blog/retraining-model-during-deployment-continuous-training-continuous-testing
[22] https://cloud.google.com/architecture/mlops-continuous-delivery-and-automation-pipelines-in-machine-learning
[23] https://neptune.ai/blog/retraining-model-during-deployment-continuous-training-continuous-testing
[24] https://ai.stanford.edu/~ronnyk/glossary.html
[25] https://link.springer.com/book/9780387310732
[26] https://en.wikipedia.org/wiki/Training,_validation,_and_test_data_sets
[27] https://levity.ai/blog/what-is-continuous-machine-learning
[28] https://blog.paperspace.com/ci-cd-for-machine-learning-ai
[29] https://towardsdatascience.com/ml-ops-machine-learning-as-an-engineering-discipline-b86ca4874a3f
[30] https://www.automl.org/automl
[31] https://medium.com/nerd-for-tech/what-is-automl-automated-machine-learning-a-brief-overview-a3a19c38b5f
[32] Создайте конвейеры моделей машинного обучения, чтобы выбрать лучшую модель для вашей задачи — IBM Developer
[33] https://developer.ibm.com/tutorials/generate-machine-learning-model-pipelines-to-choose-the-best-model-for-your-problem-autoai
[34] https://www.linkedin.com/pulse/machine-learning-101-what-ml-choose-yair-rajwan-ms-dsc
[35] https://www.g2.com/articles/low-code-and-no-code-machine-learning-platforms#:~:text=What%20are%20No%2DCode%20Machine,для %20create%20machine%20learning%20applications.