Журнал / польза

Кто есть кто в data science: аналитики, исследователи, ML-разработчики и инженеры

Чем занимаются разные специалисты по работе с данными.

Data science — это сфера, для работы в которой нужны знания предметной области (например, биологии, если вы планируете заниматься биоинформатикой), навыки программирования, а также подготовка по математике и статистике. Специалисты по данным помогают компании обрабатывать огромный пул информации из разных источников. В data science есть много профессий со схожими названиями: например, разработчики ML и ML-инженеры. Академия Яндекса совместно с преподавателями ШАДа разобралась, что важно знать всем ML-специалистам, чем отличаются профессии в этой области и чего ждут от кандидатов на разные вакансии.

Как устроена сфера data science

В data science есть пять основных направлений:

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

2. Моделирование помогает делать быстрые вычисления на основе имеющихся данных. Можно изучить 100 покупок человека и в 101 раз помочь ему собрать корзину: кажется, вы очень любите клубничные пончики, не хотите добавить их в заказ?

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

4. Программирование нужно для того, разработчики могли создавать модели и реализовывать другие свои решения. Чаще всего датасаентисты используют Python или R.

5. Базы данных позволяют эффективно хранить информацию: ведь у крупных компаний копится огромное количество данных.

Науки о данных позволяют компаниям решать такие задачи:

— Классифицировать контент (например, отличать спам от полезных писем)

— Находить аномалии (такие, как мошенничество или попытки взлома)

— Распознавать текст, изображения, аудио, видео, лица и так далее 

— Автоматизировать принятие решений (к примеру, выдавать человеку кредитную карту или нет)

— Сегментировать группы клиентов

Какие инструменты используют датасаентисты

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

Языки программирования: Python, R, SQL, Java или Scala

Библиотеки: Scikit-learn, TensorFlow, PyTorch, Pandas, Numpy и Matplotlib

Cреды разработки: Jupyter и JupyterLab

Фреймворки: Hadoop, Spark, Kafka, Hive, Pig, Drill, Presto и Mahout

Cистемы управления базами данных: MySQL, PostgreSQL, Redshift, Snowflake, MongoDB, Redis, Hadoop и HBase 

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

Исследователь 

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

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

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

Что нужно знать исследователю:

— Python, чтобы разрабатывать модели

— C++, чтобы внедрять код в продакшн

— Фреймворки для глубинного обучения (TensorFlow, PyTorch, Caffe или другие)

— Структуры данных и алгоритмы

Ещё важно активно следить за выходящими публикациями (например, c помощью Google Scholar или ArXiv), быстро читать много научной литературы в области своих исследований. Помимо этого важен навык написания статей и общения с рецензентами: даже качественное исследование само может оказаться непонятным для ваших коллег-учёных, поэтому его необходимо грамотно описать и представить.

ML-разработчик

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

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

Что нужно знать разработчику:

— Python и С++, чтобы разрабатывать модели и обучать алгоритмы

— Теорию вероятности, математическую статистику и дискретную математику

— Фреймворки Deep Learning (TensorFlow, PyTorch, Caffe или другие)

У ML-разработчиков могут быть разные профессиональные интересы: например, компьютерное зрение или обработка естественного языка. Исходя из них можно выбрать подходящее направление работы и сервис. Например, в геосервисах Яндекса разработчики занимаются улучшением качества поиска маршрута или предсказанием времени пути и активно работают с изображениями и видео. А датасаентисты в Переводчике занимаются текстовыми моделями и, предсказуемо, работают в основном с текстом.

Дата-инженер

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

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

Что нужно знать дата-инженеру:

— Как проектировать хранилища, настраивать сбор данных и  дата-пайплайнов

— Как построить ETL-процессы

— C++, Python или Java

— SQL для работы с базами данных

Кроме того, инженеры создают и поддерживают инфраструктуру по хранению данных. Они же отвечают за ETL-систему, то есть извлечение, преобразование и загрузку данных в одно хранилище. Можно сказать, что они отвечают за покупку и хранение ингредиентов для пирога: чтобы аналитик мог взять их в любое время, когда понадобится приготовить блюдо, и быть уверенным, что всё на месте и ничего не испортилось. 

Аналитик данных

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

Задача аналитика — обработать большой объем данных и найти в нем закономерности. Например, он может узнать, что чаще всего зубные щетки «Чистозуб» покупают женатые мужчины от 30 до 40 лет. Или кому не нужно выдавать кредиты. Аналитики помогают компаниям лучше понимать своих клиентов и, следовательно, зарабатывать

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

Что нужно знать аналитику:

— Python, чтобы обрабатывать данные

— Математическую статистику, чтобы выбирать нужные методы для обработки данных

— Диалекты SQL: например, ClickHouse или YQL

— DataLens, Tableau и другие инструменты для построения дашбордов

— Инструменты для работы с большими данными: например, Hadoop, Hive или Spark

Резюме

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