Какая разница?

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

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

Итак, давайте углубимся.

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

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

Конвейеры обработки данных

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

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

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

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

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

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

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

ome заметит, что ELT и ETL являются подмножеством всеобъемлющих рабочих процессов данных или конвейеров данных, поскольку существует несколько других подклассов, которые часто включают шаблоны потоковой передачи, такие как pub/sub или CDC. — Бен Рогожан

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

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

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

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

Конвейеры машинного обучения

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

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

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

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

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

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

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

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

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

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

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

Типы работы

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

Конвейеры данных и конвейеры машинного обучения имеют еще одну общую черту — конвейерную обработку по требованию.

В конвейерах данных это часто выглядит как «механизм выталкивания», при котором создается событие, а данные из этого события передаются в кластер Kafka.

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

Другой пример — когда вы закончили смотреть шоу «Последние из нас» HBO Max и нуждаетесь в рекомендации для нового шоу, будь то похожее или другое.

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

Конвейеры данных имеют три типа заданий: потоковые, пакетные и по требованию. Напротив, конвейеры машинного обучения имеют только типы заданий пакет и по требованию (или вывод).

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

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

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

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

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

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

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