Кто такой инженер по машинному обучению и как им стать?

«Появление мощного ИИ будет либо лучшим, либо худшим событием, которое когда-либо случалось с человечеством. Мы еще не знаем, какой». - Стивен Хокинг

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

«Вы похожи на специалиста по данным, который умеет кодировать?»

«Чем вы отличаетесь от инженера-программиста?»

«Как выглядит ваш рабочий день?»

«Каким навыкам мне нужно научиться, чтобы стать им?»

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

Кто такой инженер по машинному обучению?

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

От идеи к производству

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

  • Идея: определите проблему, которую вы хотите решить, и то, как это повышает ценность.
    – специалисты по данным работают с компаниями, чтобы определить, что возможно и как это можно использовать для решения проблемы.
  • Сбор данных. Команда собирает и идентифицирует соответствующие источники данных, не забывая о конфиденциальности данных.
    – Специалисты по данным определяют, какие данные необходимо и его атрибуты.
    - Специалисты по обработке данных определяют соответствующие источники данных и переносят их на промежуточный уровень.
  • Предварительная обработка данных, например объединение нескольких источников данных в семантические таблицы для упрощения использования.
     – Инженер данных играет ключевую роль свою роль здесь, убедившись, что данные готовы к использованию, а конвейеры соответствуют требованиям.
     – Исследователи данных следят за тем, чтобы применяемые преобразования не создавали необъективных источников данных и соответствовали требования.
  • Разработка функций: команда использует необработанные данные для создания функций, которые являются информативными и полезными для модели.
     – специалисты по данным функции, которые могут передавать полезную информацию в модель, они также гарантируют, что эти функции непредвзяты.
     – Инженеры машинного обучения здесь, чтобы убедиться, что преобразования функций воспроизводимый, модульный и масштабируемый по своей природе.
  • Выбор и настройка модели. На этом этапе команда начинает строить модель и настраивать ее для получения ценных результатов.
     – специалисты по данным поэкспериментируйте с множеством моделей, чтобы найти ту, которая соответствует их потребностям, и используйте гиперпараметры для настройки результатов.
    Инженеры по машинному обучению создают эти модели иногда с нуля или путем реализации существующих алгоритмов.
  • Интеграция моделей: команда создает API-интерфейсы, которые могут беспрепятственно доставлять результаты моделей в инфраструктуру организации.
     – инженеры по машинному обучению играют главную роль. свою роль, оптимизируя и создавая конвейеры обучения и логических выводов, которые могут использоваться этими API.
     – Инженеры-программисты реализуют эти API, чтобы убедиться, что они соответствуют отраслевым стандартам. .
  • Развертывание модели. На этом этапе команда развертывает свой продукт на нескольких этапах, таких как DEV, UAT и PROD.
     — Инженеры по машинному обучению внедрить надежную структуру MLOps, которая позволит команде отслеживать обучение и результаты с течением времени.
    – На этом этапе полезны инженеры DevOps, поскольку они могут помочь реализовать строковую систему CI/CD для автоматизации этих процессов.
  • Мониторинг модели. Созданная структура MLOps позволяет команде отслеживать результаты и вносить необходимые изменения.
    инженеры по машинному обучению push новые функции, которые сделают систему более стабильной и сохранят стабильные результаты с течением времени.
     – Инженеры DevOps могут помочь повысить уровень автоматизации на этом этапе.

Набор инженерных навыков машинного обучения

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

  1. Языки программирования. Вам необходимо хорошо разбираться в языках программирования, таких как Python, R и SQL, для создания моделей машинного обучения и конвейеров данных.
  2. Библиотеки машинного обучения. Вам необходимо знать библиотеки машинного обучения, такие как scikit-learn, TensorFlow и PyTorch, для создания, обучения, оценки и развертывания моделей машинного обучения.
  3. Библиотеки обработки данных. Хотя исследовательский анализ не будет большой частью вашей деятельности, вы также должны быть знакомы с библиотеками обработки данных, такими как NumPy, Pandas и Matplotlib, для предварительной обработки, анализа и визуализации данных. позволяют вам играть более важную роль в небольших фирмах.
  4. Технологии больших данных. Вам необходимо иметь опыт работы с такими технологиями больших данных, как Hadoop и PySpark, чтобы обрабатывать большие объемы данных, необходимые для обучения этих моделей.
  5. Разработка платформ и систем: вам должно быть удобно работать с платформами облачных вычислений, такими как AWS, Google Cloud и Azure, для развертывания моделей в облаке.
  6. Технологии контейнеризации. Такие как Docker и Kubernetes для упаковки и развертывания приложений машинного обучения дадут вам преимущество, поскольку сегодня многие компании сталкиваются с проблемами при развертывании моделей в существующей инфраструктуре.
  7. Инструменты DevOps. Вы должны быть знакомы с инструментами DevOps, такими как Git, CircleCI и Azure DevOps, для автоматизации конвейеров сборки, тестирования и развертывания.
  8. Веб-фреймворки: это необязательно, но по моему опыту, знание того, как создавать API для предоставления результатов вашей модели, дает вам преимущество перед другими, изучение FastAPI, Flask или Django будет иметь большое значение для вашей карьеры. .

Имейте в виду, что это навыки, которые люди развивают годами, и никто не ожидает, что вы будете знать все в начале своей карьеры.

Случайные инженеры

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

  • Инженер по статистике
  • Инженеры знаний
  • Программисты ИИ
  • Количественные инженеры

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

Заключение

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

Если вам понравилась статья.

Оставьте комментарий, чтобы сообщить мне, что вы думаете.

Свяжитесь со мной через Linkedin, Medium или мой Веб-сайт

Поделитесь статьей со своей сетью.