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

Специалисты по данным

Специалисты по обработке данных - это «x-фактор» в проекте машинного обучения, представляющий главное отличие проекта машинного обучения от других видов разработки программного обеспечения. Они создают (или выбирают) и обучают алгоритмы, строя модели для машинного обучения. Специалисты по обработке данных могут специализироваться на определенных проблемах или наборах данных. Некоторые из них больше ориентированы на исследования и академические взгляды, в то время как другие больше ориентированы на результаты и задачи. Хотя оба типа могут вносить свой вклад, лучше, чтобы руководители групп были ориентированы на результат, а не были склонны задерживаться на вопросах.

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

Инженеры-программисты

Инженеры - это люди, которые обычно превращают «Практическое обучение» в «Практическое машинное обучение». Они гарантируют, что технология построена надежно, чтобы ее можно было упаковать и развернуть в производственной среде в критически важных системах. Инженеры помогают с разработкой программного обеспечения, передовыми практиками и обработкой / предварительной обработкой данных. Они могут настроить инфраструктуру, наладить конвейер данных и гарантировать, что у специалистов по данным есть все необходимое, чтобы сосредоточиться на моделях.

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

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

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

Обратите внимание, что, хотя предпочтительнее привлекать инженеров с самого начала проекта, все инженерные потребности могут быть трудными для понимания на ранних этапах планирования. Инженеры наиболее необходимы на более позднем этапе развертывания (см. Ниже), когда проект может значительно развиться.

Инженер данных

Эта роль ориентирована на обработку / предварительную обработку данных для подготовки их к машинному обучению.

Текстовые данные, например, могут поступать в виде файла PDF, файла .docx, файла .txt или строки из базы данных. Инженеру данных может потребоваться преобразовать текст в формат, соответствующий данному языку программирования. После загрузки текста может потребоваться дополнительная предварительная обработка из-за языка, длины, частоты встречаемости слов и вариации слов.

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

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

Роли проекта на этапах проекта

Этап обработки данных

Специалисты по обработке данных обрабатывают данные, а специалисты по данным предлагают рекомендации (и при необходимости занимаются проектированием данных).

Этап разработки алгоритма

Специалисты по обработке данных создают алгоритмы, а инженеры-программисты предлагают помощь и рекомендации.

Рисунок 5.2.

Этап развертывания решения

Инженеры-программисты реализуют решение, а специалисты по данным настраивают алгоритмы по мере необходимости.

Руководящие роли

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

Владелец бизнеса отвечает за то, чтобы сфокусировать команду на основной бизнес-проблеме, которую необходимо решить, и за обеспечение поддержки бизнеса за счет бюджета. Владельцам бизнеса также может потребоваться сообщить об уникальных характеристиках проектов машинного обучения вышестоящим руководителям, включая потенциальные приливы и отливы сроков проекта. Самая большая проблема владельца бизнеса часто заключается в том, чтобы понять, что на самом деле возможно с машинным обучением. Обещания без твердого понимания могут навредить проекту.

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

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

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

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