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]

В машинном обучении непрерывное тестирование/обучение системы машинного обучения требует больше усилий, чем тестирование других программных систем. В дополнение к типичным модульным и интеграционным тестам вам потребуется проверка данных, оценка качества обученной модели и проверка модели. Непрерывное обучение уникально для систем машинного обучения, которое связано с автоматическим переобучением и обслуживанием моделей «[22].

Непрерывное обучение — это аспект операций машинного обучения, который автоматически и непрерывно переобучает модели машинного обучения, чтобы адаптировать их к изменениям в данных, прежде чем они будут повторно развернуты. Триггером для перестроения может быть изменение данных, изменение модели или изменение кода «[23].

В ML общей задачей является изучение и построение алгоритмов, которые могут учиться и делать прогнозы на основе данных [24]». Такие алгоритмы функционируют, делая предсказания или решения, основанные на данных [25], и строя математическую модель из входных данных. Эти входные данные, используемые для построения модели, обычно делятся на несколько наборов данных. В частности, на разных этапах создания модели обычно используются три набора данных: обучающий, валидационный и тестовый наборы [26].

«…большинство моделей работают в среде, где данные быстро меняются, происходит «дрейф данных», а статистические свойства и взаимосвязи меняются с течением времени непредвиденным образом, «дрейф понятий», что может отрицательно сказаться на точности и надежности моделей. предсказания. Чтобы смягчить «дрейф данных» и «дрейф концепций», модели необходимо отслеживать и переобучать, когда данные становятся неточными или несвязанными.

Непрерывное обучение направлено на автоматическое и постоянное переобучение модели, чтобы реагировать на изменения в данных и предотвращать дрейф данных и дрейф концепции. Эта методология предотвращает превращение модели в ненадежную и неточную [27]».

Ускорители непрерывного обучения:

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

Стандартные компьютеры содержат центральный процессор (ЦП), содержащий все схемы, необходимые для обработки ввода, хранения данных и вывода результатов. Основным компонентом ЦП является арифметико-логическое устройство (ALU), которое выполняет арифметические и логические операции.

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

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

Непрерывное машинное обучение (CML). Изображение: Диллон [28]

Непрерывный мониторинг:

Непрерывный мониторинг (CM) связан с мониторингом производственных данных и показателей производительности модели. Прогностическая производительность модели отслеживается, чтобы потенциально вызвать новую итерацию в процессе машинного обучения. Следовательно, в дополнение к мониторингу стандартных показателей, таких как задержка, трафик, ошибки и насыщенность, нам также необходимо отслеживать производительность прогнозирования модели «[29].

Фреймворк MLOps:

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

Одним из таких фреймворков является vetier framework. «Среда vetiver предназначена для задач MLOps в Python и R. Цель vetiver — предоставить удобные инструменты для версии, развертывания и мониторинга обученной модели».

Фреймворк vetiver предназначен для задач MLOps в Python и R. Изображение: RStudio

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

Интегрированная мультимодальная структура искусственного интеллекта для приложений здравоохранения. Изображение: Луис Соенксен и др.

Автомл:

Автоматизированное машинное обучение (AutoML) относится к автоматизированному сквозному процессу применения машинного обучения в реальных и практических сценариях «[30]

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

Сравнение традиционного рабочего процесса машинного обучения и рабочего процесса AutoML. Изображение: Jankiram Msv [31]

Построение модели машинного обучения. Образ Чанин Нантасенамат

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

Например, AutoAI автоматизирует задачи машинного обучения, такие как подготовка данных для моделирования и выбор лучшего алгоритма для решения вашей задачи. После предварительной обработки данных AutoAI определяет три наиболее эффективных алгоритма и для каждого из этих трех алгоритмов генерирует следующие 4 конвейера «[32]:

· Конвейер 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.