Поделиться через


Операции машинного обучения

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

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

Что такое операции машинного обучения?

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

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

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

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

Предположим, у вас есть приложение, которое обслуживает прогнозы модели через REST API. Даже простой вариант использования, как это, может привести к проблемам в рабочей среде. Реализация стратегии операций машинного обучения поможет решить проблемы развертывания и поддерживать бизнес-операции, основанные на приложениях СИ.

Некоторые задачи операций машинного обучения хорошо подходят в общей платформе DevOps. Примеры включают настройку модульных тестов и тестов интеграции и отслеживание изменений с помощью управления версиями. Другие задачи являются более уникальными для операций машинного обучения и могут включать:

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

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

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

Модель зрелости операций машинного обучения поможет вам увидеть, где ваша организация находится в масштабе зрелости операций машинного обучения и поможет вам спланировать будущий рост.

Операции машинного обучения и DevOps

Операции машинного обучения отличаются от DevOps в нескольких ключевых областях. Операции машинного обучения имеют следующие характеристики:

  • Исследование предшествует разработке и операциям.
  • Жизненный цикл обработки и анализа данных требует адаптивного способа работы.
  • Ограничения на качество данных и ход выполнения ограничения доступности.
  • Требуется большее рабочее усилие, чем в DevOps.
  • Для рабочих групп требуются специалисты и специалисты по домену.

Сводные сведения см. в семи принципах операций машинного обучения.

Перед разработкой и эксплуатацией проводится исследование

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

Цель этапа исследования — определить и уточнить проблему. На этом этапе специалисты по обработке и анализу данных выполняют анализ данных. Они используют статистику и визуализации для подтверждения или фальсифицировать гипотезы проблемы. Заинтересованные лица должны понимать, что проект может не превышать этот этап. В то же время важно сделать этот этап максимально простым для быстрого поворота. Если проблема не будет решена, не включает элемент безопасности, избегайте ограничения этапа изучения процессами и процедурами. Специалисты по обработке и анализу данных должны работать с инструментами и данными, которые они предпочитают. Реальные данные необходимы для этой исследовательской работы.

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

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

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

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

Для жизненного цикла обработки и анализа данных требуется адаптивные способы работы.

Так как природа и качество данных изначально неопределенны, вы можете не достичь бизнес-целей, если вы применяете типичный процесс DevOps к проекту обработки и анализа данных. Исследование и экспериментирование — это повторяющиеся действия и потребности в процессе машинного обучения. Teams в Корпорации Майкрософт используют жизненный цикл проекта и рабочий процесс, который отражает характер действий, относящихся к обработке и анализу данных. Примерами эталонных реализаций являются командный процесс обработки и анализа данных и процесс жизненного цикла обработки и анализа данных.

Ограничения на качество данных и ход выполнения ограничения доступности

Для эффективной разработки приложений с помощью машинного обучения команда машинного обучения предпочтительна для всех соответствующих рабочих сред. Если доступ к рабочим данным невозможен из-за требований соответствия требованиям или технических ограничений, рассмотрите возможность реализации управления доступом на основе ролей Azure (Azure RBAC) с Машинное обучение Azure, JIT-доступом или конвейерами перемещения данных для создания рабочих реплик данных и повышения производительности пользователей.

Машинное обучение предъявляет повышенные требования к операциям

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

Для команд машинного обучения требуются специалисты и специалисты по домену

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

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

Семь принципов операций машинного обучения

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

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

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

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

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

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

  • Непрерывная интеграция и доставка машинного обучения. Используйте непрерывную интеграцию (CI), чтобы автоматизировать тестирование для вашей команды. Включите обучение модели в составе конвейеров непрерывного обучения. Включите тестирование A/B в состав выпуска, чтобы убедиться, что в рабочей среде используется только качественная модель.

  • Мониторинг служб, моделей и данных. При обслуживании моделей в среде операций машинного обучения важно отслеживать службы для обеспечения времени простоя инфраструктуры, соответствия требованиям и качества модели. Настройте мониторинг для выявления смещения данных и модели и понимания необходимости повторного обучения. Рекомендуется настроить триггеры для автоматического переобучения.

Рекомендации по Машинное обучение Azure

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

Люди

