Эта статья впервые была опубликована в Freshworks. Подпишись на меня в Твиттере".

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

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

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

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

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

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

Задача состоит в том, чтобы довести эти проекты до совершенства, сохраняя при этом тонкий баланс.

Использование трения

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

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

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

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

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

Наслоение рабочих процессов проекта

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

В Freshworks эта структура особенно актуальна для проектов ML / AI, таких как проекты с участием Freddy, нашей платформы искусственного интеллекта. Проекты, которые обеспечивают прогнозирование, автоматизируют повторяющиеся задачи и открывают новые возможности, чтобы клиенты могли использовать возможности ИИ.

Я разделил рабочий процесс на пять широких категорий.

1. Определение проблемы

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

2. Анализ и качество данных

Это наиболее важное и, тем не менее, наиболее игнорируемое занятие командами машинного обучения. Чем больше вы будете копаться в источниках данных, тем проще и лучше будут ваши конечные продукты. Специалисты по данным и инженеры машинного обучения должны сыграть здесь в команде тегов.

Этот этап задаст ритм всему остальному проекту.

3. Моделирование

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

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

4. Производство

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

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

Это типичная точка трений между этими двумя заинтересованными сторонами.

5. Проверка качества

В целом, на этом этапе есть два аспекта проверки качества:

1. Обеспечение одинаковой точности моделей между производственным кодом и экспериментами, которые проводились ранее; и

2. Обеспечение бесперебойной работы клиентского интерфейса с внутренней структурой машинного обучения машинного обучения.

И вы сделали!

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

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

#freshworks #saas #machine_learning #project #management #data_science

[Соавтор: Ферозе Джамал]