Создание продукта данных может включать машинное обучение и другую науку о данных, которая немного отличается от традиционной разработки программного обеспечения. Большая часть работы может выполняться экспериментально и не соответствовать типичному процессу CI/CD, характерному для SDLC. Кроме того, люди, выполняющие эту работу, могут не иметь глубоких знаний в области разработки программного обеспечения и не чувствовать себя комфортно с инструментами и процессами, способствующими продвижению качественного программного обеспечения.

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

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

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

ЭКСПЕРИМЕНТ

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

Сбор и исследование данных

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

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

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

Отслеживание экспериментов

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

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

ТРЕНИРОВАТЬСЯ

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

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

Упаковка модели

Предлагая простой контракт для описания проектов машинного обучения, мы можем обеспечить переносимость между средами выполнения, такими как Databricks, Docker и ПК для специалистов по данным. MLFlow предлагает один такой формат проекта с открытым исходным кодом, который представляет собой декларативный подход к зависимостям и выполнению. Он также предоставляет реестр моделей для хранения и извлечения выпущенных моделей. Реестр моделей определяет гибкий формат упаковки, который поддерживает все основные форматы сериализации ML (ONNX, TF, Sklearn и т. д.), Docker и пользовательские форматы. Эти возможности упрощают переход от экспериментов к окончательной выпущенной модели.

РАЗВЕРТЫВАТЬ

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

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

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

ОЦЕНИВАТЬ

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

Основная возможность, необходимая на этом этапе, — теневое копирование запросов из производственной среды. Эта возможность позволяет специалистам по обработке и анализу данных получать доступ к моделям-кандидатам в режиме реального времени, не влияя на производство. Платформа должна предоставлять базовые метрики без усилий и пользовательские метрики, если это необходимо. Seldon Deploy — это один из вариантов, который мы будем оценивать для обеспечения этой возможности.

Широта тестирования и метрики, сделанные на этом этапе, также могут отличаться от экспериментов:

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

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

СЛУЖИТЬ

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

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

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

В дополнение к A/B-тестированию специалисты по данным могут захотеть выполнить более сложные сценарии, такие как Multi-Arm Bandit, которые максимизируют метрику по ряду алгоритмов, а не просто определяют, является ли один из них статистически лучше. Такие возможности, как метрики модели, динамическая маршрутизация модели и мониторинг, способствуют реализации этих сценариев. Эти возможности также начинают более непосредственно предлагаться проектами с открытым исходным кодом, такими как Seldon Core.

Конечно, время выполнения среды выполнения является центральной возможностью, которая позволяет использовать многие из вышеперечисленных возможностей. В этом пространстве нет недостатка в вариантах, но главная цель состоит в том, чтобы ученые данных заботились только о модели. Стандартный формат упаковки и возможности развертывания позволяют нам выполнять вывод модели в докере, Spark UDF, Fargate, Sagemaker или Kubernetes и т. д. без каких-либо дополнительных усилий со стороны пользователей.

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