Планирование проекта машинного обучения требует тщательного рассмотрения, в отличие от стандартных продуктов и услуг. Из-за характера ML-проектов они никогда не завершаются и полностью не передаются заказчику. По сути, это текущие проекты, которые адаптируются к изменяющимся потребностям пользователей.
Чтобы упростить объяснение наиболее важных моментов, каждый проект машинного обучения разделен на три основные части: прототипирование, развертывание и мониторинг. В каждой части описываются элементы, которые следует учитывать при планировании.
Прототип
Цель прототипирования — решить, является ли приложение работоспособным и стоит ли развертывать его. На этом этапе допустимо рассмотреть ручную предварительную обработку данных. Делайте подробные заметки/комментарии. Процесс прототипирования должен включать следующие этапы:
1. Получить набор данных:
- Определить список наборов данных, которые необходимы для проекта
- Определить стратегию маркировки данных, собственные/аутсорсинговые/краудсорсинговые
- Опишите другие наборы данных, которые, по вашему мнению, важны для этого проекта, особенно метаданные (данные о данных).
2. Определите базовый план. Базовый план – это простая модель, которая обеспечивает разумные результаты выполнения задачи и не требует большого опыта и времени для построения. Базовый уровень дает оценку неустранимой ошибки и указывает, что может быть возможно, а также помогает определить количество времени и усилий, необходимых для разработки окончательной модели. Также будет полезно уточнить необходимые данные и недостающие данные и даже потребности в оборудовании.
Способ установить базовый уровень:
- Производительность на уровне человека (HLP)
- Литературный поиск современного/открытого исходного кода
- Быстрая и грязная реализация
- Производительность старой системы
Общие базовые модели включают:
- Линейная регрессия при прогнозировании непрерывных значений
- Логистическая регрессия при классификации структурированных данных
- Предварительно обученные сверточные нейронные сети для задач, связанных со зрением
- Рекуррентные нейронные сети и деревья с градиентным усилением для моделирования последовательностей
3. Уточнить структуру аудита: проверить точность, объективность и предвзятость.
- Подумайте, как система может пойти не так.
- Производительность по подмножествам данных (например, этническая принадлежность, пол).
- Преобладание конкретных ошибок/выходных данных (например, FP, FN).
- Выступление на редких классах.
- Установите метрики для оценки производительности в отношении этих проблем на соответствующих срезах данных.
- Заручитесь поддержкой владельца бизнеса/продукта.
Развертывание
Развертывание — это итеративный процесс. Примите во внимание следующие моменты, чтобы завершить процесс развертывания:
1. Уточнить требования к разработке программного обеспечения и вопросы, связанные с разработкой службы прогнозирования.
- В реальном времени или в пакетном режиме
- Может против Edge/Браузера
- Вычислительные ресурсы (ЦП/ГП/память)
- Задержка, пропускная способность (QPS)
- Ведение журнала
- Безопасность и конфиденциальность
2. Уточните конвейер данных, чтобы убедиться, что данные воспроизводимы
- Такие инструменты, как преобразование TensorFlow, луч Apache, Airflow и т. д.
- Отслеживайте происхождение данных (откуда они поступают) и родословную (последовательность шагов)
3. Уточните тип развертывания:
- Новый продукт/мощность
- Автоматизация/помощь при ручном выполнении задач (теневое развертывание)
- Замените предыдущую систему ML
4. Уточните шаблон развертывания:
- Развертывание Canary
Мониторинг системы и постепенное увеличение трафика. - Сине-зеленое развертывание
Старую версию можно назвать синей средой, а новую — зеленой средой. При тестировании и развертывании в зеленой среде вы обеспечиваете бесперебойную работу синей среды для производственных пользователей до успешного развертывания и тестирования в зеленой среде.
Мониторинг
1. Исследуйте отклонение концепции и данных в соответствии с исследованием этапа производства.
2. Предоставить панель мониторинга
- Показатели программного обеспечения
– Память
– Вычислительные ресурсы
– Задержка
– Пропускная способность
– Загрузка сервера - Входные показатели
– Средняя яркость изображения
– Количество пропущенных значений
– Средняя входная громкость - Показатели вывода
– количество возвратов null
– количество повторных поисков пользователем
– количество переключений пользователя на ввод текста
Определение того, что есть y при изменении x
Критерии успеха
Последний пункт касается критериев успеха каждого проекта. И технические, и бизнес-команды должны согласовать критерии успеха, которые им удобны. Чтобы достичь этого, команда машинного обучения может немного расшириться до бизнес-показателей, а бизнес-группы могут немного расшириться до показателей машинного обучения. Как правило, чем ближе вы подходите к бизнес-показателям, тем сложнее команде машинного обучения дать гарантию.
Ключевые метрики:
- Показатели машинного обучения (точность, точность/отзыв и т. д.)
- Показатели программного обеспечения (задержка, пропускная способность и т. д. с учетом вычислительных ресурсов)
- Бизнес-показатели (доход и т. д.)
Ссылка:
Курс специализации MLOps, недавно разработанный DeepLearning.AI и Coursera.
Написано командой PhazeRo.
Хотите больше таких материалов, связанных с наукой о данных, дизайном и программным обеспечением? Следите за нами в Twitter, LinkedIn и подписывайтесь на нас в YouTube!