Data Scientist, Data Analyst, Data Engineer, Data Engineer, ML Engineer, MLOps Engineer, vs. [вставьте свое причудливое название должности здесь]…

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

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

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

Естественно, между этими ролями есть много общего, и я не буду притворяться, что они MECE (взаимоисключающие и коллективно исчерпывающие), но я попытался подчеркнуть ключевые отличительные элементы каждой роли, чтобы помочь с их позиционированием. Кроме того, я считаю, что по мере взросления отрасли эти роли, естественно, станут более стандартизированными и общепринятыми, особенно если учесть, что некоторые из них даже не существовали еще 3–4 года назад.

Обзор «основных» ролей в науке о данных

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

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

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

Аналитик данных (эксперт по аналитике)

  • Основная задача. Аналитики данных, которых иногда также называют экспертами по анализу данных, тратят большую часть своего времени на изучение, обработку и подготовку данных, а также на создание отчетов, информационных панелей и визуализаций с основной целью предоставление действенных идей.
  • Ключевой набор технологий: Microsoft Excel (для исследования данных), Alteryx (или другой аналогичный инструмент визуальной подготовки данных), Tableau/Power BI/Qlikview (и другие подобные инструменты для построения панелей/визуализации), Basic Python (например, , Pandas, NumPy и т.п.)

Инженер данных

  • Основное направление: инженеры по обработке данных — это инженеры-программисты, специализирующиеся на разработке конвейеров данных (включая большие данные). Они в первую очередь несут ответственность за поиск, преобразование и интеграцию больших наборов данных из различных систем и преобразование их в необходимую структуру/модель данных для использования аналитиками данных и специалистами по данным.
  • Ключевой набор технологий:Advanced Python (например, Pandas, NumPy), Advanced SQL, технологии/языки больших данных (например, Spark, PySpark, Scala, Hadoop, Hive), платформы ETL (например, Informatica, IBM InfoSphere)

Специалист по данным

  • Основная задача. Специалисты по обработке и анализу данных, как правило, сосредоточены на этапе «разработка и оценка модели», где они несут ответственность за разработку конвейеров машинного обучения с помощью итеративного и экспериментального процесса разработки функций, обучения моделей, оценка модели и оптимизация производительности. На практике, однако, многие специалисты по данным участвуют на всех этапах жизненного цикла науки о данных, и их иногда называют специалистами по данным с полным стеком.
  • Основной набор технологий:Advanced Python, включая библиотеки машинного обучения (например, Pandas, NumPy, Tensorflow, Scikit-learn, PyTorch, Matplotlib и т. д.), библиотеки НЛП (например, NLTK, BERT, spaCy и т. д.). .), работа с базами данных SQL и NoSQL, платформами обработки данных (например, Dataiku, Azure ML, Databricks, Domino Data Lab, KNIME, RapidMiner или просто Jupyter Notebook/JupyterLab)

Инженер MLOps

  • Основное направление: инженеры по операциям машинного обучения (MLOps) фактически являются инженерами DevOps, которые специализируются на развертывании и конвейерах CI/CD моделей машинного обучения. Практики MLOps отличаются от традиционных практик DevOps во многих отношениях. Например, им обычно требуются производственные данные в среде разработки, масштабируемая облачная инфраструктура, часто включающая серверы на базе графических процессоров для обучения модели, управление версиями модели с помощью службы реестра моделей, контейнеризация модели и ее развертывание в масштабируемой инфраструктуре оркестровки, а также конвейеры, которые обеспечить постоянный мониторинг выходных данных в производстве, механизмы подачи выходных данных для автоматического повторного обучения и динамического повторного развертывания моделей и т. д.)
  • Ключевой набор технологий: Docker Containers или аналогичные, Kubernetes Services или аналогичные, GitLab или аналогичные, конвейеры CI/CD, Linux/Unix, Fiddler, MLflow и т. д.

ML инженер

  • Ключевое направление: инженер по машинному обучению (ML) — одна из самых спорных ролей, мнения о которой часто расходятся. Некоторые считают его почти синонимом специалиста по данным, а другие считают его полноценным разработчиком; однако на практике они находятся где-то посередине. Инженеры машинного обучения — это инженеры-программисты по образованию, которые также хорошо разбираются в концепциях и конвейерах машинного обучения. В их обязанности входит интеграция выходных данных модели в нижестоящие системы, рефакторинг конвейеров машинного обучения в готовый к производству код (иногда на языках программирования более низкого уровня, таких как Java или C++), разработка API-интерфейсов, которые обертывают модели и позволяют их разделение как микросервиса, разработка приложений. которые интегрируют выходные данные модели и т. д.
  • Ключевой технический стек:продвинутый уровень программирования (Java, C++, Python), продвинутые знания микросервисов и API (например, Java Spring Boot, Flask, FastAPI и т. д.), понимание технологического стека, связанного с MLOps (например, , Docker, Kubernetes, GitLab и т. д.)

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

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

1. Некоторые из них являются стандартными инженерными ролями, такими как инженеры по инфраструктуре, архитекторы решений и менеджеры по продуктам, которые требуются для любых проектов доставки ИТ.

2. Другие, такие как архитекторы данных, специалисты по моделированию данных, владельцы данных и специалисты по управлению данными, требуются для любых проектов, связанных с данными, независимо от того, используются ли передовые методы AI/ML или нет.

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

  • Исследователь искусственного интеллекта/машинного обучения. Технические возможности аналогичны специалистам по данным, но основное внимание уделяется исследованию и экспериментированию с последними и лучшими разработками в области науки о данных, прежде чем они будут использованы в реальной производственной среде.
  • Проверка модели.Обычно требуется в строго регулируемых средах, таких как финансовые услуги, где независимая проверка моделей и их допущений требуется кем-то, кроме лица, разработавшего модель.
  • Переводчик аналитики. Эта роль находится на пересечении нетехнического бизнеса SME (экспертов в предметной области) и технических специалистов по данным и действует как «переводчик», соединяющий эти два мира. Они хорошо понимают концепции науки о данных и связанный с ними жаргон, но также могут говорить на деловом языке и формулировать проблемы и преимущества науки о данных для нетехнических толп.

Заключительные мысли об эволюции роли науки о данных

Многие из этих ролей существовали долгое время, но просто назывались по-разному до наступления так называемой «эры науки о данных». Эти роли ни в коем случае не устарели и все еще существуют по сути, но в основном они развились/слились в одну из вышеупомянутых ролей науки о данных.

Например, разработчики ETL (Extract-Transform-Load) превратились в инженеров данных с более современным техническим стеком, таким как PySpark, Scala и Hive, вместо инструментов ETL. например Информатика. Точно так же инженеры бизнес-аналитики (BI) превратились в экспертов по анализу данных, которые сосредоточены на извлечении информации из данных с использованием новейших инструментов визуализации и информационных панелей.

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

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

Это уже относится к текущим платформам/библиотекам машинного обучения, таким как Tensorflow, Pytorch и Keras, которые позволили специалистам по данным почти не тратить время на разработку базовых алгоритмов машинного обучения с нуля (например, нейронные сети, XGBoost и т. д.) и тратить больше времени на применение этих алгоритмов для решения своих проблем. Поэтому естественно ожидать, что эта тенденция сохранится, и новые фреймворки/библиотеки будут автоматизировать еще большую часть жизненного цикла науки о данных, какой мы ее знаем.

С нетерпением жду ваших комментариев по поводу того, 1) соответствует ли мое позиционирование этих ролей вашему пониманию/опыту и 2) есть ли какие-либо дополнительные роли, которые стоит выделить.