Рубрика:
Карьера/Образование /
Рынок труда
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
Вакансия: AI-разработчик
Специалисты по искусственному интеллекту сегодня работают в очень многих отраслях – банки и страховые компании, медицинские учреждения, онлайн-продажи, службы такси, робототехника – проще назвать сферы, где пока они не востребованы. Во многих компаниях опытные AI-разработчики зарабатывают на порядок выше своих коллег. Представители университетов и организаций рассказывают, каким должен быть, по их мнению, AI-разработчик.
1. Какими знаниями и навыками должен обладать AI-разработчик ? 2. Каков инструментарий AI-разработчика? 3. Каковы требования компании к уровню образования специалистов по ИИ? 4. Какие требования предъявляются к их опыту работы? 5. Есть ли особые требования, которые обусловлены спецификой деятельности вашей компании?
Владимир Соловьев, руководитель департамента анализа данных и машинного обучения Финансового университета при Правительстве РФ
«Сейчас работы в области искусственного интеллекта хватает всем, но главный дефицит составляют специалисты начального уровня, то есть без опыта работы»
1. Современный AI-разработчик должен твердо владеть классическими методами машинного обучения, но сегодня уже быстрых побед с помощью классических методов классификации и регрессии добиться сложно. В задачах анализа традиционных структурированных и полуструктурированных данных хорошо показывают себя модели градиентного бустинга, а в задачах анализа текстов, изображений, видео не обойтись без глубокого обучения, прежде всего, сверточных нейронных сетей, также рекуррентных и генеративно-состязательных. Для анализа текстов также нужно обязательно владеть векторными представлениями, эмбеддингами и автоэнкодерами. Причем и сверточные сети, и технологии эмбеддингов и автоэнкодеров развиваются очень быстро, постоянно появляются новые реализации, на порядок улучшающие качество моделей. Поэтому не получится просто овладеть каким-то стандартным набором инструментов: продвинутый разработчик должен постоянно осваивать новые технологии.
2. Прежде всего, это язык Python и базовые библиотеки Pandas, NumPy, Scikit-learn. Совершенно необходимо владеть инструментарием деревьев с градиентным бустингом XGBoost, LightGBM, CatBoost, фреймворком глубокого обучения TensorFlow (также плюсом будут PyTorch и Keras). Для визуализации лучшим инструментом является PyPlot. Для задач компьютерного зрения потребуется OpenCV. Владение реляционными базами данных на уровне написания продвинутых SQL-запросов совершенно необходимо, а во многих задачах также требуется использование документоориентированных баз данных типа MongoDB и графовых баз данных, например, ArangoDB.
3. Как правило, особых требований к образованию нет. И крупные работодатели типа Сбера, Яндекса и VK, и компании поменьше, с удовольствием берут наших третьекурсников на позиции начального уровня, а к моменту получения бакалаврского диплома многие из них уже становятся старшими AI-разработчиками.
В магистратуру студенты идут, прежде всего, не потому, что этого требует работодатель, а потому, что сами понимают, что бакалавриат дает общее представление о машинном обучении, а магистратура прокачивает узкую специализацию, например, анализ текстов или машинное зрение. И если хочется продвигаться, то без магистратуры не обойтись. Но, конечно, помимо магистратуры, нужно непрерывно заниматься и самообразованием, следить за новинками.
4. Сейчас работы в области искусственного интеллекта хватает всем, но на самом деле, самый главный дефицит составляют специалисты начального уровня, то есть без опыта работы. Прежде всего, это происходит потому, что таких специалистов, начиная с разметчиков, в каждом проекте нужно достаточно много, гораздо больше, чем старших разработчиков и тимлидов.
5. Финансовый университет учрежден Правительством России, чтобы учить студентов. Но поскольку студенты нашего факультета учатся технологиям, которые стремительно развиваются сами и стремительно трансформируют все области человеческой деятельности, мы не можем просто пересказывать материал из учебников. Мы занимаемся разработкой интеллектуальных решений для реальных заказчиков. У нас есть стандартные компетенции, где мы идем наравне с другими игроками рынка искусственного интеллекта, а есть области, где мы опережаем и Яндекс, и Майкрософт, и Сбер. Конечно, эти области достаточно узкие и их пока немного: интеллектуальная видеоаналитика, анализ текстов и обработка языка, а также анализ сложных сетей. Но каких-то особенных требований, чтобы этим заниматься, нет. Это сложные области, и чтобы разобраться, требуется терпение и труд. Но если есть желание, то научиться может каждый!
Никита Бабкин, AI-разработчик направления Machine learning and Data Analysis IT-компании Lad
«Чтобы попасть на позицию Junior Al-разработчику обычно нужно около года проработать по смежной специальности. Однако если кандидат в целом по навыкам компанию устраивает, ему могут предложить стажировку»
1. Важно иметь аналитический склад ума, хорошо разбираться в некоторых областях математики, например, в статистике и теории вероятностей. Совершенно необходимо знание языков программирования. Для задач анализа данных и AI-разработки есть достаточно популярное решение – Python, а также Spark и Java. В некоторых областях AI, где необходимо быстродействие, широко используется С++, например, в компьютерном зрении. Кроме того, знание баз данных и sql для взаимодействия с ними всегда будет полезным навыком для специалиста такого профиля.
2. Инструментарий AI-разработчика достаточно широк, он зависит от многих факторов, например, от языка разработки. Для Python распространены среды разработки Jupyter Lab, Jupyter Notebook, Data Spell, PyCharm. В качестве самых популярных библиотек для машинного обучения на Python можно назвать PyTorch и Tensorflow. Их функционал широк – от обработки текста и речи до картинок и видео.
Для управления и поддержания уже готовых решений в продакшене используются различные системы оркестрации, например Apache Airflow. Часто применяются инструменты взаимодействия с базами данных, спектр которых – разнообразен и часто во многом зависит от личных предпочтений разработчика.
3. Даже для начального уровня компетенций в ИИ требования будут высокими. Те, кто хочет попасть в это направление, могут иметь за плечами профильный бакалавриат или магистратуру, даже продвинутые курсы, но решающая роль – за реальными навыками и опытом разработчика.
4. Чтобы попасть на позицию Junior Al-разработчику обычно нужно около года проработать по смежной специальности. Однако если кандидат в целом по навыкам компанию устраивает, ему могут предложить стажировку.
5. Так как в нашей ИT-компании Lad достаточно много проектов, связанных с обработкой естественного языка с использованием Python, опыт в NLP и знание “Питона” – определенно плюс!
Игорь Лопушко, Back-end Team Lead, RBI Retail Innovation
«Так как RBI Retail Innovation работает в сфере финтеха, есть необходимость обрабатывать большие объемы неструктурированных и слабоструктурированных данных»
1. Основной язык программирования для AI-разработчиков является Python и/или Scala. Также могут использоваться Java, R, F# или C/C++.
Популярные фреймворки языка Python для Machine Learning и AI – Theano, TensorFlow, Scikit-learn, NumPy, Matpotlib, Pandas.
Знания реляционных (SQL) и не реляционных баз данных (NoSQL), таких, как Postgres, MySQL, MongoDB.
Алгоритмы построения рекомендательных систем.
Методы машинного обучения, технологии компьютерного зрения или обработки естественного языка (NLP).
Также очень важно знание английского языка для чтения документации.
2. В первую очередь Keras – это ведущая библиотека Python с открытым исходным кодом, написанная для построения нейронных сетей и проектов машинного обучения. Он может работать на Deeplearning4j, MXNet, Microsoft Cognitive Toolkit (CNTK), Theano или TensorFlow.
Также очень обширный инструментарий PyTorch – готовая к работе библиотека Python для машинного обучения с отличными примерами, экосистемой и вариантами использования, поддерживаемая сильным сообществом. Данный инструментарий включает в себя компилятор машинного обучения под названием Glow, который повышает производительность сред глубокого обучения.
Программы для визуализации данных, например, QlikView, Tableau, Power BI или Excel.
3. Уровень требований такой же, как и к другим ИТ-специальностям, т.е. высшее техническое образование. Но как всегда важен опыт и знаний, которые можно проявить на собеседовании. Поэтому не обязательно иметь научную степень в области ИИ, достаточно иметь необходимые знания и опыт, удовлетворяющие вакансию в той или иной компании.
4. Наиболее востребованы специалисты с опытом 1-3 года. Но все зависит от компании и вакансии. Очень часто, особенно большие компании, берут на стажировку молодых специалистов без опыта работы и воспитывают их для своих проектов.
5. Так как RBI Retail Innovation работает в сфере финтеха, есть необходимость обрабатывать большие объемы неструктурированных и слабоструктурированных данных. Для данных задач подходят такие инструменты как Apache Spark, входящий в экосистему проектов Hadoop. Так же есть необходимость переводить данные из одного формата/хранилища в другие, поэтому необходимо знание ETL и Data Pipelines.
Екатерина Максименко, HR-директор ИнфоТеКС
«Помимо навыков программирования у AI-разработчика должна быть сильная математическая база в таких областях как: теория вероятностей, математическая статистика и линейная алгебра»
1. В области практического применения «искусственного интеллекта» (Artificial Intelligence) и «машинного обучения» (Machine Learning) существует широкое разнообразие профессий, среди которых заметную роль занимают AI- или ML-разработчики. Эти специалисты занимаются разработкой алгоритмов обучения и применения математических моделей, предназначенных для решения определенных задач.
Нужно отметить, что к числу этих специалистов можно отнести также аналитиков данных (Data Scientist), работающих с большими данными. Они используют методы машинного обучения для изучения данных и поиска в них скрытых закономерностей.
В настоящее время у крупных компаний усиливается спрос на таких специалистов, как MLOps и инженеры данных. Специалисты MLOps реализуют комплексное автоматизированное управление жизненным циклом систем машинного обучения. Они осуществляют надежное и эффективное развертывание и поддержку моделей машинного обучения в производственной среде. Инженер данных обеспечивает бесперебойную работу с данными на всех этапах решения задачи. Он занимается выгрузкой данных из разнообразных источников, их сбором и хранением, а также автоматизацией обработки и подготовки данных для их дальнейшего использования.
В разработке ML-решений есть большое количество задач и подзадач, поэтому для оптимального использования ресурсов команды разработки, роли в ней могут распределяться описанным выше образом. Хотя допускается ситуация, когда все перечисленное ложится на плечи ML-разработчика.
Как и любой специалист по разработке, AI-разработчик должен обладать навыками программирования. Наиболее распространенным в данной сфере языком является Python, но также было бы неплохо иметь навыки программирования на C++ или на других компилируемых языках. Иногда встречаются запросы на языки R, Scala.
Помимо навыков программирования у AI-разработчика должна быть сильная математическая база в таких областях как: теория вероятностей, математическая статистика и линейная алгебра.
Когда мы подбираем специалиста в ИнфоТеКС, обращаем также внимание, есть ли у AI-разработчика общий интерес к информационной безопасности и имеется ли знание различных сетевых технологий.
2. В сфере машинного обучения существует достаточно широкое разнообразие применяемых специализированных инструментов, среди которых присутствуют как целостные платформы или фреймворки, так и отдельные библиотеки. Среди ключевых и наиболее известных можно выделить следующие платформы: TensorFlow, PyTorch, Keras, Caffe, Scikit-learn. Однако это далеко не полный набор применяемых инструментов.
Поскольку отдельной и немаловажной частью задач является работа с данными, то в составе AI-решений активно используются инструменты накопления и хранения данных. Кроме того, на выбор применяемых библиотек влияет аппаратная платформа и операционная система, язык разработки и, конечно, отдельное разнообразие задает сама природа анализируемых данных: графические изображения, аудиоданные, видеоматериалы, языковые конструкции, временные ряды и другие специфичные формы данных.
В ИнфоТеКС требования к AI-разработчику лежат за пределами перечисленного инструментария, например, может потребоваться и знание C++, чтобы переписать весь код на этом языке для последующей интеграции с конкретным продуктом. Нюансов много, и они зависят от конкретной задачи, которую нужно решать.
3. Наличие высшего технического образования для таких специалистов является распространенным требованием. Некоторые компании одобряют наличие у специалиста высшего экономического или естественнонаучного образования вместо технического, так как исследование AI включает в себя, в том числе, гуманитарные или междисциплинарные науки. Поэтому, в зависимости от сферы деятельности, специалист может иметь квалификацию в философии, компьютерной лингвистике.
Стоит отметить, что в сфере ИТ наличие профильного высшего образования не всегда является решающим фактором. Гораздо более значимыми являются опыт специалиста, его знания и практические навыки. В случае, когда специалист демонстрирует хороший уровень подготовки, уже не имеет особого значения то, где именно он его приобрел.
4. Сфера начала развиваться не так давно, поэтому большинство компаний, которые начинают AI-проект, ищут специалистов с опытом работы от двух лет. Если в компании еще не настроены процессы работы с данными, новичку будет в этом очень сложно разобраться. Те компании, которые уже используют машинное обучение и искусственный интеллект в своей деятельности и в своих продуктах и имеют в штате опытных AI-специалистов, с удовольствием нанимают выпускников ВУЗов, а также проводят стажировки по данному направлению для тех, кто еще учится. Например, ИнфоТеКС активно использует свою собственную стажировочную площадку для работы с молодыми специалистами.
Важно отметить, что AI и машинное обучение находятся в ряду тех сфер деятельности человека, которые сейчас находятся в стадии активного развития. Из этого следует, что специалисты работают в условиях частой смены актуальных методов и подходов. Информация быстро устаревает, а для высокой эффективности решений недостаточно применения только личного опыта. Нужно привлекать опыт и актуальные знания коллег со всего мира. Успешным станет только тот специалист и компания, которые вкладывается в самообразование специалистов, изучение новых научных идей сторонних исследователей, проводит непрерывную экспериментальную работу. Это является неотъемлемой частью деятельности специалиста в области машинного обучения.
5. Компания «ИнфоТеКС» выпускает продукты в сфере информационной безопасности. Они должны соответствовать требованиям, предъявляемым законодательством, проходить сертификацию и быть надежными. Отдельные команды занимаются исследованиями в области AI с целью внедрения решений на базе алгоритмов машинного обучения в продукты компании. К моделям, которые внедряет команда, предъявляются высокие требования, соответствующие качеству итогового продукта, многие решения переписываются на C++, так как данный язык можно без больших трудностей сертифицировать. Эксперты поддерживают модели в актуальном состоянии, периодически обучая их на новых данных.
ML-отдел ИнфоТеКС занимается полным циклом исследований в области машинного обучения, сюда относятся: сбор и разметка данных, построение и тестирование прототипов, внедрение в продукты компании. Нам интересны все сферы применения машинного обучения в информационной безопасности, например, обнаружение вредоносного программного обеспечения, анализ сетевого трафика, поведенческая аналитика.
Мы сосредоточены на тех задачах, которые не представляется возможным решить классическим сигнатурным методом, где непосредственно в алгоритме заложено статичное правило принятия некоторого целевого решения.
Николай Князев, архитектор Data Science Softline
«Основное требование к разработчику – умение сформулировать бизнес -задачу в терминах машинного обучения, понять возможности и границы аппарата машинного обучения для данной области и реализовать модель»
AI-разработчик, или data scientist, или инженер машинного обучения – это одна, до конца не оформленная профессия. Ожидается, что этот специалист может строить модели машинного обучения на основе данных, находить «инсайды» и внедрять модели в производственный процесс. Для этого ему необходимо знать одновременно математику, статистику, программирование и архитектуру ПО. Как правило, data scientist используют популярный язык Python, для которого написано много библиотек. При этом вычислительные ядра библиотек написаны на компилируемых языках, обычно C++.
Основное требование к разработчику – умение сформулировать бизнес -задачу в терминах машинного обучения, понять возможности и границы аппарата машинного обучения для данной области и реализовать модель. Обучать модели по поставленным задачам – только начальная ступень. В реальности больше времени уходит на понимание задачи, зависимостей и поиска нужных данных.
Мы обращаем внимание на опыт внедрения моделей в тех областях, с которым работает Softline, например, металлургия или ритейл. Отдельно всегда смотрим на глубокое понимание метрик и их применимости, ведь не зная как измерить модель, невозможно сказать о ее готовности.
Ключевые слова: AI-разработчик, data scientist, инженер машинного обучения, компания, вакансия, требования, язык Python
Подпишитесь на журнал Купите в Интернет-магазине
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|