Рубрика:
Карьера/Образование /
Рынок труда
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
Вакансия:
Инженер машинного обучения
По данным Indeed, с 2015 по 2018 год сфера машинного обучения выросла на 344 %. А согласно отчету LinkedIn за 2020 год, потребность в ML- инженерах увеличилась за 12 месяцев на 74 %. И востребованность этих специалистов на российском ИТ-рынке продолжает расти. Представители компаний и организаций рассказывают, каких инженеров машинного обучения они охотно берут на работу.
1. Какими знаниями и навыками должен обладать инженер машинного обучения (Machine Learning Engineer )? 2. Каков его инструментарий? 3. Каковы требования компании к уровню образования соискателей на место инженера машинного обучения? 4. Какие требования предъявляются к опыту работы? 5. Есть ли особые требования к ML- инженерам, которые обусловлены спецификой работы вашей компании?
Михаил Левитин, R&D директор Qrator Labs
«Для нас желательно, чтобы ML-специалист понимал специфику работы компьютерных сетей, протокола HTTP и принципов работы современных Web-приложений»
1. Для того чтобы применять алгоритмы ML, обычно требуется выполнить некоторую общую последовательность шагов по обработке входных данных. У каждого шага есть нюансы, сильно влияющие на его эффективность. Необходимо понимать, зачем нужны эти шаги, что именно мы хотим получить, и, собственно, уметь реализовывать все необходимые действия. Каждый из шагов подразумевает, что вы владеете необходимым набором навыков и соответствующим инструментарием.
В первую очередь, нужно собрать входные данные, при необходимости очистить их от шума или явного “мусора”. В том случае, когда входные данные никак не размечены – их приходится дополнительно размечать.
Далее из входных данных необходимо выделить признаки, подлежащие анализу, а для этого требуется понимание предметной области, к которой относятся входные данные. Затем нужно применить алгоритмы анализа и получить обученную модель, и тут важно знать и уметь применять алгоритмы машинного обучения с учителем и без учителя, понимать, в каких случаях и какие алгоритмы стоит применять. По итогам следует оценить качество получившейся обученной модели, для этого важно понимать, как правильно работать с обучающей и тестовой выборками и на какие показатели эффективности модели надо смотреть.
2. Основной инструментарий достаточно стандартен – python, jupyter-ноутбуки и библиотеки numpy/scipy/sklearn. Этого инструментария хватает для большинства исследовательских задач до момента получения хорошей обученной модели. Когда модель готова и необходима ее интеграция с production-кодом, каждый раз возникает своя специфика. Ряд решаемых задач накладывает дополнительные ограничения на скорость работы обученной модели. В этом случае требуется поиск/переписывание требуемых алгоритмов на C/C++ для интеграции с продакшн-кодом и обеспечения требуемой производительности.
3. Безусловно – высшее образование. Еще лучше высшее математическое, которое каким-то образом гарантирует наличие знаний математического аппарата, применяемого в ML (в основном это линейная алгебра). Крайне желательны знания в части построения и использования структур данных, базовых алгоритмов.
4. Необходимо, чтобы специалист мог самостоятельно выполнить все шаги, описанные выше. Обычно нужно около двух-трех лет плотной работы с задачами, связанными с ML.
5. Для нас желательно, чтобы ML-специалист понимал специфику работы компьютерных сетей, протокола HTTP и принципов работы современных Web-приложений. Это, с одной стороны, позволяет более эффективно находить признаки для анализа и выполнять разметку данных, с другой – самостоятельно оценивать качество получившейся модели и ее применимость в продакшне.
Ольга Соловей, эксперт в области бизнес-анализа и тренер Luxoft Training
«Общим для всех можно выделить требование наличия опыта программирования в Python (знание библиотеки scikit-learn), R, C++ и опыта работы с большими наборами данных»
1. Анализировать большие объемы данных с целью проектирования конвейеров для первичной обработки данных. Разрабатывать модели машинного обучения. Уметь разобраться и улучшить существующие модели машинного обучения.
2. Я использую фреймворк Jupyter и язык программирования Python. Кроме известных библиотек: анализа данных – pandas, визуализации – seaborn, matplotlib; моделирования – scikit-learn и математического моделирования – scipy and numpy, Python включает библиотеки с оптимизированными алгоритмами.
Например, есть выбор провести классификацию, используя метод опорных вектор (SVM), Наи́вный ба́йесовский классифика́тор (NB), случайный лес (Random forest) или оптимизированные алгоритмы из библиотек Catboost, LGBMClassifier.
Актуальные сегодня задачи анализа текстовых наборов, выполняются с помощью библиотеки NLTK, при этом, есть возможность подключить библиотеку gensim и использовать вероятностный подход для анализа текстов, который позволит существенно улучшить результат моделирования.
Для тех, кто начинает свой путь в машинном обучении, огромной помощью может быть библиотека datasets, которая включает учебные наборы данных для моделирования классификации, регрессии, кластеризации и т.д.
Учебные наборы, позволяют научиться строить модели неплохого качества, таким образом стимулируя интерес к углубленному изучению инженерии машинного обучения. Для нейронных сетей, строящих предсказания для изображений, в первую очередь стоит обратить внимание на фреймворки TensorFlow, Pytorch, Keras.
3. Диплом в области компьютерных наук, математики, статистики или смежных дисциплин. Навыки моделирования данных и архитектуры данных. Опыт программирования на Python, R или Java. Опыт работы с фреймворками машинного обучения, такими как TensorFlow, Pytorch, Keras. Продвинутые математические навыки (линейная алгебра, статистика).
4. Требования зависят от работодателя. Общим для всех можно выделить требование наличия опыта программирования в Python (знание библиотеки scikit-learn), R, C++ и опыта работы с большими наборами данных. Luxoft Training — первый учебный центр в России, авторизованный IIBA. Компания проводит оценку и обучение ИТ-специалистов по ключевым направлениям разработки программного обеспечения — по языкам программирования, системному и бизнес-анализу, архитектуре ПО, ручному и автоматизированному тестированию ПО, Big Data и машинному обучению, управлению проектами и Agile.
Илья Душин, исполнительный директор ComBox Technology
«Желателен опыт работы с видеопотоками, понимание основ систем видеонаблюдения и установки камер, опыт детекции и распознавания различных объектов»
1. Знания и навыки, необходимые инженеру машинного обучения (Machine Learning Engineer ):
- Понимание архитектуры нейронных сетей для решения различных задач (CV, NLP и др.).
- Уверенные знания Python, PyTorch/Tensorflow.
- Опыт обучения нейронных сетей Tensorflow, желательно Huawei MindSpore.
- Желателен опыт деплоя и оптимизации инференса (Huawei ACL, Intel OpenVINO toolkit).
- Понимание отличий ARM/x86 и оптимизации инференса под них.
- Понимание и опыт работы с виртуализацией и контейнерами (Docker).
- Понимание способов инференса на различном оборудовании и преимуществах устройств различных видов (FPGA, GPU, CPU/iGPU, Movidius, Ascend и др.).
- Понимание архитектуры построения пайплайна для облачного и "краевого" инференса нейронных сетей
2. Инструментарий – Python, PyTorch/Tensorflow, Huawei MindSpore, Huawei ACL, Intel OpenVINO, Intel CVAT
3. Должно быть высшее техническое образование, опыт работы в ИТ не менее трех лет.
4. Опыт работы – 1-3 года в ML, от 3-х лет в ИТ
5. Да, наше направление – объектная видеоаналитика и компьютерное зрение (CV). Желателен опыт работы с видеопотоками, понимание основ систем видеонаблюдения и установки камер, опыт детекции и распознавания различных объектов.
Роман Васильев, руководитель SAS Data Laboratory в SAS Россия/СНГ
«Особое внимание при выборе ML-инженеров мы уделяем soft skills. Для нас важно, чтобы соискатель не только качественно решал аналитические задачи, но и мог эффективно коммуницировать по ходу всего ml-проекта»
1. В первую очередь нужна хорошая математическая база – теория вероятностей, линейная алгебра и др. Во-вторых, нужны навыки программирования. И последнее, но не менее важное – это представление о предметной области. Можно уметь строить самые сложные модели машинного обучения, но без понимания того, как работает шаровая мельница, сложно будет предсказать выход из строя этого оборудования.
2. Классический инструментарий – Python и SQL. Плюсом для нашей компании будет опыт работы с инструментами SAS.
3. Сложно представить вышеперечисленные навыки и инструментарий у соискателя без высшего образования. Однако это не является обязательным требованием.
4. Зависит от позиции. Например, для старшего консультанта-аналитика необходим опыт работы от 3 лет.
5. Особое внимание при выборе ML-инженеров мы уделяем soft skills. Для нас важно, чтобы соискатель не только качественно решал аналитические задачи, но и мог эффективно коммуницировать по ходу всего ml-проекта – от обсуждения требований с заказчиком, взаимодействия с командой и до презентации результатов своей работы. При этом важно уметь менять подход в общении, так как встречаются люди с совершенно разным бэкграундом – от менеджеров до технологов.
Екатерина Пачковская, консультант практики IT&Telecoms в Санкт-Петербурге международной рекрутинговой компании Hays
«Для успешного прохождения интервью в компании рекомендуется практиковать свои навыки, решать алгоритмические задачи, чтобы быть готовым продемонстрировать все свои знания»
1. Прежде всего, речь идет о хорошей математической подготовке (теория вероятности, статистика, линейная алгебра) и знании теории и алгоритмов Machine Learning (нейросети, классификация, регрессия, кластеризация, древесные/линейные алгоритмы). Также важно знать один или несколько языков программирования (в зависимости от конкретной компании, команды и задач). Наиболее популярный сейчас язык в ML — Python. Помимо него, иногда требуется знание C++ (когда есть задача имплементации моделей в prod, например, и не только). Реже, но могут встречаться среди требуемых для ML языков такие, как Java, Scala, C#. Если речь идет о работе в какой-то специфической области (медицина, промышленность, ритейл ), то важно понимать ее особенности.
2. Если мы говорим об инструментарии ML Engineer, то сейчас это различные библиотеки, такие как TensorFlow, Pytorch, Keras, Scikit-learn, Numpy, Pandas.
3. В большинстве случаев работодатели прежде всего отдают предпочтение кандидатам с математическим образованием: прикладная математика, математико-механический и физический факультеты, а также компьютерная лингвистика (для направления NLP в рамках Machine Learning) и информатика. Желательно иметь как минимум степень бакалавра.
В определенных случаях бывают жесткие требования к наличию степени магистра или даже кандидата наук. Иногда компании готовы рассматривать кандидатов с непрофильным образованием, но с подтвержденным успешным опытом работы и, например, с законченными профильными курсами (желательно продолжительными и с сильной практической частью). При этом такой кандидат должен продемонстрировать свои знания на техническом собеседовании.
4. В зависимости от грейда, на который рассматривают специалиста, требования могут отличаться (как и сами грейды — от компании к компании). Если мы говорим про Machine Learning Engineer уверенного middle-уровня, то обычно это опыт как минимум от 2 лет (кому-то еще особенно важно, чтобы это был опыт в одной компании), опыт работы с необходимыми технологиями (языки программирования, библиотеки), знание английского языка на техническом уровне и выше. На собеседовании будет уделяться внимание математической базе, навыкам, алгоритмам и пр. Поэтому для успешного прохождения интервью в компании рекомендуется практиковать свои навыки, решать алгоритмические задачи, чтобы быть готовым продемонстрировать все свои знания.
Данил Жеребцов, Head of Machine Learning & Analytics, Bell Integrator
«Немаловажным является опыт работы в команде. Самые блестящие успехи в Data Science не будут ничего значить, если человек не сможет найти общий язык с коллегами»
1. Есть мнение, что ML Engineer – это специалист, который должен концептуально понимать Data Science, его основным приоритетом является не работа с данными, а внедрение и масштабирование предиктивной модели (результат работы Data Scientist). Это разделение ответственности возникло по причине ежегодного пополнения пула соискателей новыми молодыми специалистами, которые еще не вникли во все особенности полноценного создания и внедрения моделей машинного обучения в продуктивную среду. Таким образом, Data Scientist специализируется только на работе с данными, а Machine Learning Engineer занимается деплоем обученной модели в производственную среду.
Я же считаю, что инженер по машинному обучению – это full stack Data Scientist, который виртуозно работает с данными, создает предиктивную модель, настраивает весь пайплайн трансформации новых данных (данных, используемых для предсказания) и применения модели в среде заказчика. Такие компетенции приходят только с прикладным опытом решения задач с применением машинного обучения на реальных данных.
2. Python и R являются основными фреймворками для работы с данными. Я начинал с R, но отдаю свое предпочтение Python, по причине кроссплатформенности и более удобного процесса встраивания готового решения в любое окружение.
Если говорить о библиотеках, то джентльменский набор: numpy, pandas, scipy, scikit-learn, matplotlib, seaborn, xgboost, lightgbm, keras, TF. Кроме навыков использования открытых библиотек, успешный соискатель должен уметь самостоятельно разрабатывать подходы и методы на основе требований решаемой задачи и с учетом глубокого анализа особенностей данных. Также полезно уметь использовать фремворки по созданию микросервисов и веб-приложений: Flask, Jango. Отличительной особенностью являются навыки работы с по-настоящему большими данными и умение пользоваться инструментами контейнеризации приложений: Docker/Kubernetes.
3. Конечно, изучение фундаментальных наук является большим плюсом. Computer Science также отличный плацдарм для погружения в машинное обучение. Однако наличие профильного опыта является первостепенным условием для рассмотрения кандидата на любую позицию выше Junior.
4. Подтвержденный опыт самостоятельного end-to-end выполнения ряда задач по машинному обучению – хороший фундамент для успешного прохождения собеседования. Ряд успешных соискателей не имеют фактического опыта работы, но они отлично показали себя в соревнованиях на Kaggle. Такие успехи также могут являться достаточной валидацией компетенций. Немаловажным является опыт работы в команде. Самые блестящие успехи в Data Science не будут ничего значить, если человек не сможет найти общий язык с коллегами.
5. Многие отличные специалисты по машинному обучению являются интровертами. По моему мнению, эта отличительная особенность помогает хорошо сосредоточиться на данных и вникнуть во все детали решаемой задачи. Что называется “follow the error…”. Однако хорошо развитые коммуникативные навыки в дополнение к хорошему техническому бэкграунду – являются бесспорным плюсом.
Как правило, заказчиком аналитических моделей является бизнес, на финальном этапе реализации проекта нужно презентовать результаты своей работы и объяснить руководителям, менеджерам, финансистам, маркетологам, что такое ROC- кривая и что нам даст разработанная модель. Возможность простым и понятным языком донести сложные технические концепции – это уже компетенции технического пресейла, которые очень ценятся в любой компании.
Подпишитесь на журнал Купите в Интернет-магазине
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|