[Big Data, Машинное обучение] Как управлять проектами машинного обучения и data science (перевод)
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Управлять проектами машинного обучения (Machine learning) и data science сложно, поскольку проекты часто носят исследовательский характер, и трудно предсказать, сколько времени потребуется на их завершение. Часто всё начинается с одной идеи, а затем перетекает в новое направление, когда предложенный метод не срабатывает или если предположения относительно данных оказываются неверными.Построение модели также является длительным процессом (по сравнению с работой в сфере программного обеспечения и аналитики), и data scientist нередко попадает в кроличью нору и тратит месяцы на проект, не имея четких представлений о прогрессе. Еще одно отличие от стандартных практик разработки программного обеспечения заключается в том, что построение модели обычно выполняется всего одним человеком, и это не совсем вписывается в традиционные командные рабочие процессы, такие как Kanban и Scrum.Я потратил достаточно много времени, изучая существующие рабочие процессы (в основном в Jira) с точки зрения пригодности для управления проектами машинного обучения и data science, но безуспешно. Большая часть информации нацелена на разработку программного обеспечения и фокусируется на Agile методологиях. Обсуждая этот вопрос с коллегами и друзьями мне не удалось найти ничего, что было бы адаптировано для машинного обучения и data science. Я заметил, что часть коллег пытаются адаптировать свой рабочий процесс к стандартной инженерной практике, в других же случаях, они вообще не пытаются управлять проектами. Последнее особенно проблематично, по причине того, что проекты, которые требуют слишком много времени и замахиваются на слишком большую предметную область, вероятнее всего провалятся.Поскольку мне не удалось найти подходящее решение, я решил разработать собственную рабочую схему для управления проектами машинного обучения и data science. Данный процесс может быть реализован в Jira и позволяет мне легко отслеживать статус проектов, вести отчетность, а также не давать раздуваться предметной области, избегая построения чересчур сложных моделей. У наших исследователей появляется рабочая схема, которая помогает им в построении модели, что повышает их успехи в проекте. Я пользуюсь этой системой уже несколько лет, и мы с моей командой очень довольны ею.Этапы проекта машинного обучения четко определеныНезависимо от того, создаете ли вы сложный алгоритм компьютерного зрения с использованием методов глубокого обучения, модель обучения ранжированию с помощью LightGBM или даже простую линейную регрессию, процесс построения модели машинного обучения имеет четко определенные этапы. На схеме показаны шаги построения модели от первоначального исследования до анализа результатов A/B-тестирования. Обратите внимание, что у каждого этапа есть конечные результаты (deliverable или майлстоун). Это та стадия процесса, когда вы обсуждаете получившийся результат с командой или стейкхолдерами.
1) Исследование (Research)Исследование — это начальный этап проекта. Оно включает в себя переговоры со стейкхолдерами, чтобы понять цели и ожидания от проекта, переговоры с бизнес-аналитиками, которые помогают выяснить, какие данные нам доступны и где их можно получить. Улучшить интуитивное понимание задачи поможет формулирование некоторых первоначальных запросов и исследование данных.Предполагается, что на этом этапе исследователь в основном занимается изучением литературы и выбором методологии решения задачи. Сюда также входит коллективный поиск творческих решений с коллегами, если таковые имеются. Иногда для выбора методологии также требуется изучение существующих готовых решений и инструментов, и создания примитивных прототипов с помощью Jupyter notebook.Конечный результат: результатом этого этапа является подробный план реализации проекта с разбивкой на последующие этапы (например, исследование данных, моделирование, коммерческое внедрение и анализ результатов) и связанный с ними предполагаемый уровень требуемых усилий (измеряется количеством недель). Также необходимо определить методологию и данные, которые будут использоваться.План также демонстрируется стейкхолдерам для получения их фидбека.2) Исследование данных (Data Exploration)Это традиционный этап исследования данных с помощью Pandas и Jupiter notebook (или иногда Tableau) с целью получения каких-либо выводов о используемых данных. Типичный анализ включает подсчет количества строк в данных, создание гистограмм для различных агрегатов функций, графиков тенденций с динамикой и нескольких графиков распределения. Исследователи также будут формировать запросы, которые станут ядром их ETL модели.Конечный результат: подробный отчет об исследовании данных с помощью Jupiter notebook, содержащий графики и комментарии, дающий какое-либо представление о используемых данных. Отчет будет передан остальной части команды и стейкхолдерам проекта.3) Моделирование (Modeling)В этом собственно вся суть проекта. На этом этапе исследователи начинают построение своих моделей, используя наш внутренний фреймворк. Это включает в себя создание ETL-системы, конструирование признаков и подготовку модели. Этап также включает построение базовых моделей и всестороннюю оценку окончательного решения.Конечные результаты: Результатами этого этапа являются:
- Прототип модели
- Отчет в Jupyter notebook с обширной оценкой модели
Отчет по результатам будет представлен команде и стейкхолдерам проекта.4) Коммерческое внедрение (Productization)На данном этапе происходит реализация кода окончательной версии. Распространенные задачи на этом этапе включают в себя добавление комментариев ко всем функциям и обеспечение правильного форматирования кода в соответствии со стандартами Python и соглашением рабочей команды. Код снабжается такими отчетными метриками, как количество извлеченных строк, количество строк в выходных данных, погрешность прогнозирования по нескольким метрикам и важность признаков, когда это возможно. Наконец, код проверяется одним data scientist’ом и одним инженером.Иногда процесс коммерческого внедрения приводит к постоянному взаимодействию с разработчиками платформы. Это особенно актуально для моделей реального времени, где производительность во время выполнения критически важна. Также может оказаться, что требования к памяти для кода слишком велики, что приведет к проблемам во время конвейерной обработки. Инженеры могут отменить релиз и потребовать сокращения объема памяти для тренировки модели.Конечный результат: результатом этого этапа является код, закомиченный в ветку master, который готов к развертыванию командой разработчиков платформы.5) A/B-тестирование (A/B Testing)Большинство моделей проходят этап A/B-тестирования. С его помощью специалисты и стейкхолдеры определяют детали теста: период проведения тестирования, процент трафика, контроль тестирования, интерпретация результатов и т. д. В период тестирования члены команды будут задействованы в других проектах, но им все же нужно будет уделять внимание и тестированию.6) Анализ результатов (Results Analysis)В число задач каждого исследователя входит составление подробного анализа результатов своей собственной модели. На этом этапе они будут анализировать метрики результатов разными способами, чтобы понять, что происходит на самом деле. В частности, если тест не удался, нам нужно покопаться в результатах, чтобы выяснить, что пошло не так.Конечные результаты:
- Подробный отчет о результатах в Jupyter notebook.
2. Гипотеза относительно того, почему все пошло не так, как ожидалось (если это возможно)Окончательный отчет будет представлен команде и стейкхолдерам проекта.Работа с JiraХотя этот фреймворк может выглядеть великолепно в теории, в действительности вышеуказанные этапы редко бывают строго последовательными. Например, очень часто происходят качели от исследования данных к моделированию и обратно к исследованию данных. Кроме того, этот процесс не вписывается в существующий фреймворк Jira, так как же его реализовать на практике?На самом деле это довольно просто. Мы используем доску Kanban в Jira и горизонтальные колонки (swimlanes, по одной на члена команды) с несколькими кастомными полями и изменениями. Приведенные ниже рекомендации определяют суть этого процесса:
- Для каждого проекта создается новый эпик (Epic) тикет, а работа разделяется на задачи (Tasks).
- Каждая задача помечается этапом (Phase) - кастомным полем в Jira для выбора одного из 6 этапов, перечисленных выше. (Обратите внимание, что на одном этапе может быть несколько задач.)
- Задачи не могут длиться больше 1 недели (5 дней). Это заставляет членов команды разбивать свою работу на более мелкие (но все же довольно значительные) части, что позволяет отслеживать прогресс с минимальными накладными расходами.
- Одновременно в работе может быть только один тикет. Это гарантирует то, что мы всегда видим статус проекта.
- Этапы не всегда являются последовательными, и можно перемещаться между ними по мере формирования новых задач.
ЗаключениеУправление проектами машинного обучения и data science не должно быть сложным. Сначала я тратил порядка 30 минут в день на мониторинг этого процесса, но как только команда привыкла к нему, мое время сократилось до 15 минут в неделю! Я знаю, на каком этапе находится каждый проект в любой момент времени, сколько времени он занял, и я могу быстро выявить проблемы, чтобы при необходимости вмешаться и помочь своей команде. Мои data scientist’ы имеют четкую схему работы для построения модели, и они стали в этом намного эффективнее.Я надеюсь, что все это окажется таким же полезным для Вас, как и для меня.
Перевод статьи подготовлен в преддверии старта курса "Промышленный ML на больших данных".
Приглашаем всех желающих посетить бесплатный демо-урок в рамках которого поговорим о том, почему в ML проектах крайне важна воспроизводимость результата и о способах ее добиться.
===========
Источник:
habr.com
===========
===========
Автор оригинала: George Bezerra
===========Похожие новости:
- [Поисковые технологии, Big Data, DevOps, Искусственный интеллект] Ещё один поиск Вк по фото
- [Big Data, Открытые данные, Терминология IT] Новый сервис от Google ставит под вопрос защиту персональных данных
- [.NET, Машинное обучение] Посмотрим на девочек? Или ml.net в работе
- [Машинное обучение, Развитие стартапа, Искусственный интеллект, Здоровье, Телемедицина] Новосибирский стартап запустил камеры по мониторингу первичного состояния здоровья
- [Тестирование IT-систем, Big Data, Хранилища данных] Как QA в управлении хранилища данных эволюционировал. Часть 2
- [Data Mining, Big Data, Разработка под e-commerce, Data Engineering] Data-driven митап
- [Системы управления версиями, Управление разработкой, Управление проектами, Управление продуктом] Как мы построили систему управления проектами на базе Azure DevOps
- [Python, Программирование, Машинное обучение] Поиск нарушений на видео с помощью компьютерного зрения
- [Машинное обучение, DevOps, Kubernetes, Data Engineering] MLOps без боли в облаке: как развернуть Kubeflow в продакшен-кластере Kubernetes
- [JavaScript, Программирование, ReactJS] React-компоненты шаблонов проектирования (перевод)
Теги для поиска: #_big_data, #_mashinnoe_obuchenie (Машинное обучение), #_machinelearning, #_data_science, #_management, #_artificial_intelligence, #_blog_kompanii_otus (
Блог компании OTUS
), #_big_data, #_mashinnoe_obuchenie (
Машинное обучение
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 08:58
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Управлять проектами машинного обучения (Machine learning) и data science сложно, поскольку проекты часто носят исследовательский характер, и трудно предсказать, сколько времени потребуется на их завершение. Часто всё начинается с одной идеи, а затем перетекает в новое направление, когда предложенный метод не срабатывает или если предположения относительно данных оказываются неверными.Построение модели также является длительным процессом (по сравнению с работой в сфере программного обеспечения и аналитики), и data scientist нередко попадает в кроличью нору и тратит месяцы на проект, не имея четких представлений о прогрессе. Еще одно отличие от стандартных практик разработки программного обеспечения заключается в том, что построение модели обычно выполняется всего одним человеком, и это не совсем вписывается в традиционные командные рабочие процессы, такие как Kanban и Scrum.Я потратил достаточно много времени, изучая существующие рабочие процессы (в основном в Jira) с точки зрения пригодности для управления проектами машинного обучения и data science, но безуспешно. Большая часть информации нацелена на разработку программного обеспечения и фокусируется на Agile методологиях. Обсуждая этот вопрос с коллегами и друзьями мне не удалось найти ничего, что было бы адаптировано для машинного обучения и data science. Я заметил, что часть коллег пытаются адаптировать свой рабочий процесс к стандартной инженерной практике, в других же случаях, они вообще не пытаются управлять проектами. Последнее особенно проблематично, по причине того, что проекты, которые требуют слишком много времени и замахиваются на слишком большую предметную область, вероятнее всего провалятся.Поскольку мне не удалось найти подходящее решение, я решил разработать собственную рабочую схему для управления проектами машинного обучения и data science. Данный процесс может быть реализован в Jira и позволяет мне легко отслеживать статус проектов, вести отчетность, а также не давать раздуваться предметной области, избегая построения чересчур сложных моделей. У наших исследователей появляется рабочая схема, которая помогает им в построении модели, что повышает их успехи в проекте. Я пользуюсь этой системой уже несколько лет, и мы с моей командой очень довольны ею.Этапы проекта машинного обучения четко определеныНезависимо от того, создаете ли вы сложный алгоритм компьютерного зрения с использованием методов глубокого обучения, модель обучения ранжированию с помощью LightGBM или даже простую линейную регрессию, процесс построения модели машинного обучения имеет четко определенные этапы. На схеме показаны шаги построения модели от первоначального исследования до анализа результатов A/B-тестирования. Обратите внимание, что у каждого этапа есть конечные результаты (deliverable или майлстоун). Это та стадия процесса, когда вы обсуждаете получившийся результат с командой или стейкхолдерами. 1) Исследование (Research)Исследование — это начальный этап проекта. Оно включает в себя переговоры со стейкхолдерами, чтобы понять цели и ожидания от проекта, переговоры с бизнес-аналитиками, которые помогают выяснить, какие данные нам доступны и где их можно получить. Улучшить интуитивное понимание задачи поможет формулирование некоторых первоначальных запросов и исследование данных.Предполагается, что на этом этапе исследователь в основном занимается изучением литературы и выбором методологии решения задачи. Сюда также входит коллективный поиск творческих решений с коллегами, если таковые имеются. Иногда для выбора методологии также требуется изучение существующих готовых решений и инструментов, и создания примитивных прототипов с помощью Jupyter notebook.Конечный результат: результатом этого этапа является подробный план реализации проекта с разбивкой на последующие этапы (например, исследование данных, моделирование, коммерческое внедрение и анализ результатов) и связанный с ними предполагаемый уровень требуемых усилий (измеряется количеством недель). Также необходимо определить методологию и данные, которые будут использоваться.План также демонстрируется стейкхолдерам для получения их фидбека.2) Исследование данных (Data Exploration)Это традиционный этап исследования данных с помощью Pandas и Jupiter notebook (или иногда Tableau) с целью получения каких-либо выводов о используемых данных. Типичный анализ включает подсчет количества строк в данных, создание гистограмм для различных агрегатов функций, графиков тенденций с динамикой и нескольких графиков распределения. Исследователи также будут формировать запросы, которые станут ядром их ETL модели.Конечный результат: подробный отчет об исследовании данных с помощью Jupiter notebook, содержащий графики и комментарии, дающий какое-либо представление о используемых данных. Отчет будет передан остальной части команды и стейкхолдерам проекта.3) Моделирование (Modeling)В этом собственно вся суть проекта. На этом этапе исследователи начинают построение своих моделей, используя наш внутренний фреймворк. Это включает в себя создание ETL-системы, конструирование признаков и подготовку модели. Этап также включает построение базовых моделей и всестороннюю оценку окончательного решения.Конечные результаты: Результатами этого этапа являются:
Перевод статьи подготовлен в преддверии старта курса "Промышленный ML на больших данных".
Приглашаем всех желающих посетить бесплатный демо-урок в рамках которого поговорим о том, почему в ML проектах крайне важна воспроизводимость результата и о способах ее добиться. =========== Источник: habr.com =========== =========== Автор оригинала: George Bezerra ===========Похожие новости:
Блог компании OTUS ), #_big_data, #_mashinnoe_obuchenie ( Машинное обучение ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 08:58
Часовой пояс: UTC + 5