В России катастрофически не хватает инженеров данных – кому и зачем они нужны

Артем Пичугин
Артем Пичугин

Руководитель программ по большим данным, компания Newprolab

Расскажите друзьям
Полина Константинова

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

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

Артем Пичугин, руководитель программ по большим данным Newprolab, рассказал, чем занимается Data Engineer и в чем его отличие от Data Scientist.

Что такое Data Engineering?

Суть Data Engineering заключается в построении стабильных пайплайнов добычи и обработки данных, чтобы они были доступны всем сотрудникам компании.

Главная задача Data Engineer – сделать процесс анализа данных в компании максимально удобным для аналитиков, обеспечить их очищенными данными в должном количестве и в должный срок.

Среди обязанностей Data engineer можно выделить три больших блока:

  • Понимание сути и сбор данных.

Начиная работать над каким-либо проектом, Data engineer должен вникнуть в суть данных, с которыми ему предстоит работать, чтобы понять, что именно нужно аналитику для построения эффективной модели. Какие типы данных свойственны нашей компании?

13 сентября в Москве состоится конференция по большим данным Big Data Conference. В этом году мы включили в программу не только лучшие кейсы от компаний, но и Big Data Hackathon для специалистов по анализу данных. Не пропустите!

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

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

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

  • Построение архитектуры пайплайна обработки данных.

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

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

Data engineer должен владеть всем необходимым инструментарием хранения и обработки больших массивов данных. Так, например, классическим вариантом является использование экосистемы Hadoop для Big Data, а если требуется обработка в реальном времени, то вместе с Hadoop используют Apache Spark (Streaming).

Кстати, о типах обработки: в Big Data архитектуре от нее зависит очень многое.

  1. Так, если аналитика основана на обучении на всех имеющихся данных, не требующих непрерывного обновления, то следует использовать batch-обработку, при которой комплексность вычислений ставится выше скорости. Такой подход используется, к примеру, в банковской сфере при анализе вероятности невозврата кредита.
  2. С другой стороны, если требуется в реальном времени обрабатывать огромное количество каких-либо запросов с интервалом в несколько секунд, то нужно использовать real time обработку, где наоборот – скорость важнее сложности вычислений.

Real time обработка активно используется в сферах e-commerce, SMM, ритейл. Также в последнее время она получила широкое распространение в сфере производства, где каждый продукт от автомобиля до самолета оснащен тысячами датчиков, которые ежесекундно генерируют неимоверное количество данных в реальном времени.

  • Превращение моделей в готовый продукт или сервис.

Рассмотрим простой пример: перед Data scientist была поставлена задача построить модель – рекомендательную систему на сайте онлайн-кинотеатра, которая на основе просмотренных фильмов, поставленных оценок и комментариев «советует» пользователю посмотреть фильмы, на которые он согласится с большей вероятностью.

Проходит какое-то время, задача решена, Data scientist присылает менеджеру скрипт, написанный на Python, который на основе данных будет выдавать результат. Аналитик свою задачу выполнил, но что с этой моделью делать дальше? Как превратить ее в сервис?

Именно доведение моделей до стадии продакшн – одна из главных функций Data engineer.

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

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

Конечно, помимо чистых обязанностей, есть и смежные, то есть задачи, которыми может заниматься как Data engineer, так и Data scientist. К ним относится очистка данных. Понятно, что в реальном мире все не так, как в учебных табличках, которые получают студенты на занятиях для анализа.

Зачастую мы получаем данные из источников в «сыром» виде с большим количеством пропущенных значений, с кучей опечаток, числами в виде текста и так далее. Понятно, что в таком виде из них ни один data scientist не сделает качественную модель, поэтому в некоторых случаях инженер может помочь аналитику с этим.

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

Задача Data engineer – писать «чистый» код

Главное, в чем различаются Data engineer и Data scientist – ключевые навыки, требуемые для успешной работы.

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

