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

Процессы и инструменты, необходимые для масштабирования операций машинного обучения

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

Документирование моделей и выходных данных моделей

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

Документирование выходных данных модели необходимо для обеспечения того, чтобы группы-потребители знали, как интегрировать и интерпретировать схему и данные. Часто выходные данные модели и схемы меняются со временем, поскольку владелец науки о данных вносит улучшения и учитывает отзывы клиентов. Если у вас небольшое количество моделей, может подойти их документирование в электронной таблице или документе. Однако когда вы начинаете управлять примерно 10 или более моделями с постепенными улучшениями, вам понадобится автоматизированное решение. Документация по выходным данным модели должна включать следующую информацию: первичный ключ (уникальное значение), имя столбца / поля, тип данных поля и описание поля.

Возможность отслеживать статус выполнения модели и проблемы

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

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

Отслеживание зависимостей от источников входных данных до заинтересованных сторон

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

В идеале было бы полезно иметь наглядное пособие или таблицу, подобную приведенной ниже:

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

Отслеживание заинтересованных сторон с помощью контрактов на передачу данных

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

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

Форма ввода контракта данных должна содержать следующую информацию:

  • Название организации или команды
  • Контактная информация заинтересованных сторон
  • Дополнительные контакты (например, инженер, специалист по бизнесу или менеджер программы)
  • Идентификатор приложения, предназначенного для доступа
  • Заинтересованная сторона или конечная точка, использующая данные модели машинного обучения.

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

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

Система отзывов

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

Процесс или инструмент ML Operations для управления развертыванием

В зависимости от уровня подготовки задействованных групп специалистов по обработке и анализу данных и инженеров полезно определить типы развертывания модели. Как PM, вы должны быть в курсе всех изменений в существующих моделях, а также обо всех развертываемых новых моделях. Изменения в моделях могут быть (1) исправлениями для устранения критических сбоев, блокирующих заинтересованное лицо; (2) улучшения модели, которые могут быть запланированными или незапланированными; и (3) новые улучшения модели.

При любом развертывании вы всегда должны задавать себе следующие вопросы:

  • Какое влияние это окажет на заинтересованную сторону? Есть критическое изменение?
  • Кто будет потреблять продукцию модели?
  • Имеется ли существующий контракт на данные, заинтересована ли и готова ли заинтересованная сторона?

Что должен знать руководитель программы в этой области о машинном обучении?

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

Сначала рассмотрите вопрос: Что такое ML? По словам Артура Самуэля, пионера компьютерных игр и искусственного интеллекта, машинное обучение - это область обучения, которая дает компьютерам возможность учиться без явного программирования. Интересно думать о машинном обучении, когда у вас есть данные и есть ответы, но вы должны определять правила. Это контрастирует с классическим программированием, в котором у вас есть данные и правила, но вы должны определять ответы.

Когда использовать ML, а когда не использовать

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

Отличные кандидаты на использование модели машинного обучения включают следующие сценарии:

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

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

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

Обучение с учителем и обучение без учителя

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

Типы машинного обучения

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

Рейтинг

  • Описание: помогает найти наиболее релевантное. Модели ранжирования часто являются идеальными решениями, потому что ранжирование со временем меняется, часто является сложным и имеет много входных данных.
  • Примеры: поиск Google и поиск продуктов Amazon (последний из которых со временем меняется и настраивается для отдельных лиц).

Рекомендация

  • Описание: Предоставляет пользователям результаты по тому, что их больше всего интересует, на основе прошлого опыта. Смысл результатов здесь следующий: «Мы думаем, что это то, что вы хотите, и рекомендация может быть не на 100 процентов точной, но мы надеемся, что она приемлема».
  • Примеры: Microsoft Outlook предоставляет рекомендации по конференц-залам в зависимости от вашего местоположения и доступности конференц-зала; Netflix рекомендует фильмы на основе недавно просмотренных вами фильмов.

Классификация

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

Регрессия

  • Описание: прогнозирует числовое значение или результат. Это тип обучения с учителем.
  • Пример: прогнозирование того, что покупатель, вероятно, будет использовать в следующие 12 месяцев.

Кластеризация

  • Описание: объединяет похожие вещи, не зная, что это такое. Это тип обучения без учителя.
  • Примеры: модель ML, которая классифицирует изображения животных как принадлежащих к разным видам животных.

Аномалия

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

Курсы, которые нужно пройти

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

Вывод

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

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

Питер Сэддоу зарегистрирован в LinkedIn.

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

  • «Масштабное управление моделью машинного обучения | пользователя Petersaddow | Data Science в Microsoft | Середина"
  • «Присоединение к команде специалистов по анализу данных | Лиза Коэн | Data Science в Microsoft | Середина":
  • Как стать хорошим менеджером по машинному обучению от менеджера по продуктам Google - YouTube
  • «Учебные ресурсы по науке о данных. Книги, курсы и статьи будут расти… | Лиза Коэн | Data Science в Microsoft | Июнь 2021 г. | Середина"
  • «Пояс для аналитиков данных. Что нужно для успеха на поле | Лиза Коэн | Data Science в Microsoft | Середина"

Я хотел бы поблагодарить Рона Сиелински и Кейси Дойл за рецензирование этой работы.

Ознакомьтесь с первой частью этой серии статей, состоящей из двух частей: