07.12.2022

Жизненный цикл проекта машинного обучения

1 min read

Планирование жизненного цикла проекта машинного обучения (ML) — это эффективный способ организовать решения и действия, обеспечивающие успешный результат. Эта структура позволяет вам сосредоточиться на том, что важно для запуска системы и минимизации неожиданностей.
В этой истории мы видим шаги, которые необходимо учитывать при создании системы машинного обучения, и пример, который поможет все встать на свои места. Итак, без лишних слов, давайте рассмотрим жизненный цикл проекта машинного обучения.
Learning Rate — это информационный бюллетень для тех, кто интересуется миром ИИ и MLOps. В первую субботу каждого месяца вы будете получать от меня новости и мысли о последних новостях и статьях об искусственном интеллекте. Подпишитесь здесь!
Обзор
Что именно вы хотите, чтобы ваша система машинного обучения выполняла? Это регрессия или проблема классификации? Каковы ваши особенности и каковы ваши цели? Таким образом, на этом этапе вы определяете свои цели и стремления.
Получение данных
После того, как вы определили, к чему вы хотите применить ML, вам необходимо создать соответствующий набор данных, который поможет вам достичь ваших целей.
Этот шаг состоит из двух частей: во-первых, вам нужно определить свои данные и установить базовый уровень, а во-вторых, вам нужно пометить и организовать данные.
Моделирование
Теперь, когда вы создали свой набор данных, наступает часть моделирования. На этапе моделирования вы должны выбрать и обучить модель машинного обучения. Затем вам необходимо выполнить анализ ошибок, чтобы проанализировать и оценить производительность вашей обученной модели.
Построение моделей машинного обучения — это итеративный процесс; при выполнении анализа ошибок может потребоваться вернуться к предыдущему этапу и изменить критерии, которые привели вас к выбору определенного типа модели. Если производительности модели по-прежнему недостаточно, вы можете даже вернуться к этапу сбора данных и собрать больше данных.
Развертывание
Наконец, у нас есть этап развертывания. Если вы думаете, что это последний шаг, подумайте еще раз. Этап развертывания состоит из двух этапов: во-первых, развертывание модели в рабочей среде, а во-вторых, мониторинг и обслуживание системы.
Мониторинг определяет ваши дальнейшие действия. Теперь, когда вы развернули свою модель в реальном мире, ваши наблюдения могут привести вас обратно к этапу определения масштаба, чтобы начать с нуля. Еще одна вещь, которую следует учитывать, — это захват трафика в реальном времени, достигающего конечной точки вашей модели, и обогащение ваших наборов данных. Создание такого процесса поможет вам создавать будущие версии вашей модели.
Пример породы собак
В этом тематическом исследовании мы рассмотрим этапы жизненного цикла машинного обучения, чтобы увидеть, что требуется для создания системы компьютерного зрения (CV).
Представьте, что приют для собак попросил вас создать систему, которая распознает породу собаки, чтобы они могли автоматически каталогизировать каждое новое поступление.

Фото Алвана Ни на Unsplash
Итак, первый шаг – определение масштаба. На этом этапе вы решаете, что это действительно проблема CV, и пытаетесь оценить ключевые показатели для вашей системы. Например, вас должна заботить точность вашей модели, но на данный момент вам не нужно беспокоиться о задержке. Наконец, вы хотите оценить ресурсы, необходимые для завершения такого проекта, и установить сроки.
Следующим шагом является фаза данных. На этом шаге вам нужно убедиться, что вы последовательно маркируете свои данные. Например, если у вас есть «йоркширский терьер», вы всегда должны маркировать его соответствующим образом. Не «йорки», не «терьер» или любое другое сочетание и псевдоним, который вы можете придумать. Другие соображения могут включать обрезку изображения или нормализацию яркости. Конечная цель — разработать высококачественный набор данных, который поможет вашей модели обучаться.
После того, как вы собрали свой набор данных, следующим шагом будет моделирование. На этом этапе вам нужно выбрать модель машинного обучения (например, конкретную архитектуру нейронной сети), обучить ее и выполнить анализ ошибок. В отраслевом секторе вы, вероятно, возьмете уже проверенную реализацию модели (например, ResNet или любой из ее вариантов) и возитесь с гиперпараметрами и набором данных. Такой образ мышления контрастирует с мышлением академического сообщества, где вы сохраняете фиксированный набор данных (например, используете ImageNet) и возитесь с кодом модели.
Затем анализ ошибок скажет вам, что вам нужно сделать, чтобы повысить производительность вашей модели. В нашем случае анализ ошибок подскажет, как систематически улучшать ваши данные. Вам нужно собрать больше данных? Вам нужно собрать больше данных о конкретных пограничных случаях? Вам нужно искать несоответствия внутри вашего набора данных?
Наконец, когда вы обучили свою модель и анализ ошибок показывает, что модель достаточно хороша, вы можете перейти к этапу развертывания. На этом этапе вам нужно подумать об архитектуре вашей системы и инфраструктуре. Стоит ли развертывать его на периферийном устройстве, например на смартфоне? Стоит ли развертывать его в облаке и обслуживать запросы через REST API? Что делать, если интернет-соединение прервется? Допустимо ли ждать восстановления соединения?
Предположим, вы решили создать веб-сервер и сделать свою модель доступной через веб-API. Затем приложение на смартфоне делало снимок собаки в центре c.