Конечно, чтобы обучить какой-нибудь базовый алгоритм сегодня, требуется всего лишь применить к данным методы fit и predict из scikit-learn, но без глубокого знания математики разобраться, почему модель ведет себя именно так, а не иначе, сложно.

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

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

Напротив, у Data scientist знание алгоритмов ценится намного выше умения писать «правильный» код, хотя, конечно, знание инструментария (Pandas, Numpy, Scikit-learn) никто не отменял.

С точки зрения оплаты труда Data engineer и Data scientist могут рассчитывать на сопоставимую заработную плату – 90 и 91 тысяч долларов в год соответственно в США.

В России разрыва между оплатой труда Data engineer и Data scientist также нет: по данным HeadHunter, аналитик, и инженер данных могут рассчитывать на 73-300 тысяч рублей в месяц.

Таким образом, выходит, что Data engineering идеально подойдет специалистам с бэкграундом в Computer Science и Computer Engineering, но это не значит, что математикам и экономистам в этой области делать нечего. Все зависит от желания и усилий человека. Как видите, компании способны по достоинству оценить выдающегося специалиста.

Ни одна компания не может обойтись одними лишь Data scientists

Инженеры данных максимизируют эффективность работы Data scientist. Еще пару лет назад читая об этой профессии можно было нередко встретить такую фразу: «Будьте готовы к тому, что 80% времени у Вас будет занимать сбор, обработка и очистка данных».

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

Более того, чем меньше времени Data scientist уделяет поиску взаимосвязей в данных, тем меньше вероятность, что получится качественная модель.

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

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

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

Без Data engineer модели Data scientist не имеют ценности для бизнеса. Как мы уже отмечали, чаще всего результатом работы Data scientist является скрипт с моделью, но сама по себе она никакой ценности для бизнеса не имеет.

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

В итоге, Data engineer является залогом удовлетворенности как топ-менеджеров компании, так и непосредственно клиентов. Без него ни одна компания не сможет обеспечить себе качественный переход к data-driven бизнес-модели, поскольку он отвечает как за инфраструктуру, так и внедрение моделей в продакшн.

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

В России не хватает хороших инженеров данных

Data engineering в России появился пару лет назад в компаниях, являющихся традиционными лидерами отечественного Data Science – банки, телеком, ритейл, e-commerce. То есть те, кто генерирует больше всего данных на единицу времени в стране.

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

Специфика Data engineering у нас заключается в остром кадровом голоде, в чем все чаще признаются HR-ы крупнейших компаний страны. В России хороших Data engineers катастрофически не хватает.

На это есть свои причины:

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

Что с этим делать?

В течение последнего года нам периодически приходили просьбы от выпускников наших курсов по поводу создания программы, специально готовящих Data engineer, чтобы они смогли научиться работать с самыми актуальными инструментами обработки данных, среди которых, например, Kafka.

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

Материалы по теме:

12 кейсов и 12 технологических решений для анализа больших данных

Зачем изучать большие данные: рассказывает эксперт в ИТ и криптографии Анатолий Темкин

Data Science в реальной жизни: никакой абстракции, только практика

Что такое Big data: собрали всё самое важное о больших данных

Как FinTech использует большие данные — хрестоматийные примеры


Актуальные материалы — в Telegram-канале @Rusbase

Нашли опечатку? Выделите текст и нажмите Ctrl + Enter


