Привет, Хабр! Я Надежда Калмыкова, главный специалист по анализу данных и машинному обучению Департамента цифрового развития, работаю в отделе прототипирования ПГК, где мы проверяем жизнеспособность бизнес‑идей.
Что на ваш взгляд должен уметь специалист Data Science (DS) в первую очередь? Вы, вероятно, ответите как‑то так: обрабатывать огромное количество данных, искать взаимосвязи, строить модели, обучать их, выстраивать предиктивную аналитику. С этим более‑менее понятно.
А нужно ли специалисту DS уметь настраивать хранилище данных или вести переговоры с клиентами? Поделюсь своим мнением в статье и расскажу на примерах из опыта работы в ПГК, а ваши примеры жду в комментариях.
За последние десятилетия доступность информации значительно изменилась. Раньше для того, чтобы стать профессионалом, нужно было годами из разных источников по крупицам собирать знания, необходимые для освоения той или иной предметной области. Теперь, имея доступ к огромному количеству информации в интернете, можно развивать свои познания без привязки ко времени и месту. А еще тратить на поиски нужных источников куда меньше усилий. Доступность и разнообразие учебников и курсов по прокачке навыков, обучающих материалов по работе с огромным количеством инструментов, повлияли на то, как мы теперь определяем хорошего специалиста.
Специализация в каком‑то одном узком направлении сейчас далеко не всегда воспринимается, как уникальная ценность. Зато в любых отраслях требуются люди, способные обобщать, анализировать и принимать решения на основе тех огромных объемов информации, которые стали для нас доступны. Мы живем в эпоху, когда у нас не только больше данных, чем когда‑либо, но и более сложные задачи, требующие сочетания наборов навыков и разных дисциплин для предоставления комплексных решений. Эта тенденция быстро распространяется во всех отраслях, включая Data Science (DS). Давайте разберемся, какими навыками должен обладать Data Scientist широкого профиля или как стать T‑shaped специалистом.
Кто же такой T-shaped специалист?
Это человек, который является экспертом как минимум в одной области, но при этом разбирается во многих других и может свободно поддерживать общение со специалистами других направлений на базовом уровне.
Противоположностью такого эксперта являются I‑ shaped специалист (эксперт только в одной области) и дженералист (человек, который знает обо всем понемногу, но ни в одну область не углубляется).
В направлении Data Science, например, это выглядит следующим образом:
I‑ shaped специалист умеет только строить модели, обучать их и получать предсказания.
T‑ shaped специалист умеет все тоже, что и I, но плюсом к этому может самостоятельно найти нужные данные и настроить необходимые миграции.
Дженералист может базово проработать и вопрос данных, и саму модель, однако, его экспертизы окажется недостаточно в сложных случаях.
Сначала базовые навыки
Основу экспертизы как I‑ shaped, так и T‑ shaped специалистов составляют базовые профессиональные знания.
Поэтому определимся, что же необходимо знать и уметь специалисту Data Science в первую очередь:
Разбираться в различных алгоритмах машинного обучения, их ограничениях, преимуществах и границах применения;
Элементарный пример — если, проработав логику эксплуатации модели, вы понимаете, что в будущем может потребоваться экстраполяция целевой переменной, то использование «деревянных» моделей окажется не лучшим выбором, даже если при тестировании модели в моменте они показывают лучший результат.
Программировать: обычно для этого, как минимум, нужно знание Python и SQL;
SQL наверняка пригодится при создании датасетов для исследования и построения моделей, чтобы «подружить» данные из разных таблиц.
Python же, благодаря имплементации всех необходимых DS‑у инструментов, начиная от информативных графиков и заканчивая сложнейшими моделями с огромным количеством настраиваемых гиперпараметров, стал основой.
Знать теорию вероятностей и математической статистики — применение математики необходимо для принятия решений;
Например, оценка статистической значимости может добавить уверенности в достоверности сделанных выводов и закладывать разумные предпосылки при разработке модели.
Работать с большими массивами данных и уметь оптимально организовать эту работу.
В ПГК во многих продуктах используются дислокационные данные, которые характеризуют изменение местонахождения каждого вагона в конкретный момент времени. В нашем парке около 100 тысяч вагонов, только на территории России — более 20 тысяч станций. С таким порядком величин, дислокации даже за сутки представляют собой миллионы строк, не говоря уж о неделях и месяцах, и чтобы не лишать свои решения этих бесценных данных, нужно аккуратно с ними работать.
Как стать T-shaped в DS
Теперь поговорим о знаниях из смежных областей, которые отлично дополнят экспертизу Data Science специалиста, позволят учитывать больше различных факторов при разработке продуктов и сервисов, создавать более совершенные решения, и, как следствие, быть более ценным специалистом как внутри компании, так и на рынке труда в целом.
Исследовательский навык
Часто команды специалистов по данным формируются с учетом требований бизнеса и ориентированы на решение конкретных бизнес‑задач. Подбираются люди с разными скиллами для покрытия всех аспектов задачи. Однако, обычно на старте специалисты не видят всю картину целиком и не понимают, какой перечень навыков потребуются для решения этих задач. В итоге каким‑то навыкам приходится учиться прямо в процессе работы над проектом. В этой ситуации чрезвычайно важными становятся исследовательские навыки — узнать что‑то быстро и ровно в том объеме, который нужен для решения проблемы.
При решении DS задач исследовательский навык может помочь выявить аномалии в данных, которые с точки зрения математики таковыми не являются, или выявить логические ошибки в духе определения причинно‑следственной связи там, где ее на самом деле нет.
Кроме того, он будет полезен, чтобы глубже погрузиться в саму бизнес проблему. В нашем случае, чтобы прогнозировать сроки и объем ремонта вагонов, нужно понять, как этот ремонт устроен, какие есть этапы процесса и нюансы. Для этого наша команда периодически выезжает на площадки вагоноремонтных депо.
Data Engineering
Специалисту Data Science порой приходится решать задачи по организации сбора, хранению и доступу к данным, если в команде нет узкопрофильного коллеги — Data Engineer, а дедлайны уже маячат на горизонте.
Для получения работающего решения критически важно собирать данные из различных источников в общее хранилище, настраивать их движение между инструментами, искать способы улучшения и автоматизации существующих процессов, и, если DS‑специалист может самостоятельно разобраться с этими вопросами, он значительно ускорит появление его решения в проде.
А еще, выполняя эти функции, специалистам DS важно синхронизироваться с экспертами DE и архитекторами, чтобы не возникало технических конфликтов при разработке продукта, и возможность использования одного решения не рушила работоспособность других.
Например, в ПГК для платформы БеруВагон силами Data Scientist‑а проекта используется Airflow, чтобы обеспечить для модели на проде актуальные данные о созданных заявках на перевозки и доступных для потенциальных перевозок вагонах без привлечения дополнительного ресурса DE.
Навыки разработки
Конечно, специалист Data Science владеет языком программирования, например, Python или R. Но инструментарий, который используется DS‑ом и Python‑разработчиком значительно отличается.
Владение концепцией ООП, умение писать структурированный и понятный код и собрать простейший сервис станут большими помощниками. Они позволят не только стать более независимым специалистом, но и помогут значительно повысить качество кода в ваших решениях, что, опять же, даст возможность выкатывать эти решения более оперативно. Да и выполнение кода получится ускорить в десятки раз, например, используя векторизацию вычислений и избегая циклы там, где это оправданно.
Контейнеризация
Нередко случаются ситуации, когда в уже разработанную модель нужно внести изменения. Даже небольшие изменения могут привести к поломкам, несмотря на то, что локально никаких проблем не возникало. Чтобы этого не случилось, стоит применять контейнеризацию.
Этот метод виртуализации помогает использовать решения несмотря на различия вычислительной среды разработки и прода, и значительно ускоряет процесс внедрения доработок.
Во многих наших продуктах, в частности, «Цифровом вагоне» мы используем BentoML для того, чтобы безболезненно для прода улучшать используемые модели. Так мы сохраняем возможность выбора итерации решения и переключения между различными итерациями быстро и безболезненно.
Навык задавать вопросы
Data Scientist‑у необходимо много общаться с бизнесом: помимо сбора требований к решению, нужно проводить интервью для точного понимания бизнес‑процессов, уметь аргументировать выбор тех или иных инструментов, доносить результаты и риски до пользователей. Для этого нужно уметь задавать правильные вопросы и интерпретировать ответы, различать причины и следствия, не попадать в ловушку предвзятости и быть открытым к новым и неочевидным идеям.
Есть отличная книга, которая поможет овладеть этими навыками, называется «Спроси маму: Как общаться с клиентами и подтвердить правоту своей бизнес‑идеи, если все кругом врут?».
А еще здесь подспудно помогает выстраивание бренда Data Science внутри компании. Это особенно полезно, когда речь идет не про стартапы, а про гигантов индустрии, которые свою нишу заняли десятки лет назад. Чем больше DS рассказывают о своей деятельности и чем могут быть полезны, тем больше бизнес‑эксперты начинают им доверять и становятся готовы к открытому диалогу и взаимопомощи. Мой коллега Максим недавно выпустил статью, где подробно размышляет о том, как это доверие выстроить, рекомендую к прочтению.
Конечно, это не все навыки, которые могут пригодиться специалисту Data Science. Как вы считаете, какие еще скиллы будут полезны при аналитической работе и создании различных моделей? Поделитесь вашим мнением и опытом в комментариях.
А если хотите присоединиться к команде, откликайтесь на вакансии на карьерном сайте.