Работа с данными против конвейера машинного обучения

Работа с данными борьба с конвейером машинного обучения

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

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

Для ответа на этот вопрос я пригласил Сару Флорис, которая является опытным инженером данных и автором рассылки The Dutch Engineer.

Итак, приступим.

За последние 5 лет накопление данных, вызванное популярностью платформ социальных сетей, таких как TikTok и Snapchat, подчеркнуло разницу между данными и конвейерами машинного обучения (ML). Эти два компонента являются неотъемлемыми частями каждой компании, но часто путаются. Несмотря на некоторые сходства, их цели существенно отличаются.

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

Конвейеры инженерии данных

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

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

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

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

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

Хранение данных: Здесь хранятся обработанные данные. Это важно для быстрого и легкого доступа к данным, а также для защиты данных и безопасности.

Эти 4 части конвейера данных часто называются извлечение (сбор данных), преобразование (очистка данных и интеграция данных) и загрузка (хранение данных). Процесс извлечения, преобразования и загрузки данных часто называется ETL или ELT.

Некоторые заметят, что ELT и ETL являются подмножеством общего понятия “рабочие процессы данных” или конвейеры данных, поскольку существуют и другие подклассы, которые часто включают такие виды потоковых данных, как pub/sub или CDC. – Ben Rogojan

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

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

Вот почему обычно слышно, что инженеры по работе с данными перемещают данные из точки А в точку В.

Бюллетень SeattleDataGuy – это публикация, поддерживаемая читателями. Чтобы получать новые публикации и поддерживать мою работу, подумайте о том, чтобы стать бесплатным или платным подписчиком.

Машинное обучение Pipelines

Машинное обучение (ML) pipelines не работают в прямой линии, как data pipelines. Вместо этого они включают в себя создание, обучение и развертывание моделей ML. Это используется для автоматизации всего процесса построения модели ML, от сбора данных до внедрения ее в производство. ML pipeline состоит из пяти частей:

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

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

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

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

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

Развертывание моделей: Мы используем сохраненную модель (будь то из реестра моделей или из другого места хранения моделей) и интегрируем ее в производственную систему, где она может использоваться для прогнозирования новых данных.

Мониторинг моделей: Основными методами мониторинга являются мониторинг анализа производительности и мониторинг изменения данных.

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

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

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

Типы работ

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

У поточных данных и поточных моделей машинного обучения есть еще одно общее свойство – это поточное построение.

В поточных данных это часто выглядит как “механизм передачи” (push mechanism), где событие создается, а данные этого события передаются в кластер Kafka.

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

Еще один пример – когда вы заканчиваете просмотр шоу The Last of Us на HBO Max и вам нужна рекомендация нового шоу, будь то похожего или совершенно другого.

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

У поточных данных есть три типа работы: потоковая передача, пакетная передача и на запрос. В отличие от этого, у моделей машинного обучения есть только пакетная передача и на запрос (или типы работ “вывода”).

Вычислительные потребности

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

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

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

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

Бесконечные конвейеры

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

Исходная статья размещена здесь, написана Беном Рогояном.