Контекст: мы говорим о компании-разработчике программного обеспечения, которая пытается создать функцию/продукт с использованием машинного обучения. Любой создаваемый программный продукт имеет множество заинтересованных сторон, таких как клиент, менеджер по продукту, разработчик интерфейса, разработчик бэкэнда, дизайнер, инженер по машинному обучению (MLE), специалист по данным (DS) и т. д. В этой теме мы сосредоточимся на роли инженера по машинному обучению. .

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

Для создания типичной системы ИИ потребуются знания о следующих вещах.

  1. Написание кода хорошего качества (типичный навык разработчика программного обеспечения)
  2. Возможность построения масштабируемого конвейера данных. Это может быть возможность писать задания ETL, SQL-запросы, работать с такими инструментами, как Airflow, Spark и т. д.
  3. Понимание данных, с которыми ведется работа. Данные остаются самой важной частью систем ИИ. Данные — это также то, вокруг чего объединяются специалисты по данным (DS) и MLE. Это очень важно, особенно на начальном этапе проекта, когда оба партнера понимают, как данные поступают в эксперименты/модели. Например, DS может выполнять процентный анализ отсутствующих полей в данных, но весьма вероятно, что данные эксперимента содержат много ошибок, поскольку они прошли через множество систем. MLE играет очень важную роль в понимании этой проблемы и ее решении.
  4. Понимание алгоритмов ML. Во время развертывания модели и прогнозирования важно понять, может ли модель удовлетворить требования системы. Например, если системе необходимо сделать прогноз в течение 10 мс, может ли текущая модель/алгоритм достичь этого.
  5. MLOps также используется MLE во многих организациях. Для операций машинного обучения требуются дополнительные знания, такие как развертывание моделей машинного обучения, отслеживание метрик модели и т. д.