Часть четвертая из пяти

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

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

Вы можете найти другие блоги из этой серии, перейдя по ссылкам ниже:

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

  1. Эффективно определять параметры наиболее эффективных моделей
  2. Воспроизвести эти модели позже

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

Два вопроса помогают нам отслеживать нашу модель:

  1. Какие компоненты мы хотим отслеживать?
  2. Какие форматы данных и службы мы должны использовать для их отслеживания?

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

Компоненты, которые мы отслеживаем

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

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

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

Организация

Когда мы проводим тысячи испытаний, все может запутаться. Сторонние программные платформы MLOps, помогающие решить эту проблему, в последние годы стали более совершенными. Для интеграции с пользовательским кодом проекта требуется всего несколько строк кода, а информационные панели помогают легко сортировать пробные модели. Самое приятное то, что вся сложность ведения журналов и управления базами данных находится под капотом. Weights and Biases (W&B), MLflow и neptune.ai — три хорошо известных сервиса, которые имеют много общих функций отслеживания моделей. Хотя все три платформы превосходны, мы изучаем функциональность W&B для этого примера конвейера, потому что установка проста, документация обширна, и у них есть широкий набор функций визуализации.

Здесь мы даем краткое введение в то, как мы внедрили W&B в наш пример конвейера.

Веса и смещения настроены

Начать работу с W&B очень просто. После того, как вы зарегистрируете учетную запись на их веб-сайте (это бесплатно для частных лиц!), вы получите инструкции по загрузке W&B Python SDK.

Базовая реализация W&B на Python выглядит так:

Относительно вызова wandb.init() выше:

  • Аргумент project — это имя всеобъемлющего проекта. Несколько запусков моделирования с различными конфигурациями могут быть сохранены в одном проекте.
  • Аргумент config представляет собой словарь значений конфигурации модели. Ключи и значения в этом словаре будут использоваться для группировки и сравнения различных запусков модели в рамках проекта.
  • Аргумент name — это имя одного прогона модели. Если оставить пустым, генерируется случайное имя.

Кроме того, любые объекты и файлы, которые вы регистрируете в wandb_run, будут сохранены с заданным именем запуска в данном проекте и будут доступны для просмотра на панели инструментов W&B.

Ведение журнала

В ходе моделирования W&B вы можете зарегистрировать любой произвольный объект или файл как артефакт. Имейте в виду, однако, что при этом поведение по умолчанию будет копировать объект в облачное хранилище W&B (GCS в США). избегайте тесной связи со сторонними инструментами. Вместо этого мы регистрируем ссылочные артефакты на URI в наших собственных корзинах S3. При этом в качестве артефакта в W&B сохраняется только ссылка URI. Это дает нам лучший контроль над хранимыми данными и повышает безопасность отслеживания конфиденциальных файлов.

Просмотр приборной панели

W&B предоставляет удобную информационную панель для отслеживания зарегистрированных артефактов и просмотра результатов моделирования. Чтобы перейти к панели инструментов, перейдите на wandb.ai/home и выберите свой проект. На первой вкладке будут показаны некоторые результаты обучения для каждого запуска моделирования в рамках проекта. Для приведенной ниже панели мониторинга мы использовали обратный вызов WandbMetricsLogger TensorFlow для отслеживания отзыва, точности и достоверности в каждую эпоху.

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

Это всего лишь две из многих приятных функций панели инструментов W&B. Он также обеспечивает отличные визуализации для организации поиска гиперпараметров, позволяет отслеживать данные артефактов и метаданные, создает отчеты с вашими результатами и многое другое. Мы рекомендуем вам потратить некоторое время на ознакомление со всеми возможностями приборной панели!

Поиск гиперпараметров

Одной из мощных функций W&B является его способность отслеживать и визуализировать поиск гиперпараметров. Вы можете использовать онлайн-панель W&B для настройки поиска по гиперпараметрам или интегрировать W&B в свой собственный поисковый код с их SDK. Чтобы наш пример конвейера оставался гибким, мы интегрировали ведение журнала W&B в наш существующий код поиска гиперпараметров.

Во время разработки модели мы использовали пакет KerasTuner Python для поиска гиперпараметров. Настройка высокого уровня поиска KerasTuner выглядит следующим образом:

При вызове tuner.search() новая модель строится и обучается для каждого испытания в num_search_trials с помощью метода run_trial(). Мы можем написать собственный класс тюнера, который наследуется от RandomSearch и переопределяет run_trial(). Пользовательский метод содержит логику для настройки прогона W&B.

Теперь, когда мы создаем экземпляр WandBTuner и вызываем его метод search(), наш пользовательский метод run_trial() будет использоваться для поиска гиперпараметров. Затем W&B может получить доступ к показателям производительности и гиперпараметрам для создания красивых диаграмм с параллельными координатами, подобных приведенной ниже.

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

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

Машинное обучение в Edge Analytics

Edge Analytics помогает компаниям создавать решения MLOps для своих конкретных вариантов использования. В более широком смысле мы специализируемся на науке о данных, машинном обучении и разработке алгоритмов как на периферии, так и в облаке. Мы предоставляем сквозную поддержку на протяжении всего жизненного цикла продукта, от быстрых исследовательских прототипов до алгоритмов искусственного интеллекта и машинного обучения на уровне производства. Мы сотрудничаем с нашими клиентами, от компаний из списка Fortune 500 до инновационных стартапов, чтобы воплотить их идеи в жизнь. У вас есть сложная проблема? Свяжитесь с нами по адресу [email protected].