Комментарии

  • Wolfas Kill
    Wolfas Kill 20:54, 21.07.2018
    0
    В России хватает Инженеров Данных))) Просто работать ими не выгодно. Вот объясните мне пожалуйста. Зачем мне работать по данному направлению, когда: 1. Я имею практически опыт работы с большинством баз данных. При этом имею практический опыт дружить их между собой.Знаю их сильные и слабые стороны. И как те или иные субд себя ведут.Для примера(Вертика обладает специфичными форматами данных,но в остальном очень проста). Терадата очень быстрое средство для обработки данных и очень хорошо подходит для аналитических хранилищ, но это ее единственный плюс, ито если писать код оптимально. В качестве минусов.... Система очереди такая же как у SAS(Запустил кто нибудь неоптимальный скрипт на миллиардную таблицу, все улыбаемся и машем), скудный набор функций(хотим больше... пишем сами.. великий и магучий СИ нас спасет), а для полного удовольствия жадная конкатенация.. Точнее сплит) Клеим поля.. и получаем пустоту если хотя бы одно поле пустое. Oracle.. МОщная игрушка, но нужны хорошие знания. DB2 имеет проблему с жадным коалеском(к примеру передаем из SAS строку порезаную на части, DB2 уберет без спроса боковые пробелы, что приведет к расхождению по MD5, а к примеру в скоринге вообще может положить дата центр) . Немного некромантии Domino - Разработка на Java++ ныне известный как Scala. Весьма простая, но привередливая) 2. Знаю много способов представления данных(кодировки, форматы и информаторы) 3. Владею хорошим набором языков программирования 4. Знаю много фронт продуков которые служат источником данных(в основном банковское ПО). Данные из них могу определять. Просто по их внешнему виду, названию полей. Или ошибкам))) 5. Зп ))) да Зп... ЗП дата инженера в РОссии меньше зарплаты таго же статистика.. Ой пардон Дата сайнса.. Это же модное слово. Плевать что в России они не занимаются обучением данных... Но зп их в 2 раза выше зп Дата инженера. Языков они особо не знают... Да и код почти не пишут. Так зачем нам работать по заведомо оплачиваемому направлению?
  • Wolfas Kill
    Wolfas Kill 21:09, 21.07.2018
    0
    Относительно подготовки..... Будем честны) Это всего лишь один из способов освоения бюджета. ОТ куда вообще появилось направление Дата Инженера. Вспомним 2000. ОРАКЛ. СИБОСС. Проекты Сибосса были очень востребованы на рынке, но сейчас ситуация изменилась...Компания уже не на слуху. Почему?... Потому что они не смогли трансформироваться. На рынке России появился SAS, начались активные разработки хранилищ на Hadoop. И именно в это время появился термин Инженер данных(Исследовать данных)... Почему? По тому что данные никуда не делись. ОНи как были в Оракле. Так остаются. Вот только хранят их в Одном месте.Немного пафосных манагерских слов - Data Lake(в большинстве случаев правда дата болото. Да да то самое с тиной и лягушками). Как вы собираетесь учить людей обрабатывать данные... После вузов.. Когда у них опыта ноль. 1. Как они будут дедублицировать данные из разных источников? Если они в глаза не видели не одной системы. Для них что ИБСО что ИАСК одним и тем же.. 2. Как они будут погружать инкремент данных из хадупа. Когда они да же с МДМ не работали????
  • Wolfas Kill
    Wolfas Kill 21:11, 21.07.2018
    0
    Возвращаясь к Вашей цитате. В России разрыва между оплатой труда Data engineer и Data scientist также нет: по данным HeadHunter, аналитик, и инженер данных могут рассчитывать на 73-300 тысяч рублей в месяц. Ну Сантисты то может и могут рассчитывать на 300.. Но вот инженера. Как я и писал выше. В два раза меньше. Нас просто считают обслугай. И относятся так же.
  • Wolfas Kill
    Wolfas Kill 21:15, 21.07.2018
    0
    к примеру, у Сбербанка сейчас подключено более 100 хранилищ, где хранится все о клиентах и транзакциях Вы это по наслышке знаете?))) Сколько систем. Точнее сказать. Различных типов источников данных? ведь помидоры то же можно считать поштучно) Но продаются они на вес..... НЕ думаю что и тут. Больше 8 различных источников наберется.
Зарегистрируйтесь, чтобы оставлять комментарии и получить доступ к Pipeline — социальной сети, соединяющей стартапы и инвесторов.
Big Data Conference
13 сентября 2018
Ещё события


Telegram канал @rusbase