Обработка

  • Стандартизируйте шаблон кода для повторного использования кода и ускорить увеличение времени в новом проекте или при присоединении нового члена команды к проекту. Используйте конвейеры Машинное обучение Azure, скрипты отправки заданий и конвейеры CI/CD в качестве основы для новых шаблонов.

  • Использование управления версиями Задания, которые отправляются из папки Git, автоматически отслеживают метаданные репозитория для задания в Машинном обучении Azure, чтобы обеспечить их воспроизводимость.

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

  • Создание журнала выполнения экспериментов для сравнения, планирования и совместной работы. Используйте платформу отслеживания экспериментов, например MLflow , для сбора метрик.

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

  • Завершение обучения на раннем этапе процесса, когда модель не конвергентна. Используйте платформу отслеживания экспериментов и журнал выполнения в Машинное обучение Azure для мониторинга выполнения заданий.

  • Определите стратегию проведения экспериментов и управления моделями. Рассмотрите возможность использования имени, например чемпиона , чтобы ссылаться на текущую базовую модель. Модель претендента — это кандидатская модель, которая может превзойсть модель чемпиона в рабочей среде. Примените теги в Машинное обучение Azure, чтобы пометить эксперименты и модели. В таком сценарии, как прогнозирование продаж, может потребоваться несколько месяцев, чтобы определить, являются ли прогнозы модели точными.

  • Повышение уровня CI для непрерывного обучения путем включения обучения модели в сборку. Например, начните обучение модели в полном наборе данных с каждым запросом на вытягивание.

  • Сократите время, необходимое для получения отзывов о качестве конвейера машинного обучения, выполнив автоматическую сборку на образце данных. Используйте параметры конвейера машинного обучения Azure для параметризации входных наборов данных.

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

  • В некоторых регулируемых отраслях может потребоваться выполнить шаги проверки модели, прежде чем использовать модель машинного обучения в рабочей среде. Автоматизация шагов проверки может ускорить доставку. Когда шаги проверки или проверки вручную по-прежнему являются узким местом, рассмотрите возможность сертификации конвейера автоматической проверки модели. Используйте теги ресурсов в Машинное обучение Azure, чтобы указать соответствие активов и кандидатов на проверку или как триггеры для развертывания.

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

  • Если доступ к рабочим данным доступен только в рабочей среде, используйте Azure RBAC и пользовательские роли для предоставления доступа на чтение определенного числа специалистов по машинному обучению. Некоторые роли могут потребоваться считывать данные для связанного исследования данных. Кроме того, сделайте копию данных доступной в непроизводственных средах.

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

Технология

  • Если вы в настоящее время отправляете задания с помощью пользовательского интерфейса Студия машинного обучения Azure или CLI, а не отправки заданий с помощью пакета SDK, используйте интерфейс командной строки или задачи Azure DevOps Машинное обучение для настройки шагов конвейера автоматизации. Этот процесс позволяет сократить объем кода, повторно используя те же операции отправки заданий непосредственно из конвейеров автоматизации.

  • Используйте программирование на основе событий. Например, активируйте конвейер автономного тестирования модели с помощью Функции Azure после регистрации новой модели. Или отправьте уведомление в указанный псевдоним электронной почты, если критически важный конвейер не выполняется. Машинное обучение Azure создает события в Сетка событий Azure. Несколько ролей могут подписаться на уведомление о событии.

  • При использовании Azure DevOps для автоматизации используйте задачи Azure DevOps для машинного обучения, чтобы использовать модели машинного обучения в качестве триггеров конвейера.

  • Если вы разрабатываете пакеты Python для приложения машинного обучения, их можно разместить как артефакты в репозитории Azure DevOps и опубликовать в виде веб-канала. С помощью этого подхода можно интегрировать рабочий процесс DevOps для создания пакетов с рабочей областью Машинное обучение Azure.

  • Рассмотрите возможность использования промежуточной среды для тестирования интеграции системы конвейера машинного обучения с компонентами вышестоящего или нижнего потока приложений.

  • Создайте модульные тесты и тесты интеграции для конечных точек вывода для расширенной отладки и ускорения развертывания.

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

Фабрика ИИ для операций машинного обучения организации

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

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

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

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

На следующей иллюстрации представлены основные элементы фабрики AI.

Схема ключевых элементов фабрики ИИ.

Стандартизация на основе повторяемых архитектурных шаблонов

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

  • Ускорение этапа проектирования
  • Ускоренное утверждение ИТ-специалистами и специалистами по безопасности при повторном использовании инструментов в других проектах
  • Ускорение разработки из-за повторного использования инфраструктуры в качестве шаблонов кода и шаблонов проектов

Архитектурные шаблоны могут включать в себя следующие разделы:

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

Упрощение совместной работы команд и совместного использования данных

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

Совместное использование и повторное использование интеллектуальной собственности

Чтобы развернуть повторное использование кода, просмотрите следующую интеллектуальную собственность в начале проекта:

  • Внутренний код, предназначенный для повторного использования в организации. Примеры включают пакеты и модули.
  • Наборы данных, созданные в других проектах машинного обучения или доступные в экосистеме Azure.
  • Существующие проекты обработки и анализа данных, имеющие аналогичную архитектуру и бизнес-проблемы.
  • Репозитории GitHub или открытый код, которые могут ускорить проект.

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

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

Шаблоны проектов

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

Централизованное управление данными

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

Совместно используемые служебные программы

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

Используйте метрики Azure Monitor для создания панели мониторинга для Машинное обучение Azure и связанных служб, таких как служба хранилища Azure. Панель мониторинга помогает отслеживать ход экспериментирования, работоспособность вычислительной инфраструктуры и использование квот GPU.

Специалист по инженерии машинного обучения

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

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

Поддержка и документация

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

У всех есть уникальный способ обучения, поэтому сочетание следующих типов рекомендаций может помочь ускорить внедрение платформы фабрики ИИ:

  • Центральный концентратор с ссылками на все артефакты. Например, этот концентратор может быть каналом в Microsoft Teams или на сайте Microsoft SharePoint.
  • Обучение и план включения, разработанный для каждой роли.
  • Высокоуровневая сводная презентация подхода и видео-компаньона.
  • Подробный документ или сборник схем.
  • Практическое руководство.
  • Оценки готовности.

Операции машинного обучения в серии видео Azure

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

Этические принципы

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

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

Следующие шаги

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

Узнайте больше о том, как управлять бюджетами, квотами и затратами на уровне организации с помощью Машинное обучение Azure: