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

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

1. Построение модели: понимание проблемы, подготовка данных, разработка функций и исходный код. Типичные артефакты — грубые блокноты Jupyter.

2. Оценка модели и экспериментирование: выбор функций, настройка гиперпараметров и сравнение эффективности различных алгоритмов для данной задачи. Типичные артефакты включают записные книжки со статистикой и графиками, оценивающими веса функций, точность, воспроизводимость и рабочие характеристики приемника (ROC).

3. Производственная модель: взять «исследовательский» код и подготовить его для развертывания. Типичные артефакты — это код производственного уровня, который в некоторых случаях будет на совершенно другом языке программирования и/или платформе.

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

5. Развертывание: запуск модели в производство, где она может начать приносить пользу, предоставляя прогнозы. Типичными артефактами являются API для доступа к модели.

6. Мониторинг и наблюдаемость. Заключительный этап, на котором мы гарантируем, что наша модель делает то, что мы от нее ожидаем в производственной среде. Тема этой записи в блоге.

Три направления изменений в приложении машинного обучения — данные, модель и код

Что такое наблюдаемость ИИ?

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

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

Зачем нужна наблюдаемость ИИ?

  1. Искажения данных

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

# Мы неправильно разработали обучающие данные: Распределение переменных в наших обучающих данных не соответствует распределению переменных в реальных данных.

# Функция недоступна в рабочей версии

# Несоответствие исследований/текущих данных. Различные источники данных могут привести к различным значениям одних и тех же функций, что приведет к различным прогнозам.

# Зависимости данных. Наши модели могут принимать переменные, созданные или сохраненные другими системами (внутренними или внешними). Эти системы могут изменить способ получения данных.

2. Устаревание модели

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

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

# Враждебные сценарии. Злоумышленники (мошенники, преступники, иностранные правительства) могут активно выискивать слабые места в вашей модели и соответствующим образом корректировать свои атаки.

3. Циклы отрицательной обратной связи. Более сложная проблема возникает, когда модели автоматически обучаются на данных, собранных в производственной среде. Если эти данные каким-либо образом искажены/испорчены, то последующие модели, обученные на этих данных, будут работать плохо.

Ключевые принципы мониторинга вашей системы машинного обучения

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

Мониторинг — это почти все, что происходит до наблюдаемости:

  • Сбор показателей эффективности,
  • отслеживание их,
  • выявление потенциальных проблем,
  • оповещение нужного пользователя.

Проще говоря, вы можете отслеживать, не наблюдая, но не можете наблюдать за общей производительностью вашей системы, не отслеживая ее. Мониторинг — это сбор точек; наблюдаемость заключается в том, чтобы соединить их!

Что отслеживать в зависимости от уровня зрелости MLOps

MLOps level 0: Ручной процесс

На этом уровне означает, что вы обучаете и развертываете модели вручную. Вероятно, вы еще даже не думаете о мониторинге своей модели, возможно, вы просто ищете способ проверить свою модель на тестовом наборе и передать ее своим ИТ-специалистам или разработчикам программного обеспечения для развертывания.

Уровень 1 MLOps: автоматизация конвейера машинного обучения

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

На этом этапе, я думаю, вы больше сосредоточитесь на мониторинге:

  • Бизнес-метрика, используемая для оценки производительности вашей модели (см. раздел «Что может работать правильно») — если ее не сложно измерить, особенно если вы не можете потратить их на получение достоверной информации для мониторинга метрик модели. .
  • Свойства ваших производственных данных и производительность вашей модели в производственной среде для обнаружения устаревания и деградации модели; может помочь в непрерывном обучении с помощью триггеров, которые автоматизируют производственные конвейеры ML для повторного обучения моделей с новыми производственными данными.
  • В процессе переобучения вашей модели необходимо регистрировать метаданные конвейера, конфигурацию модели и метаданные модели, потому что вы, скорее всего, собираетесь вручную развернуть переобученную модель и хотите убедиться, что можете отслеживать свойства этой модели перед повторным развертыванием. его на производство.
  • Вам также необходимо следить за состоянием производственного конвейера, поскольку этапы переобучения автоматизированы, а конвейер данных проверяет и предварительно обрабатывает данные из одного или нескольких источников.
  • Вы также должны начать отслеживать, сколько времени занимает ваш непрерывный процесс обучения, чтобы в один прекрасный день вы не проснулись с гигантским счетом за AWS, который вы или ваша компания не планировали.

Уровень 2 MLOps: автоматизация конвейера CI/CD

Нахождение на этом уровне указывает на то, что вы полностью созрели для реализации MLOps, и почти весь конвейер представляет собой надежную автоматизированную систему CI/CD. Все этапы обучения, проверки и развертывания автоматизированы в дополнительном цикле обратной связи.

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

Краткое содержание:

Выбор платформы мониторинга/наблюдаемости

Ниже приведены некоторые инструменты, которые я видел, которые отвечают всем или большинству из вышеперечисленных полей. Если вы хотите узнать больше о некоторых инструментах и ​​платформах развертывания, которые вы можете выбрать, Dr. Ori Cohen уже объяснил большинство из них в этой статье, и я призываю вас взглянуть на них: